自定義的jdbc連接工具類JDBCUtils【java 工具類】
阿新 • • 發佈:2017-11-22
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 工具類】