1. 程式人生 > >創建JDBCUtils工具類

創建JDBCUtils工具類

數據庫連接 jdbcutil exceptio exception private 配置 jdb 釋放 void

JDBCUtils工具類

  1. 私有化構造函數,外界無法直接創建對象
  2. 提供公共的,靜態的,getConnection 方法,用來給外界提供數據庫連接
  3. 提供公共的,靜態的,close方法,用來釋放資源
package cn.tedu.util;

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ResourceBundle;

 

/**

 * 這個類用來提供jdcb的工具類

1.1   私有化構造函數,外界無法直接創建對象

1.2   提供公共的,靜態的,getConnection 方法,用來給外界提供數據庫連接

1.3   提供公共的,靜態的,close方法,用來釋放資源

1.4   測試類

 */

public class JDBCUtils {
//1,私有化構造函數,外界無法直接創建對象
   private JDBCUtils(){}
  
   //只加載一次屬性文件
   static ResourceBundle rb = null;
   static{
      //a,,,,讀取屬性文件
      rb = ResourceBundle.getBundle("jdbc");
   }

   //2,提供公共的,靜態的,getConnection 方法,
   //用來給外界提供數據庫連接
   public static Connection getConnection(){
      try {
         //1,註冊驅動
         //b,,獲取屬性文件裏的內容
         Class.forName(rb.getString("driverClass"));
         
         //2,獲取數據庫連接
         String url=rb.getString("jdbcUrl");
         String user=rb.getString("user");
         String password=rb.getString("password");

         Connection conn = DriverManager.getConnection(url, user, password);
         return conn;

      } catch (Exception e) {
         e.printStackTrace();
      }
      return null;
   }

   //3,提供公共的,靜態的,close方法,
   //用來釋放資源
   public static void close(ResultSet rs, Statement st,Connection conn){
      //釋放結果集資源
      //非空判斷,防止空指針異常
      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;//手動置空
         }
      }
   }

測試類

package cn.tedu.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
import com.mysql.jdbc.Driver;
import cn.tedu.util.JDBCUtils;

/**
 * 這個類用來測試工具類
 */

public class TestUtils {
   //單元測試方法:@Test  +  void
      @Test
      public void hello(){
         Connection conn = null;//聲明連接對象
         Statement st = null;//聲明傳輸器對象
         ResultSet rs = null;//聲明結果集對象
         try {
            //1,註冊驅動    2,獲取數據庫連接
            conn = JDBCUtils.getConnection();
            //3,獲取傳輸器java.sql.Statement
            st = conn.createStatement();
      //    4,執行SQL。java.sql.ResultSet
            String sql ="select * from user";
            rs = st.executeQuery(sql);
      //    5,遍歷結果集
            while(rs.next()){
                //根據列的索引獲取第一列的數據
      //       String id = rs.getString(1);
                //根據列的名字獲取第一列的數據
                String id = rs.getString("id");
      //       int id1  = rs.getInt(1);
                //根據列的索引獲取第二列的數據
                String username = rs.getString(2);
                //根據列的索引獲取第三列的數據
                String password = rs.getString(3);
                System.out.println(id+username+password);
            }
         } catch (SQLException e) {
            e.printStackTrace();
         }finally{//保證資源一定會被釋放
      //    6,釋放資源
            JDBCUtils.close(rs, st, conn);
         }
      }
}

準備數據

技術分享圖片

配置文件的開發形式

//2,提供公共的,靜態的,getConnection 方法,

   //用來給外界提供數據庫連接

   public static Connection getConnection(){

      try {

        

         //a,,,,讀取屬性文件

         ResourceBundle rb =

                ResourceBundle.getBundle("jdbc");

        

         //1,註冊驅動

//b,,獲取屬性文件裏的內容

         Class.forName(rb.getString("driverClass"));

        

         //2,獲取數據庫連接

         String url=rb.getString("jdbcUrl");

         String user=rb.getString("user");

         String password=rb.getString("password");

        

         Connection conn =

                DriverManager.getConnection(

                      url, user, password);

     

         return conn;

      } catch (Exception e) {

         e.printStackTrace();

      }

      return null;

   }

創建JDBCUtils工具類