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

【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】


	
	
		com.mysql.jdbc.Driver
		jdbc:mysql:///jdbcdemo?characterEncoding=utf-8
		root
		root
	
	
	
		com.mysql.jdbc.Driver
		jdbc:mysql:///jdbc?characterEncoding=utf-8
		root
		root
	


【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)
	@Test
	public 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数据库
	@Test
	public 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数据源的时候,传递一个参数,该参数就是配置文件中的自定义数据库的名称即可。


 
  
 
  
 
  
 
  
 
 

你可能感兴趣的:(java,JDBC,MySQL,Eclipse,c3p0)