JDBC代码模板

import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test;

/**
 * 使用dbcp连接池工具
 * @author APPle
 *
 */
public class TestDBCP {
	private static String url = "jdbc:mysql://localhost:3306/mydb";
	private static String user = "root";
	private static String password = "root";
	private static String driverClass = "com.mysql.jdbc.Driver";
	@Test
	public void test1(){
		//1.创建连接池对象
		BasicDataSource bds = new BasicDataSource();
		
		//2.使用方法设置连接参数
		bds.setUrl(url);
		bds.setUsername(user);
		bds.setPassword(password);
		bds.setDriverClassName(driverClass);
		
		//3.设置连接池参数
		bds.setInitialSize(5); //初始化连接数
		bds.setMaxActive(8);//最大并发连接数
		bds.setMaxWait(5000);//最大等待时间,当连接超过最大并发连接数之后,用户需要等待的时间,当超过等待的时间,会抛出连接超时的异常
		bds.setMaxIdle(3);//最大空闲连接数量。当程序拿到连接超过了空闲时间没用,那么连接池就会回收这个连接对象
		//.....
		
		//4.获取连接
		for(int i=1;i<=9;i++){
			Connection conn = null;
			try {
				conn = bds.getConnection();  //遵守sun公司的jdbc的DataSource接口规范
				/*if(i==1){
					PreparedStatement stmt = null;
					stmt = conn.prepareStatement("create table student(id int)");
					stmt.executeUpdate();
				}*/
				
				System.out.println(conn);
				
				
				/*if(i==3){
					//释放连接
					conn.close();//这里并不是真的关闭连接,而是把连接对象放回连接池
				}*/
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

	}
	
	/**
	 * 使用配置文件的方法读取连接参数和连接池参数(推荐使用)
	 * 默认规则: properties文件的键名称和设置参数的方法名称保持一致。属性自动设置到BasicDataSource对象中
	 */
	@Test
	public void test2(){
		try {
			//1.从连接池工厂类中 , 创建连接池对象
			Properties prop = new Properties();
			//读取jdbc.properties文件
			prop.load(TestDBCP.class.getResourceAsStream("/jdbc.properties"));
			BasicDataSource bds = (BasicDataSource)BasicDataSourceFactory.createDataSource(prop);
			
			//2.获取连接
			for(int i=1;i<=9;i++){
				Connection conn = null;
				try {
					conn = bds.getConnection();
					/*if(i==1){
						PreparedStatement stmt = null;
						stmt = conn.prepareStatement("create table student(id int)");
						stmt.executeUpdate();
					}*/
					
					System.out.println(conn);
					
					if(i==3){

  

url=jdbc:mysql://localhost:3306/day19
username=root
password=root
drvierClassName=com.mysql.jdbc.Driver

initialSize=5
maxActive=8
maxWait=5000
maxIdle=3000

 

posted @ 2016-10-08 16:36  Cool咔咔  阅读(1300)  评论(0编辑  收藏  举报