JDBCUtils工具類的實現
需求:
之前的代碼出現過多次的重複性工作,爲了提高代碼的複用性,我們將重複代碼提出來封裝成一個工具類
開發步驟:1.創建jdbcutils類,
2.私有化構造函數,防止外界直接new對象
3.提供getConnection,用來對外界提供獲取數據庫連接
4.提供close方法,用來關閉資源
5.測試
注意:優化代碼:將配置文件提取到靜態代碼、塊中,
代碼實現如下:
package on.Util;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 這個類是jdbc的工具類
* 提供getConnection方法
* 提供close方法
* 開發步驟:
* 1.私有化構造函數,防止外界直接new對象
* 2.提供getConnection,用來對外界提供獲取數據連接
* 3.提供close方法,用來關閉資源
* 4.測試
* @date 2018年3月23日
*
*/
public class JDBCUtils {
//將讀取屬性文件放在靜態代碼塊中
//保證文件只被讀取一次,節省資源
static Properties prop =null;
static{
try{
//讀取配置文件jdbc.properties
prop = new Properties();
String pathname="jdbc.properties";
prop.load(new FileInputStream(pathname));
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//1.私有化構造函數,
// 防止外界直接new對象
private JDBCUtils(){}
//2.提供getConnection,
// 用來對外界提供獲取數據連接
public static Connection getConnection(){
try {
//1.註冊驅動
Class.forName(
prop.getProperty("driverClass"));
//2.獲取數據庫連接
Connection conn = DriverManager.getConnection(
prop.getProperty("jdbcUrl"),
prop.getProperty("user"),
prop.getProperty("password"));
return conn;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
// 3.提供close方法,用來關閉資源
public static void close(Connection conn,Statement st,ResultSet rs){
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//保證資源一定會被釋放
conn=null;
}
}
if(st!=null){
try {
st.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//保證資源一定會被釋放
st=null;
}
}
if(rs!=null){
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//保證資源一定會被釋放
rs=null;
}
}
}
}
配置文件的開發形式
* 需求
將程序中出現的配置參數,提取到配置文件中,
提高程序的靈活性。
* 開發步驟
創建jdbc.properties,屬性文件。K V,想獲取value通過get方法。
創建步驟:文件在工程的根目錄下,選中工程名字,右鍵,new,file,
讀取配置文件的數據