c3p0連接數據庫的3種方式


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基本使用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM