針對不同的程序員用着不一樣的JDBC格式,針對初學者會有點迷茫,本人就自己在新學階段的疑惑來寫這篇文章,來幫助新手程序員解惑。
話不多說,進入正題!
JDBC理論六步驟:
<不管什麼形式都是遵循這6個步驟!>
1.開啓類驅動
2..獲取數據庫的url、username、password
3.連接數據庫
4.執行SQL語句
5.處理結果集(遍歷)
6.關閉資源
本文就連接池的搭建,基本標準套路地址 →點擊打開鏈接
public class DBProperties {
public static void main(String[] args) {
//1. 獲取數據庫的url、username、password
Connection conn = null;
Properties pro = new Properties(); //properties是專門處理property文件,提取參數
try{
FileInputStream fis = new FileInputStream("D:/java16/oracleday07/db.properties");
pro.load(fis); //加載文件內容
fis.close(); //關閉流
// 2.連接數據庫
String url = pro.getProperty("url"); //url
String user =pro.getProperty("user"); //root
String passwd =pro.getProperty("passwd"); //password
conn = DriverManager.getConnection(url,user,passwd); //連接數據庫
//3.執行SQL語句
String sql = "select * from dept"; //預編譯語句
PreparedStatement st = conn.prepareStatement(sql);
ResultSet rs = st.executeQuery();
// 4.處理結果集(遍歷)
while(rs.next()){
System.out.println(rs.getString(1)+","+rs.getString(2)+","+
rs.getString(3));
}
//5.關閉資源
rs.close();
st.close();
conn.close(); // 關閉連接時自動提交事務
}catch (Exception e) {
e.printStackTrace();
}
}
}
因爲上面這種初學者方式會違背代碼的設計原則之一的開閉原則
故有了JDBCutils<數據庫連接工具類s>的誕生
JDBCutils<連接池>優點:
寫成模板後,可以再也不用寫了,哪裏需要哪裏搬!!!
只需要提供一個外接的接口。哪裏需要用JDBC 就直接用接口就行
示例:
public class DbcpUtil {
private static DataSource dataSource;
//靜態代碼塊----當你運行代碼時就自動連接數據庫
static {
Properties pro = new Properties();
InputStream inputStream = DbcpUtil.class.getClassLoader()
.getResourceAsStream("com/xdl/util/db.properties");
try {
pro.load(inputStream);
dataSource = BasicDataSourceFactory.createDataSource(pro);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//創建一個getConnection()方法,需要時直接<類.方法>就行
public static Connection getConnection(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//關閉資源!關閉資源!關閉資源!重要的事情說三遍!!!
public static void realeaseResource(Connection conn,Statement st,
ResultSet rs){
if(rs != null){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
}
if(st != null){
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
st = null;
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null;
}
}
}
}
希望本文能幫助到你~