JDBC学习笔记(二):连接Oracle数据库(DriverManager)

时间:2021-07-31 11:50:12

<span style="font-family: 'Microsoft YaHei'; background-color: rgb(255, 255, 255);">首先,将连接数据库所需的</span>

Driver,Url,Username,Password,等信息,

封装到一个properties文件中以方便调用。


新建一个操作数据库的工具类:DBTool。

在使用DriverManager管理数据库连接之前,需要加载Oracle驱动。

Class.forName("oracle.jdbc.driver.OracleDriver");

由于驱动只需加载一次,properties也只需导入一次

所以选择在静态代码块中执行加载函数。


	static{
//静态代码块,加载DBTool时自动加载
//读取db.properties中的参数。db.properties中封装了连接数据库的参数,故不用每次都重新输入
Properties p = new Properties();
try{
p.load(DBTool.class
.getClassLoader()
.getResourceAsStream( //?
"util/db.properties"));

//获取Property中的属性。
driver = p.getProperty("driver");
//每次创建连接时给DriverManager使用。

Class.forName(driver);
//因为驱动只加载一次,所以可以直接加载驱动。

url = p.getProperty("url");
user = p.getProperty("user");
pwd = p.getProperty("pwd");

} catch(ClassNotFoundException e){
e.printStackTrace();
throw new RuntimeException("读取属性文件失败",e);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("找不到驱动类",e);
}

}


 

在这里通过百度,明白了ClassLoader的用途:返回类的Class对象,再以此对象为参考路径来获取db.properties文件。

之后,再加入获取多个属性的代码。

	String url = p.getProperty("url");
String user = p.getProperty("user");
String pwd = p.getProperty("pwd");

准备就绪后,给此类封装一个getConnect方法,用来新建连接。

	public static Connection void getConnection() throws SQLException {   //异常最好抛出。
return DriverManager.getConnection(url,user,pwd);
}


再封装一个closeConnection方法,用来关闭连接,并在内部处理异常。

	public static void closeConnection(Connection con){
if(con != null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException("关闭连接失败",e);
}