2022.4.23 JDBC配置文件与工具类
配置文件与工具类
为避免重复书写代码,创建一个包,书写工具类

配置代码通常单独书写 避免强耦合


配置文件中内容
不要加分号和双引号
1 driver=com.mysql.jdbc.Driver 2 url = jdbc:mysql://localhost:3306/jdbcStudy?useUnicode=true&characterEncoding=utf8&useSSL=true 3 username = root 4 password = 123456
封装工具类
-
在实际JDBC的使用中,存在着大量的重复代码:例如连接数据库、关闭数据库等这些操作!
-

使工具类读取配置文件:在自己创建的工具包中创建一个工具类


1 package com.xing.lesson02.utils; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.sql.*; 6 import java.util.Properties; 7 8 public class JdbcUtils { 9 private static String driver = null; 10 private static String url = null; 11 private static String username = null; 12 private static String password = null; 13 14 static { 15 try {// 返回输入流 类加载器 拿到资源 需要加载的文件名 16 InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("db.properties"); 17 Properties properties = new Properties(); 18 properties.load(in);//抛出一个catch 19 20 driver = properties.getProperty("driver"); 21 url = properties.getProperty("url"); 22 username = properties.getProperty("username"); 23 password = properties.getProperty("password"); 24 25 //驱动只用加载一次 26 Class.forName(driver);//抛出一个catch 27 28 } catch (Exception e) { 29 e.printStackTrace(); 30 } 31 } 32 //获取连接 33 public static Connection getConnection() throws SQLException { 34 //抛出异常 35 return DriverManager.getConnection(url, username, password); 36 } 37 38 //释放连接 顺序不能错 39 public static void release(Connection conn, Statement st, ResultSet rs){ 40 if (rs != null) { 41 try { 42 rs.close(); 43 } catch (SQLException e) { 44 e.printStackTrace(); 45 } 46 } 47 if (st != null) { 48 try { 49 st.close(); 50 } catch (SQLException e) { 51 e.printStackTrace(); 52 } 53 } 54 if (conn != null) { 55 try { 56 conn.close(); 57 } catch (SQLException e) { 58 e.printStackTrace(); 59 } 60 } 61 } 62 63 }
插入测试

1 package com.xing.lesson02.utils; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 public class TestInsert { 9 10 public static void main(String[] args) { 11 Connection conn = null; 12 Statement st = null; 13 ResultSet rs = null; 14 try { 15 conn = JdbcUtils.getConnection();//获取数据库连接 16 st = conn.createStatement();//获取sql的执行对象 17 18 String sql = "INSERT INTO users(id,`NAME`,`PASSWORD`,`email`,`birthday`)" + 19 "VALUE(4,'haha','123456','48020056@qq.com','2020-1-1')"; 20 int i = st.executeUpdate(sql); 21 if(i>0){ 22 System.out.println("插入成功"); 23 } 24 } catch (SQLException e) { 25 e.printStackTrace(); 26 }finally { 27 JdbcUtils.release(conn,st,rs); 28 } 29 } 30 }

删除测试
1 package com.xing.lesson02.utils; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 public class TestDelect { 9 public static void main(String[] args) { 10 Connection conn = null; 11 Statement st = null; 12 ResultSet rs = null; 13 try { 14 conn = JdbcUtils.getConnection();//获取数据库连接 15 st = conn.createStatement();//获取sql的执行对象 16 17 String sql = "DELETE FROM users WHERE id =4"; 18 int i = st.executeUpdate(sql); 19 if(i>0){ 20 System.out.println("删除成功"); 21 } 22 } catch (SQLException e) { 23 e.printStackTrace(); 24 }finally { 25 JdbcUtils.release(conn,st,rs); 26 } 27 } 28 }
更新检测
1 package com.xing.lesson02.utils; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 public class TestUpdate { 9 10 public static void main(String[] args) { 11 Connection conn = null; 12 Statement st = null; 13 ResultSet rs = null; 14 try { 15 conn = JdbcUtils.getConnection();//获取数据库连接 16 st = conn.createStatement();//获取sql的执行对象 17 18 String sql = "UPDATE users SET `NAME`='liming',`email`='480200056@qq.com' WHERE id=1"; 19 int i = st.executeUpdate(sql); 20 if(i>0){ 21 System.out.println("更新成功"); 22 } 23 } catch (SQLException e) { 24 e.printStackTrace(); 25 }finally { 26 JdbcUtils.release(conn,st,rs); 27 } 28 } 29 }

查询测试
1 package com.xing.lesson02.utils; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 public class TestSelect { 9 10 public static void main(String[] args) { 11 Connection conn = null; 12 Statement st = null; 13 ResultSet rs = null; 14 try { 15 conn = JdbcUtils.getConnection();//获取数据库连接 16 st = conn.createStatement();//获取sql的执行对象 17 18 String sql = "SELECT * FROM users "; 19 rs = st.executeQuery(sql);//查询 完毕返回结果集 20 21 while(rs.next()){ 22 System.out.println(rs.getObject("NAME")); 23 System.out.println(rs.getObject("id")); 24 } 25 } catch (SQLException e) { 26 e.printStackTrace(); 27 }finally { 28 JdbcUtils.release(conn,st,rs); 29 } 30 } 31 }


浙公网安备 33010602011771号