JDBC六步驟以及JDBC連接池的創建(含util工具類)

針對不同的程序員用着不一樣的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;
            }
       }
    }
}

希望本文能幫助到你~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章