2023-04-11 16:48

Common-dbUtils整合Druid

wanmatea

JavaEE

(622)

(0)

收藏

一、什么是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());
}


结果窗口:

image.png


 


 


0条评论

点击登录参与评论