DataSourceUtils.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.zhongbei.dzserve.util;
  2. import org.apache.commons.dbutils.QueryRunner;
  3. import org.apache.commons.dbutils.handlers.BeanHandler;
  4. import org.apache.commons.dbutils.handlers.BeanListHandler;
  5. import org.apache.commons.dbutils.handlers.ScalarHandler;
  6. import org.apache.commons.dbcp2.BasicDataSource;
  7. import java.sql.Connection;
  8. import java.sql.SQLException;
  9. import java.util.List;
  10. /**
  11. * 编写数据库连接的工具类,JDBC工具类
  12. * 获取连接对象采用读取配置文件方式
  13. * 读取文件获取连接,执行一次,static{}
  14. */
  15. public class DataSourceUtils {
  16. private static final BasicDataSource dataSource = new BasicDataSource();
  17. private static final String driverName = "com.mysql.jdbc.Driver";
  18. private static final String url = "jdbc:mysql://lq.ailishi.org:33062/zhongbei_test";
  19. private static final String username = "zhongbei";
  20. private static final String password = "zhongbei@2024";
  21. static {
  22. dataSource.setDriverClassName(driverName);
  23. dataSource.setUrl(url);
  24. dataSource.setUsername(username);
  25. dataSource.setPassword(password);
  26. dataSource.setMinIdle(20);
  27. dataSource.setMaxIdle(20);
  28. dataSource.setMaxOpenPreparedStatements(300);
  29. }
  30. public static Connection getConnection() {
  31. try {
  32. return dataSource.getConnection();
  33. } catch (SQLException e) {
  34. throw new RuntimeException(e);
  35. }
  36. }
  37. public static <T> T queryOne(Class<T> clazz, String sql, Object... params) {
  38. //创建QueryRunner类对象
  39. QueryRunner queryRunner = new QueryRunner();
  40. //写删除的SQL语句
  41. try {
  42. return queryRunner.query(getConnection(), sql, new BeanHandler<>(clazz), params);
  43. } catch (SQLException e) {
  44. throw new RuntimeException(e);
  45. }
  46. }
  47. public static <T> List<T> queryList(Class<T> clazz, String sql, Object... params) {
  48. //创建QueryRunner类对象
  49. QueryRunner queryRunner = new QueryRunner();
  50. //写删除的SQL语句
  51. try {
  52. return queryRunner.query(getConnection(), sql, new BeanListHandler<>(clazz), params);
  53. } catch (SQLException e) {
  54. throw new RuntimeException(e);
  55. }
  56. }
  57. public static long queryCount(String sql, Object... params) {
  58. //创建QueryRunner类对象
  59. QueryRunner queryRunner = new QueryRunner();
  60. //写删除的SQL语句
  61. try {
  62. Connection connection = getConnection();
  63. return queryRunner.query(connection, sql, new ScalarHandler<>(), params);
  64. } catch (SQLException e) {
  65. throw new RuntimeException(e);
  66. }
  67. }
  68. // public static void delete() throws SQLException {
  69. // //创建QueryRunner类对象
  70. // QueryRunner qr = new QueryRunner();
  71. // //写删除的SQL语句
  72. // String sql = "DELETE FROM classmate WHERE id<=?";
  73. // //调用QueryRunner方法update
  74. // int row = qr.update(conn, sql, 10);
  75. // System.out.printf("已经有[%d]发生了改变", row);
  76. //
  77. // DbUtils.closeQuietly(conn);
  78. //
  79. // }
  80. //
  81. //
  82. // public static void update() throws SQLException {
  83. // //创建QueryRunner类对象
  84. // QueryRunner qr = new QueryRunner();
  85. // //写修改数据的SQL语句
  86. // String sql = "UPDATE classmate SET age=? WHERE name=?";
  87. // //定义Object数组,存储?中的参数,注意传入的位置哟,不要把顺序写反了!
  88. // Object[] params = {18, "尹正杰"};
  89. // //调用QueryRunner方法update
  90. // int row = qr.update(conn, sql, params);
  91. // System.out.printf("已经有[%d]发生了改变", row);
  92. // DbUtils.closeQuietly(conn);
  93. //
  94. // }
  95. //
  96. // /*
  97. // * 定义方法,使用QueryRunner类的方法update向数据表中,添加数据
  98. // */
  99. // public static void insert() throws SQLException {
  100. // //创建QueryRunner类对象
  101. // QueryRunner qr = new QueryRunner();
  102. // String sql = "INSERT INTO classmate VALUES(?,?,?,?,?,?,?,?,?,?)";
  103. // //将三个?占位符的实际参数,写在数组中
  104. // Object[] params = {null, "方合意", 24, "python开发工程师", 100, 60, 89, 94, 92, 87};
  105. // //调用QueryRunner类的方法update执行SQL语句
  106. // int row = qr.update(conn, sql, params);
  107. // DbUtils.closeQuietly(conn);
  108. // }
  109. }