当前位置: 首页 > 工具软件 > DbUtils-Pro > 使用案例 >

【JDBC插件Durid&dbUtils】学习日记

蔚桐
2023-12-01

进入正题之前先下载资源jar包
commons-dbutils-1.7.jar
druid-1.0.9.jar

Durid应用

使用durid技术可以避免链接繁琐的创建步骤,将java代码与数据库的连接变得更加简单。
最重要的是:使用数据库连接池可以在获得连接后,并不是释放连接而是将它保存在一个连接池中,等待再次调用。这大大加快了java代码与数据库之间数据交互的速度(主要是减少了连接所浪费的时间)。
使用方法也很简单:
1.创建一个properties配置文件
2.使用系统加载器配置文件
3.使用数据池工厂DruidDataSourceFactory.createDataSource();创建一个数据池
4.调用getconnection方法获得连接(此处附上 connector8.0后我一步步调试后的链接url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
上述连接解决了connector刚加的时区问题,还有数据库插入数据乱码的问题
亲测有效

  //1.导入jar包
        //2.导入properties文件并修改参数
        Properties pro = new Properties();
        InputStream resour = DruidTest01.class.getClassLoader().getResourceAsStream("druid.properties");
        pro.load(resour);
        //3.使用Druid工厂来创建连接池对象
        DataSource ds = DruidDataSourceFactory.createDataSource(pro);
        //4.创建链接
        Connection conn = ds.getConnection();
        System.out.println(conn);
        conn.close();

最后附加一个常用的JDBCUtils工具类的设置代码

public class JDBCUtils {
    private static DataSource da;
    
    static {//此处使用静态代码块加载配置文件(看一些大佬都是这样做的)
        Properties properties = new Properties();
        try {
            properties.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));

             da = DruidDataSourceFactory.createDataSource(properties);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }


    }
    
    public static Connection getConnection(){
        try {
            return da.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    
    public static void close(Connection conn, PreparedStatement ps){
        if (conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }  
    public static void closeAll(Connection conn, PreparedStatement ps, ResultSet rs){
        if (conn!=null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (ps!=null){
            try {
                ps.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } 
        if (rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

dbUtils应用

此jar包没有什么可多介绍的,主要是用于对数据库数据的增、删、改、查的一系列操作(相当于将自己写的代码后封装使用的样子)
使用方法简单:
1.创建queryrunner类
2.查找时多了一个resulthandler接口的定义(主要是用于存放结果集)
应用代码如下:

public class BaseDAO {
    
    public long update(Connection conn,String sql,Object...args){
        QueryRunner runner = new QueryRunner();
        try {
            return runner.update(conn, sql, args);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }
    
    public <T> T select(Connection conn,String sql,Class<T> clazz,Object...args) {
        QueryRunner runner = new QueryRunner();
        T result = null;
        try {
            result = runner.query(conn, sql, new BeanHandler<T>(clazz), args);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return result;
    }
    
    public <T> List<T> selectAll(Connection conn,String sql,Class<T> clazz,Object...args){
        QueryRunner runner = new QueryRunner();
        List<T> result=null;
        try { 
            result = runner.query(conn, sql, new BeanListHandler<T>(clazz), args);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        return result;


    }
}
 类似资料: