JDBC工具类提取
JDBC工具类提取:
常见的配置文件格式:
1.properties
格式 key=value
2.xml
若我们的配置文件为properties,且放在src目录下,可通过ResourceBundle工具快速获取里面的配置信息
使用步骤:
1.获取ResourceBundle对象
static ResourceBundle getBundle("文件名称不带后缀")
2.通过ResourceBundle 对象获取配置信息
String getString(String key):通过key值获取指定的value
package com.company; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.company.utils.JdbcUtils_; import com.company.utils.JdbcUtils; import com.mysql.jdbc.Driver; import org.junit.Test; public class TEST { /** * 查询,未提取工具类 * @throws Exception */ @Test public void f1() throws Exception{ //注册驱动 //Class.forName("com.mysql.jdbc.Driver"); DriverManager.registerDriver(new Driver()); //获取连接 ctrl+o 整理包 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/day07", "root", "123456"); //编写sql String sql="select * from category"; //创建语句执行者 PreparedStatement st=conn.prepareStatement(sql); //设置参数 //执行sql ResultSet rs=st.executeQuery(); //处理结果 while(rs.next()){ System.out.println(rs.getString("cid")+"::"+rs.getString("cname")); } //释放资源. rs.close(); st.close(); conn.close(); } /** * 插入 * 提取基础工具类 */ // @Test public void f2(){ Connection conn=null; ResultSet rs=null; PreparedStatement st=null; try { //获取连接 conn=JdbcUtils_.getCon(); //编写sql String sql="insert into category values(?,?)"; //获取语句执行者 st=conn.prepareStatement(sql); //设置参数 st.setString(1, "c012"); st.setString(2, "户外"); //执行sql int i=st.executeUpdate(); //处理结果 if(i==1){ System.out.println("success"); }else{ System.out.println("fail"); } } catch (Exception e) { e.printStackTrace(); } finally { //释放资源 JdbcUtils_.closeResource(conn, st, rs); } } /** * 更新 * 提取工具类plus */ @Test public void f3(){ Connection conn=null; PreparedStatement st=null; ResultSet rs=null; try { conn=JdbcUtils.getCon(); String sql="update category set cname = ? where cid = ?"; st=conn.prepareStatement(sql); st.setString(1, "手机"); st.setString(2, "c006"); int i=st.executeUpdate(); if(i==1){ System.out.println("success"); }else{ System.out.println("fail"); } } catch (Exception e) { e.printStackTrace(); } finally { //释放资源 JdbcUtils.closeResource(conn, st, rs); } } /** * 删除 * 提取工具类plus */ @Test public void f4(){ Connection conn=null; PreparedStatement st=null; ResultSet rs=null; try { conn=JdbcUtils.getCon(); String sql="delete from category where cid = ?"; st=conn.prepareStatement(sql); st.setString(1, "c006"); int i=st.executeUpdate(); if(i==1){ System.out.println("success"); }else{ System.out.println("fail"); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { JdbcUtils.closeResource(conn, st, rs); } } }
package com.company.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcUtils_ { // 获取连接 public static Connection getCon() throws ClassNotFoundException, SQLException { // 注册驱动 ctrl+shift+f格式化代码 Class.forName("com.mysql.jdbc.Driver"); // 获取连接 ctrl+o 整理包 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/day07", "root", "123456"); return conn; } /** * 释放资源 * @param conn 连接 * @param st 语句执行者 * @param rs 结果集 */ public static void closeResource(Connection conn, Statement st, ResultSet rs) { closeResultSet(rs); closeStatement(st); closeConn(conn); } /** * 释放连接 * @param conn 连接 */ public static void closeConn(Connection conn){ if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn=null; } } /** * 释放语句执行者 * @param st 语句执行者 */ public static void closeStatement(Statement st){ if(st!=null){ try { st.close(); } catch (SQLException e) { e.printStackTrace(); } st=null; } } /** * 释放结果集 * @param rs 结果集 */ public static void closeResultSet(ResultSet rs){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs=null; } } }
package com.company.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ResourceBundle; public class JdbcUtils { static final String DRIVERCLASS; static final String URL; static final String USER; static final String PASSWORD; static { // 获取ResourceBundle ResourceBundle bundle = ResourceBundle.getBundle("jdbc"); // 获取指定的内容 DRIVERCLASS = bundle.getString("driverClass"); URL = bundle.getString("url"); USER = bundle.getString("user"); PASSWORD = bundle.getString("password"); } static { // 注册驱动 try { Class.forName(DRIVERCLASS); } catch (ClassNotFoundException e) { e.printStackTrace(); } } // 获取连接 public static Connection getCon() throws SQLException { // 获取连接 ctrl+o 整理包 return DriverManager.getConnection(URL, USER, PASSWORD); } /** * 释放资源 * * @param conn * 连接 * @param st * 语句执行者 * @param rs * 结果集 */ public static void closeResource(Connection conn, Statement st, ResultSet rs) { closeResultSet(rs); closeStatement(st); closeConn(conn); } /** * 释放连接 * * @param conn * 连接 */ public static void closeConn(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } conn = null; } } /** * 释放语句执行者 * * @param st * 语句执行者 */ public static void closeStatement(Statement st) { if (st != null) { try { st.close(); } catch (SQLException e) { e.printStackTrace(); } st = null; } } /** * 释放结果集 * * @param rs * 结果集 */ public static void closeResultSet(ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } rs = null; } } }