c3p0连接数据库的3种方式

时间:2023-12-17 09:30:20

c3p0连接数据库的3种方式,这里以mysql为例

1. 直接用set方法设置参数, 基本方法

 ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUser("root");
dataSource.setPassword("asd");

调用的时候只需要在QueryRunner的构造方法里引用dataSource(以dbutils为例), 就像这样:

QueryRunner qr = new QueryRunner(dataSource);

当然也可以用dataSource获取一个连接, 像这样:

   Connection conn = dataSource.getConnection();

  然后查询的时候调用QueryRunner的无参构造函数, 像这样:

  QueryRunner qr = new QueryRunner();

  然后在调用查询方法时, 传入连接对象就可以了, 像这样:

  User user = qr.query(conn, sql, new BeanHandler<User>(User.class));

2. 采用xml配置文件的方式, 程序会自动寻找配置文件
  xml的文件名固定为c3p0-config.xml
  文件在classpath路径下,即src下, 就是类的加载路径
  里面的基本配置如下

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/数据库名</property>
<property name="user">root</property>
<property name="password">asd</property>
</default-config> <named-config name="mysql">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/数据库名</property>
<property name="user">root</property>
<property name="password">asd</property>
</named-config> <named-config name="oracle">
……
</named-config>
</c3p0-config>

如果只有<default-config>则这样初始化数据源:
 ComboPooledDataSource dataSource = new ComboPooledDataSource(); 
如果初始化指定名称的数据源如mysql, 则这样:
 ComboPooledDataSource dataSource = new ComboPooledDataSource("mysql");

3. 采用.porperties属性文件的方式
  固定文件名:c3p0.properties
  文件在classpath路径下,即src下, 就是类的加载路径

里面的配置如下

c3p0.driverClass=com.mysql.jdbc.Driver
c3p0.jdbcUrl=jdbc:mysql://localhost:3306/数据库名
c3p0.user=root
c3p0.password=asd

初始化数据源:

ComboPooledDataSource dataSource = new ComboPooledDataSource();

dbutils的基本使用请参看我另一篇随笔:dbutils基本使用