码迷,mamicode.com
首页 > 数据库 > 详细

JDBC进阶(一)

时间:2018-11-05 11:08:02      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:out   rgs   sql   软件   trace   pack   类对象   oracle   java   

************************Class.forName()的作用?(面试题)***********************


1. 程序员主动使用Class.forName()来加载驱动


oracle.jdbc.OracleDriver driver = new oracle.jdbc.OracleDriver();

写死的话 虽然也能加载驱动 但是如果数据库 oracle-->mysql 需要改代码 不可维护

不符合OCP原则

使用Class.forName 可以className、url、user、password放到 db.properties

然后使用Properties类读取属性文件中的信息,如果数据库 oracle-->mysql 只需要

修改db.properties属性文件中的字符串信息就可以了 不需要修改代码 可维护


2.同时返回驱动类所对应的Class对象

 

**********************JDBC底层源代码分析***************************


try
{
if(defaultDriver == null)
{
defaultDriver = new oracle.jdbc.OracleDriver();
DriverManager.registerDriver(defaultDriver);
}

 

Connection con = aDriver.driver.connect(url, info);

 


连接数据库的代码可以改成


package com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
* 公司:蓝桥软件学院
* 作者:zhangzy
* 时间:2017年8月30日 上午9:26:05
* 功能:连接数据库的工具类
*/
public class ConnOracle {

public static Connection getConnection(){
Connection conn = null;

String className = "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";

//1.创建驱动类对象
oracle.jdbc.OracleDriver driver = new oracle.jdbc.OracleDriver();


java.util.Properties info = new java.util.Properties();

if (user != null) {
info.put("user", user);
}
if (password != null) {
info.put("password", password);
}

//2.调用驱动类对象的connect方法来连接 数据库服务器 返回Connection对象
try {
conn = driver.connect(url, info);
} catch (SQLException e1) {

e1.printStackTrace();
}


return conn;
}



public static void main(String[] args) {
System.out.println(ConnOracle.getConnection());
}
}

 

JDBC进阶(一)

标签:out   rgs   sql   软件   trace   pack   类对象   oracle   java   

原文地址:https://www.cnblogs.com/MrTanJunCai/p/9907501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!