对jdbc的注册驱动和资源释放进行封装的工具类
程序员文章站
2024-01-19 09:48:46
对jdbc的注册驱动和资源释放等代码进行封装由于每回都需要重复写代码,为了提高复用性。我们写一个jdbc工具类。下次在进行驱动和释放资源时可以直接调用工具类中的 方法。package com.atguigu.DBUtil;import java.sql.*;/** * jdbc工具类 **/public class DBUtil {//因为注册只需要进行一次,所以写在静态代码块中,当类加载的时候进行调用且只会调用一次 static { try {...
对jdbc的注册驱动和资源释放等代码进行封装
由于每回都需要重复写代码,为了提高复用性。我们写一个jdbc工具类。下次在进行驱动和释放资源时可以直接调用工具类中的 方法。
package com.atguigu.DBUtil; import java.sql.*; /**
* jdbc工具类
**/ public class DBUtil { //因为注册只需要进行一次,所以写在静态代码块中,当类加载的时候进行调用且只会调用一次 static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /*
工具类的构造方法都是私有的
因为工具类不需要new对象。里面方法都是静态的,直接采用类名调用
*/ private DBUtil(){}; /**
* 获取数据库连接对象
* @return 连接对象
* @throws SQLException
* 在这里需要标注数据库、用户名和密码
* 这里采用mysql数据库的url作为例子
*/ public static Connection getConnection() throws SQLException { return DriverManager.getConnection("jdbc:mysql://localhost:3306/xxx","xxx","xxx"); } /**
* 关闭资源
* @param connection 连接对象
* @param ps
* @param rs
*/ public static void close(Connection connection, Statement ps, ResultSet rs){ if(rs !=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(ps !=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(connection !=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
下面我们对自己写的工具类进行测试
这里我们采用sql中的模糊查询作为例子对其进行测试
package com.atguigu.homework; import com.atguigu.DBUtil.DBUtil; import org.junit.Test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; /**
* 模糊查询
* 测试DBUtil是否好用
**/ public class Test13 { @Test public void testSelect(){ Connection connection =null; PreparedStatement ps=null; ResultSet rs=null; try { //获取连接 connection = DBUtil.getConnection(); ps=connection.prepareStatement("select * from t_user where username like ?"); //在这里模糊查询的条件需要用占位符的方式写进去,这里查询用户名中带有d的人 ps.setString(1,"%d%"); rs=ps.executeQuery(); while(rs.next()){ //这里获得年龄来测试是否运行成功 System.out.println(rs.getInt("age")); } } catch (SQLException e) { e.printStackTrace(); }finally { //释放资源 DBUtil.close(connection,ps,rs); } } }
可以成功得出结果,即工具类可以正常使用。
注意:需要导入三个jar包
本文地址:https://blog.csdn.net/qq_43596152/article/details/108263320