db.properties連接
1、寫一個配置文件db.properties用來存放連接的內容
db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/web08?useUnicode=true&characterEncoding=utf8 username=root password=root
2、寫JDBCUtils_V3工具類用來獲取數據庫連接
package cn.itheima.jdbc.utils; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import java.util.ResourceBundle; /** * 提供獲取連接和釋放資源的 方法 * */ public class JDBCUtils_V3 { private static String driver; private static String url; private static String username; private static String password; /** * 靜態代碼塊加載配置文件信息 */ static { try { // 1.通過當前類獲取類加載器 ClassLoader classLoader = JDBCUtils_V3.class.getClassLoader(); // 2.通過類加載器的方法獲得一個輸入流 InputStream is = classLoader.getResourceAsStream("db.properties"); // 3.創建一個properties對象 Properties props = new Properties(); // 4.加載輸入流 props.load(is); // 5.獲取相關參數的值 driver = props.getProperty("driver"); url = props.getProperty("url"); username = props.getProperty("username"); password = props.getProperty("password"); } catch (IOException e) { e.printStackTrace(); } } /** * 獲取連接方法 * * @return */ public static Connection getConnection() { Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 釋放資源方法 * * @param conn * @param pstmt * @param rs */ public static void release(Connection conn, PreparedStatement pstmt, ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
TestUtils.java
package cn.itheima.jdbc.test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import org.junit.Test; import cn.itheima.jdbc.JDBCUtils_V1; import cn.itheima.jdbc.JDBCUtils_V2; import cn.itheima.jdbc.JDBCUtils_V3; /** * 測試工具類 */ public class TestUtils { /** * 根據id更新用戶信息方法 */ @Test public void testUpdateById() { Connection conn = null; PreparedStatement pstmt = null; try { // 1.獲取連接 conn = JDBCUtils_V3.getConnection(); // 2.編寫sql語句 String sql = "update tbl_user set upassword=? where uid=?"; // 3.獲取執行sql語句對象 pstmt = conn.prepareStatement(sql); // 4.設置參數 pstmt.setString(1, "999"); pstmt.setInt(2, 3); // 5.執行更新操作 int row = pstmt.executeUpdate(); if (row > 0) { System.out.println("更新成功!"); } else { System.out.println("更新失敗!"); } } catch (Exception e) { throw new RuntimeException(e); } finally { // 6.釋放資源 JDBCUtils_V3.release(conn, pstmt, null); } } /** * 根據id刪除信息方法 */ @Test public void testDeleteById() { Connection conn = null; PreparedStatement pstmt = null; try { // 1.獲取連接 conn = JDBCUtils_V3.getConnection(); // 2.編寫sql語句 String sql = "delete from tbl_user where uid=?"; // 3.獲取執行sql語句對象 pstmt = conn.prepareStatement(sql); // 4.設置參數 pstmt.setInt(1, 4); // 5.執行刪除操作 int row = pstmt.executeUpdate(); if (row > 0) { System.out.println("刪除成功!"); } else { System.out.println("刪除失敗!"); } } catch (Exception e) { throw new RuntimeException(e); } finally { // 6.釋放資源 JDBCUtils_V3.release(conn, pstmt, null); } } /** * 添加用戶信息方法 */ @Test public void testAdd() { Connection conn = null; PreparedStatement pstmt = null; try { // 1.獲取連接 conn = JDBCUtils_V2.getConnection(); // 2.編寫sql語句 String sql = "insert into tbl_user values(null,?,?)"; // 3.獲取執行sql語句對象 pstmt = conn.prepareStatement(sql); // 4.設置參數 pstmt.setString(1, "lisi"); pstmt.setString(2, "hehe"); // 5.執行插入操作 int row = pstmt.executeUpdate(); if (row > 0) { System.out.println("添加成功!"); } else { System.out.println("添加失敗!"); } } catch (Exception e) { throw new RuntimeException(e); } finally { // 6.釋放資源 JDBCUtils_V2.release(conn, pstmt, null); } } /** * 根據id查詢用戶信息 */ @Test public void testFindUserById() { Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { // 1.獲取連接 conn = JDBCUtils_V1.getConnection(); // 2.編寫sql語句 String sql = "select * from tbl_user where uid=?"; // 3.獲取執行sql語句對象 pstmt = conn.prepareStatement(sql); // 4.設置參數 pstmt.setInt(1, 2); // 5.執行查詢操作 rs = pstmt.executeQuery(); // 6.處理結果集 while (rs.next()) { System.out.println(rs.getString(2) + "----" + rs.getString("upassword")); } // 釋放資源放在此處行么?【不行滴!】 } catch (SQLException e) { e.printStackTrace(); } finally { // 7.釋放資源 JDBCUtils_V1.release(conn, pstmt, rs); } } }