zoukankan      html  css  js  c++  java
  • 我的学习之路_第二十一章_JDBC连接池

    JDBC连接池和DButils

    【DBCP连接池工具类】

    使用读取配置文件的方式

    DBCP中有一个工厂类 BasicDataSourceFactory
    工厂类中有一个静态方法

    返回值为: DataSource createDataSource(Properties prop)

    此方式返回的就是DataSource接口的实现类对象 BasicDataSource

    创建properties集合+IO技术读取配置文件
    把配置文件传入BasicDataSourceFactory 静态方法 createDataSource中

    实现步骤:

    1.创建properties集合+IO技术读取配置文件
    2.使用类加载器,扫描包下的文件
    InputStream 变量名 = DBCPUtilsReadConfig.class.getClassLoader().getResourceAsStream("传入配置文件名称")
    3.创建properties集合
    Properties prop = new Properties();
    prop.load(is);
    4.把配置文件传入 BasicDataSourceFactory静态方法 createDataSource中
    DataSource 变量名= BasicDataSourceFactory.createDataSource(prpo)


    【C3P0连接池的工具类】

    连接规范接口 : java.sql.DataSource

    接口的实现类对象 : ComboPooledDataSource

    成员位置创建 : ComboPooledDataSource对象

    实现代码: private static ComboPooledDataSource dataSource = new ComboPooledDataSource();

    C3P0内部会自动扫描并解析xml文件,给ComboPooledDataSource设置数据量的四大信息

    创建一个返回ComboPooledDataSource的方法

    public static DataSource getDataSource(){
    return dataSource;
    }

    创建一个静态方法返回Connection对象

    实现代码: public static Connection getConnection(){
    try {
    return dataSource.getConnection();
    } catch (SQLException e) {
    throw new RuntimeException("获取数据库连接信息失败!");
    }
    }

    创建一个静态方法释放资源

    【DBUtils工具类】

    DBUtils工具类作用:简化JDBC的发开(六步)

    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 , ResultSetHandier<T> rsh , Object...params)

    <T> T query(String sql , ResultSetHandler<T> rsh , Object ... params)

    参数: Connection conn : 数据库连接对象

    String sql:拼接的sql语句,可以使用?占位符

    Object...params : ?占位符的实际参数,可以使用Object[]

    ResulSetHasndier<T> rsh : 用来存储查询之后的结果集,可以传入ResulSetHasndier 9种实现类对象

    返回值 : <T> T :传入的ResltSetHandler实现类不同,返回的结果集也不同,使用泛型,传入什么结果集,就返回对应的类型

  • 相关阅读:
    viewport
    Flex 布局教程
    鼠标放上去盒子向上滑动
    鼠标放图片上,原图上划上去一个透明图片
    类加载过程
    JVM入门
    redis简介和安装
    JMH和Disruport
    线程池
    JUC
  • 原文地址:https://www.cnblogs.com/jia-/p/7092024.html
Copyright © 2011-2022 走看看