经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
【JDBC】编程(2)--- 写一个JDBC工具类;用 JDBC工具类 实现模糊查询
来源:cnblogs  作者:猿头猿脑的王狗蛋  时间:2022/1/3 13:00:46  对本文有异议

/*

JDBC工具类

功能:

  简化JDBC部分代码书写

*/

 

  1. import java.sql.*;
  2. public class DBUtil {
  3. /**
  4. * 工具类的构造方法都应该是私有的
  5. * 因为工具类是需要频繁使用的,所以我们要避免代码的重复书写
  6. * 将工具类方法都设为静态的,再将构造方法私有化(这样想new都new不出来),直接采用类名调用
  7. */
  8. //静态代码块在类加载时执行,并且只执行一次
  9. static {
  10. try {
  11. Class.forName("com.mysql.cj.jdbc.Driver");
  12. } catch (ClassNotFoundException e) {
  13. e.printStackTrace();
  14. }
  15. }
  16. private DBUtil(){
  17. }
  18. /**
  19. * 获取数据库连接对象
  20. * @return 连接
  21. * @throws SQLException
  22. */
  23. //因为此方法是被调用的方法,所以出现异常直接上抛就行
  24. public static Connection getConnection () throws SQLException {
  25. return DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode"
  26. , "root", "888");
  27. }
  28. /**
  29. * 关闭资源
  30. * @param connection 连接资源
  31. * @param statement 数据库操作对象
  32. * @param resultSet 结果集
  33. */
  34. public static void close(Connection connection,Statement statement,ResultSet resultSet){
  35. if (resultSet != null) {
  36. try {
  37. resultSet.close();
  38. } catch (SQLException e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. if (statement != null) {
  43. try {
  44. statement.close();
  45. } catch (SQLException e) {
  46. e.printStackTrace();
  47. }
  48. }if (connection != null) {
  49. try {
  50. connection.close();
  51. } catch (SQLException e) {
  52. e.printStackTrace();
  53. }
  54. }
  55. }
  56. }

 


/*

1、测试JDBC工具类的功能:

   实现模糊查询(以“查哪个用户的密码中的第二个字符为‘a’为例)

2、t_user:
    +----+-----------+----------+----------+
    | id | loginName | loginPwd | realName |
    +----+-----------+----------+----------+
    |  1 | abc       | 123      | 张三     |
    |  2 | 000000    | 000000   | 李四     |
    |  7 | asd333    | aa000    | NULL     |
    |  8 | q7890     | 8a8a88   | NULL     |
    |  9 | 666a      | 6a       | NULL     |
    +----+-----------+----------+----------+

*/

 

  1. import java.sql.*;
  2. public class JDBCTest03 {
  3. public static void main(String[] args) {
  4. Connection connection = null;
  5. PreparedStatement ps = null;
  6. ResultSet resultSet = null;
  7. try {
  8. //注册+获取连接
  9. connection = DBUtil.getConnection();
  10. //获取预编译的数据库操作对象
  11. String sql = "select loginPwd from t_user where loginPwd like ?";
  12. ps = connection.prepareStatement(sql);
  13. ps.setString(1,"_a%");
  14. //执行sql语句
  15. resultSet = ps.executeQuery();
  16. //处理查询结果集
  17. while (resultSet.next()){
  18. System.out.println(resultSet.getString("loginPwd"));
  19. }
  20. } catch (SQLException e) {
  21. e.printStackTrace();
  22. }finally {
  23. //关闭资源
  24. DBUtil.close(connection,ps,resultSet);
  25. }
  26. }
  27. }

 

控制台输出结果:

  1. aa000
  2. 8a8a88
  3. 6a
  4. Process finished with exit code 0

 

总结:控制台输出结果正常,JDBC工具类 功能正常。


 

原文链接:http://www.cnblogs.com/Burning-youth/p/15759266.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号