JDBC使用小结(一)

所有连接池都实现了 javax.sql.DataSource 接口规范

1 DBCP连接池

1.1 实现类

BasicDataSource implements javax.sql.DataSource

1.2 使用方式

  1. 使用方式一:(不借助配置文件)
// 连接池
BasicDataSource ds = new BasicDataSource();
// 配置数据库连接
ds.setDriverClassName("com.mysql.cj.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost:3306/数据库名");
ds.setUsername("xxx");
ds.setPassword("xxx");
// 获取连接
ds.getConnection();
  1. 使用方式二:(借助*.properties配置文件)

注意:配置文件名,可以随便起,一般叫做dbcp-config.properties

# 配置数据库连接
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名称
username=xxx
password=xxx
# 初始化连接数
initialSize=10
  1. 使用方式三(推荐):

不需要解析dbcp-config.properties文件

用到一个核心类: BasicDataSourceFactory

DataSource ds = BasicDataSourceFactory.createDataSource(Properties对象);
ds.getConnection();
//补充:
//    加载配置文件的两种方式:
//    1.配置文件在工程的根目录
Properties ps = new Properties();
ps.load(new FileInputStream("配置文件名"));
//    2.配置文件在src根目录
Properties ps = new Properties();
InputStream in = 当前类.class.getClassLoader().getResourceAsStream("配置文件名");

// 将配置信息加载到属性集合
ps.load(in);

2 C3P0连接池

2.1 实现类

ComboPooledDataSource implments javax.sql.DataSource

2.2 使用方式

  1. 方式一: 自己设置四大要素
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setDriverClass("com.mysql.jdbc.cj.Driver");
ds.setJdbcUrl("jdbc:mysql://localhost:3306/数据库名");
ds.setUser("xxx");
ds.setPassword("xxx");
// 获取使用
ds.getConnection();
  1. 方式二:基于XML配置文件

注意:

1.文件名和文件中标签名 必须是官方指定的

2.必须放到src根目录下,C3P0的实现类ComboPooledDataSource会自动加载

使用

// 会自动去加载 src下一个叫做c3p0-config.xml的文件
ComboPooledDataSource ds = new ComboPooledDataSource();
// 
ds.getConnection();

3 DBUtils

阿帕奇封装JBDC的工具类

DBUtils:主要用于 关闭连接,释放资源,和事务相关
QueryRunner: 主要用于 增删改查 CURD
    int update(String sql,Object... params);//用于增删改
    不一定  query(String sql,ResultSetHandler接口实现类对象 ,Object...params);//用于查询的
    
ResultSetHandler:
    (Object[])ArrayHandler:把结果集中的第一条记录,封装成Object[],返回这个Object数组
    (List)ArrayListHandler:把结果集中每一条记录,分别封装成Object数组,把这个数组再封装到集合中,并返回集合
        (JavaBean)BeanHandler:把结果集中的第一条记录,封装到JavaBean对象,返回这个对象
            new BeanHandler(JavaBean.class)
        (List)BeanListHandler:把结果集中每一条记录,分别封装到JavaBean对象,把这些对象保存到集合中,并返回这个集合
    
    (List)ColumnListHandler:把结果集中的某一列的值,封装到list集合中,并返回

    (Map)MapHandler:把结果集中的第一条记录,封装到Map中
                键是字段名,值是字段值
    (List>)MapListHandler:把结果集中的每一条记录,封装到Map中
                键是字段名,值是字段值,再把这个Map存储到集合中,并返回这个集合
        (Object)ScalarHandler:主要用来保存单一数据
            new ScalarHandler();
    QueryRunner的使用步骤:
    //1.创建QueryRunner对象
    QueryRunner qr = new QueryRunner();//无参构造,在执行时候必须传入连接,用于事务开发
    QueryRunner qr = new QueryRunner(DataSource ds);//有参
    //2.执行sql
    qr.update();//增删改
    qr.query();//查询
    //3.不需要我们手动关系连接,sql执行对象,结果集
 
  

                            
                        
                    
                    
                    

你可能感兴趣的:(mysql,jdbc)