在Eclipse中测试MySQL-JDBC(14)c3p0配置多个数据库连接 (独立)

来源:互联网 发布:柏林航空破产知乎 编辑:程序博客网 时间:2024/05/16 06:59

【0 添加好c3p0必须的jar文件】

【0 准备条件 mysql中有数据库jdbc和数据库jdbcdemo】

【数据库jdbcdemo】

表名:account

字段名参数:

 name varchar(20)

salary double;

具体参数:

a 1000

b  2000

【数据库jdbc】

表名:account

字段名参数:

 name varchar(20)

salary double;

具体参数:

aa 100

bb  200


【0  准备 c3p0-config.xml】

<c3p0-config><!-- c3p0默认的数据库jdbcdemo连接配置 --><default-config><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///jdbcdemo?characterEncoding=utf-8</property><property name="user">root</property><property name="password">root</property></default-config><!-- 用户自定义数据库jdbc连接配置  需要指定数据库名jdbc(name="jdbc")--><named-config name="jdbc"><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql:///jdbc?characterEncoding=utf-8</property><property name="user">root</property><property name="password">root</property></named-config></c3p0-config>


【1 创建一个类连个测试方法来测试 C3p0Test.java】


package com.flying.datesource;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import org.junit.Test;import com.flying.jdbc.JdbcUtils;import com.mchange.v2.c3p0.ComboPooledDataSource;public class C3p0Test {//查询数据库中的默认的jdbcdemo数据库//下面使用配置文件c3p0-config.xml中默认的数据库(jdbcdemo)@Testpublic void testC3p0_1() {Connection con=null;PreparedStatement pt=null;ResultSet rt =null;try {//默认的数据库,这里不需要参数,c3p0可以自动读取配置文件中的默认的数据库ComboPooledDataSource cpds = new ComboPooledDataSource();con = cpds.getConnection();//此查询语句中的参数一定要和数据库中的表的字段名(列名)相同(name)String sql="select * from account where name='a'"; pt = con.prepareStatement(sql); rt = pt.executeQuery(); if (rt.next()) {System.out.println(rt.getString(1)+"-"+rt.getDouble(2));}} catch (Exception e) {e.printStackTrace();}finally{JdbcUtils.release(con, pt, rt);}}//查询数据库中指定的jdbc数据库//下面使用配置文件c3p0-config.xml中的jdbc数据库@Testpublic void testC3p0_2() {Connection con=null;PreparedStatement pt=null;ResultSet rt =null;try {//指定的数据库,需要参数(数据库名),c3p0才可以读取配置文件中的指定的数据库ComboPooledDataSource cpds = new ComboPooledDataSource("jdbc");con = cpds.getConnection();//此查询语句中的参数一定要和数据库中的表的字段名(列名)相同(name)String sql="select * from account where name='aa'";pt = con.prepareStatement(sql);rt = pt.executeQuery();if (rt.next()) {System.out.println(rt.getString(1)+"-"+rt.getDouble(2));}} catch (Exception e) {e.printStackTrace();}finally{JdbcUtils.release(con, pt, rt);}}}


【测试结果】

分别可以查询出来两个数据库中的参数


testC3p0_1()
a-1000.0


testC3p0_2()
aa-100.0


【C3P0总结】



手动配置方式:
         初始化C3P0的数据源,通过数据源的set方法,设置数据库连接信息。
 
Properties配置文件方式:
         在src下创建一个properties文件,使用key和value的格式设置数据库的连接信息,最后通过java代码来读取properties文件中的数据并设置的数据源的set方法中。
 
c3p0-config.xml配置方式:
         这种配置方式,其文件名称必须是c3p0-config.xml,在该xml中即可以配置默认的数据库连接,还可以配置自定义的数据库连接,在使用的时候,如果是使用默认的数据库连接,只需要初始化c3p0的数据源即可,如果要使用自定义的数据库连接,只需要在初始化c3po数据源的时候,传递一个参数,该参数就是配置文件中的自定义数据库的名称即可。


 
阅读全文
0 0
原创粉丝点击