一、什么是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条评论
点击登录参与评论