JDBC建立資料庫連線詳細程式碼及註釋
阿新 • • 發佈:2018-12-13
注:完整程式碼在最後
使用jdbc建立mysql資料庫連線
1.從db.properties配置檔案中讀取資料庫連線引數。
db.properties檔案內容如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/資料庫名?useUnicode\=true&characterEncoding\=UTF-8
jdbc.username=使用者名稱
jdbc.password=密碼
建立Properties物件
Properties prop = new Properties();
建立輸入流
InputStream in = getClass().getResourceAsStream("/db.properties");
載入配置檔案 有可能會有io異常需要try chatch
try {
prop.load(in);
} catch (IOException e) {
e.printStackTrace();
}
宣告驅動類
Class jdbcDriverClass;
宣告資料庫連線
Connection conn = null;
必須新增trycatch 否則創建出現異常後 容易不關閉連線,會一直佔用,
try {
載入驅動類
jdbcDriverClass = Class.forName("com.mysql.jdbc.Driver");
//建立驅動
Driver driver = (Driver) jdbcDriverClass.newInstance();
註冊驅動
DriverManager.registerDriver(driver);
//建立連線
conn=(Connection)DriverManager.getConnection(prop.getProperty("jdbc.url"),prop.getProperty("jdbc.username"),prop.getProperty("jdbc.password"));
} catch (Exception e) {
輸出錯誤資訊
e.printStackTrace();
建立連線 異常後關閉
if(conn!=null){//如果連線不是null則關閉
try {
conn.close();
} catch (SQLException e2) {
e2.printStackTrace();//輸出錯誤資訊
}
}
}
完整方法程式碼如下:
/**
* 建立資料庫連線
* @return
*/
private Connection getConnection() {
//從db.properties檔案中獲取資料庫連線
Properties prop = new Properties();//建立Properties物件
InputStream in = getClass().getResourceAsStream("/db.properties");//建立輸入流
try {
prop.load(in);//載入配置檔案 有可能會有io異常需要try chatch
} catch (IOException e) {
e.printStackTrace();
}
Class jdbcDriverClass;//宣告驅動類
Connection conn = null;//宣告資料庫連線
try {//必須新增trycatch 否則創建出現異常後 容易不關閉連線,會一直佔用,
jdbcDriverClass = Class.forName("com.mysql.jdbc.Driver");//載入驅動類
Driver driver = (Driver) jdbcDriverClass.newInstance();//建立驅動
DriverManager.registerDriver(driver);//註冊驅動
conn = (Connection) DriverManager.getConnection(prop.getProperty("jdbc.url"),prop.getProperty("jdbc.username"),prop.getProperty("jdbc.password"));//建立連線
} catch (Exception e) {
e.printStackTrace();//輸出錯誤資訊
//建立連線 異常後關閉
if(conn!=null)//如果連線不是null則關閉
try {
conn.close();
} catch (SQLException e2) {
e2.printStackTrace();//輸出錯誤資訊
}
}
return conn;
}