1. 程式人生 > >自定義的jdbc連接工具類JDBCUtils【java 工具類】

自定義的jdbc連接工具類JDBCUtils【java 工具類】

tco 成功 val update red source dex imp 添加

JDBCUtils 類:

  1. 創建私有的屬性*(連接數據庫必要的四個變量):dreiver url user password

  2. 將構造函數私有化

  3.將註冊驅動寫入靜態代碼塊

  4.外界只能通過調用本工具的靜態方法 getConnectio() 獲取數據庫連接,讓調用者處理異常(拋出異常)

  5. 資源關閉采用也采用靜態方法調用

package com.test.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public final class JDBCUtils { private static String driver="com.mysql.jdbc.Driver"; private static String url="jdbc:mysql://localhost:3306/store28"; private static String user="root"; private static String password="root1234"; private JDBCUtils(){}
static { /** * 驅動註冊 */ try { Class.forName(driver); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } /** * 獲取 Connetion * @return * @throws SQLException
*/ public static Connection getConnection() throws SQLException{ return DriverManager.getConnection(url, user, password); } /** * 釋放資源 * @param conn * @param st * @param rs */ public static void colseResource(Connection conn,Statement st,ResultSet rs) { closeResultSet(rs); closeStatement(st); closeConnection(conn); } /** * 釋放連接 Connection * @param conn */ public static void closeConnection(Connection conn) { if(conn !=null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } //等待垃圾回收 conn = null; } /** * 釋放語句執行者 Statement * @param st */ public static void closeStatement(Statement st) { if(st !=null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); } } //等待垃圾回收 st = null; } /** * 釋放結果集 ResultSet * @param rs */ public static void closeResultSet(ResultSet rs) { if(rs !=null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } //等待垃圾回收 rs = null; } }

工具測試:

package com.test.utils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.junit.Test;

public class JdbcTest {
    @Test
    public void add() {
        Connection conn = null;
        PreparedStatement st = null;
        ResultSet rs = null;
        
        try {
            // 獲取連接
            conn = JDBCUtils.getConnection();
            
            // 編寫sql
            String sql = "insert into category values (?,?)";
            
            // 創建語句執行者
            st= conn.prepareStatement(sql);
            
            //設置參數
            st.setString(1, "10");
            st.setString(2, "測試目錄");
            
            // 執行sql
            int i = st.executeUpdate();
            
            if(i==1) {
                System.out.println("數據添加成功!");
            }else {
                System.out.println("數據添加失敗!");
            }
            
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JDBCUtils.colseResource(conn, st, rs);
        }
        
    }
}

自定義的jdbc連接工具類JDBCUtils【java 工具類】