JDBC连接池和DBUtils(3)

/*
 * 创建DBCP连接池工具类
 * 使用读取配置文件的方式
 * DBCP中有一个工厂类BasicDataSourceFactory
 * 工厂类中有一个静态方法
 * static DataSource createDataSource(Properties prop)
 * 此方法返回的就是DataSource接口的实现类对象BasicDataSource
 *
 * 创建Propertis集合+IO技术读取配置文件
 * 把配置文件传入BasicDataSourceFactory静态方法createDataSource中
 */
public class DBCPUtilsReadConfig {
    //创建DataSource变量
    private static DataSource dataSource;
   
    static{
        try {
            //创建Propertis集合+IO技术读取配置文件
            //使用类加载器,扫描包下的文件
            InputStream is = DBCPUtilsReadConfig.class.getClassLoader()
                    .getResourceAsStream("dbcpconfig.properties");
            //创建Propertis集合
            Properties prop = new Properties();
            prop.load(is);
            //把配置文件传入BasicDataSourceFactory静态方法createDataSource中
            dataSource = BasicDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            throw new RuntimeException("读取配置文件失败");
        }
    }
   
    //创建获取数据库连接对象的方法
    public static Connection getConnection(){
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            throw new RuntimeException("获取数据库连接对象失败");
        }
    }
   
    //定义一个释放资源的方法
    public static void  close(ResultSet rs,Statement stat,Connection conn){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(stat !=null){
            try {
                stat.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

* 使用DBUtils工具类对数据库表进行增删改查
* DBUtils工具类作用:简化JDBC的开发(6步)
*
* DBUtils有3个核心类
* 1.QueryRunner:使用QueryRunner中的方法对数据库进行增删改查
* 2.DbUtils:提供了大量的释放资源的方法
* 3.ResultSetHandler接口:提供了处理查询结果集的方法
*
* QueryRunner类
* 构造方法:
* QueryRunner() 空参数构造方法
* 调用更新和查询方法的时候,需要传入Connection对象
* QueryRunner(DataSource ds) 带DataSource数据库连接池的构造方法
* 调用更新和查询方法的时候QueryRunner会自动从DataSource实现类对象中获取数据库连接对象,使用完毕会自动归还
* 成员方法:
* 执行执行增删改的成员方法
* int update(Connection conn, String sql, Object... params)用来执行增删改的SQL
* int update(String sql, Object... params) 用来执行增删改的SQL
* 参数:
* Connection conn:数据库连接对象
* String sql:拼接的sql语句,可以使用?占位符
* Object... params:?占位符的实际参数,可以使用Object[]
* 返回值:
* int:执行的有效行数
* 执行执行查询的成员方法
* <T> T query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)
* <T> T query(String sql, ResultSetHandler<T> rsh, Object... params)
* 参数:
* Connection conn:数据库连接对象
* String sql:拼接的sql语句,可以使用?占位符
* Object... params:?占位符的实际参数,可以使用Object[]
* ResultSetHandler<T> rsh:用来存储查询之后的结果集,可以传入ResultSetHandler9种实现类对象
* 返回值:
* <T> T:传入的ResultSetHandler实现类不同,返回的结果集也不同,使用泛型,传入什么结果集,就返回对应的类型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/01bdd1d8f1daf69cafde75184d971a2c.html