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();