開發步驟:
1.私有化構造函數,外界無法直接創建對象;
2.提供公共的,靜態的,getConnection方法,用來給外界提供數據庫連接;
3.提供公共的,靜態的,close方法,用來釋放資源;
JDBCUtils.java
package cn.yikuan.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; /** * 這個類用來提供JDBC的工具類 * @author Administrator * */ public class JDBCUtils { //1.私有化構造函數,外界無法直接創建對象 private JDBCUtils(){ } static ResourceBundle rb = null; static { //讀取屬性文件 rb = ResourceBundle.getBundle("jdbc"); } //2.提供公共的,靜態的,getConnection方法,用來給外界提供數據庫連接 public static Connection getConnection(){ try { //2.1注冊驅動 Class.forName(rb.getString("driverClass")); //2.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){ //3.1非空判斷,防止空指針異常 //3.2手動置為空,保證完全釋放 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; } } } }
TestUtils.java
package cn.yikuan.test; /** * 這個類用來測試工具類 */ import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.junit.Test; import cn.tedu.util.JDBCUtils; public class TestUtils { @Test public void hello(){ Connection conn = null; Statement st = null; ResultSet rs = null; try { //1.注冊驅動;//2.獲取數據庫連接 java.sql.Connection; conn = JDBCUtils.getConnection(); //3.獲取傳輸器 st = conn.createStatement(); //4.執行sql String sql = "select * from user"; rs = st.executeQuery(sql); //5.遍歷結果集 while(rs.next()){ String id = rs.getString(1); //String id = rs.getString("id"); String username = rs.getString(2); String password = rs.getString(3); System.out.println(id+username+password); } } catch (SQLException e) { e.printStackTrace(); } finally { JDBCUtils.close(rs, st, conn); } } }