一、什么是commons-dbutils
commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。
二、添加commons-dbutils和druid的依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.7</version> </dependency>
三、在resource目录中添加一个数据库的连接配置文件 jdbc.properties
url=jdbc:mysql://localhost:3306/shop?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true driver=com.mysql.cj.jdbc.Driver username=root password=wanmait
四、添加一个德鲁伊连接池的帮助类 DruidUtils
public class DruidUtils { private static DataSource dataSource; static{ InputStream is= Utils.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties properties=new Properties(); try{ properties.load(is); dataSource= DruidDataSourceFactory.createDataSource(properties); } catch(Exception e){ e.printStackTrace(); } } public static Connection getConn() { try{ return dataSource.getConnection(); } catch (Exception e){ throw new RuntimeException("连接池出现异常"); } } public static DataSource getDataSource(){ return dataSource; } }
五、添加一个数据库的帮助类DBUtils
public class DBUtils<T> { private QueryRunner queryRunner=null; public DBUtils(){ queryRunner=new QueryRunner(DruidUtils.getDataSource()); } public List<T> selectAll(String sql,Class<T> clazz) { try{ return queryRunner.query(sql,new BeanListHandler<T>(clazz)); } catch (SQLException throwables) { throwables.printStackTrace(); } return null; } public T selectById(String sql,Class<T> clazz,Integer id) { try{ return queryRunner.query(sql,new BeanHandler<T>(clazz),id); } catch (SQLException throwables) { throwables.printStackTrace(); } return null; } public boolean update(String sql,Object... param){ try{ return queryRunner.update(sql,param)>0; } catch (SQLException throwables) { throwables.printStackTrace(); } return false; } }
六、测试
DBUtils<Product> dbUtils=new DBUtils<>(); String sql="select * from product"; List<Product> productList=dbUtils.selectAll(sql,Product.class); for(Product p:productList){ System.out.println(p.getTitle()); }
结果窗口:
0条评论
点击登录参与评论