关于eclipse数据库连接池封装使用

  1. 创建一个文件,在src目录下,文件名为"db.properties"

    文件中以键值对形式记录,地址(url),数据库名(username),数据库密码(username)
    连接池最大数(MaxPoolSize),连接池最小数(MinPoolSize),初始化连接池连接数量(
    initialPoolSize),当连接池用完时客户端调用getConnection()后等待获取新连接的时间
    ,超时后将抛出 SQLException,如设为0则无限期等待。单位毫秒,默认为0
    

    代码具体如下:

    drivername=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/mvc
    username=root
    pwd=root
    
    maxPoolSize=20
    minPoolSize=5
    initialPoolSize=10
    checkoutTimeout=10000
    
    
  2. 在工具包(com.java.util)下创建连接池类
    代码如下:

package com.java.util;

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

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 数据库连接池 c3p0数据源
 * 
 * @author Administrator
 */
public class MyDataSource {

	// 创建静态变量用于获取存放db.properties文件中的数据
	public static String DRIVER;
	public static String URL;
	public static String USER;
	public static String PWD;
	public static int maxPoolSize;
	public static int minPoolSize;
	public static int initialPoolSize;
	public static int checkoutTimeout;
	//保存文件名
	private static final String filePath = "db.properties";
	//连接池初始化
	private static ComboPooledDataSource cpDataSource = null;

	// 加载驱动
	/*static代码块 ,也叫静态代码块,
		是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,
		它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,
		如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,
		每个代码块只会被执行一次
		利用静态代码块可以对一些static变量进行赋值*/
	static {
		try {
		
			// 读取配置文件,加载JDBC四大参数
			//Properties是Java中jdk自带的一个对象
			Properties config = new Properties();
			
			//我们可以直接将后缀为properties的文件变为Properties对象,
			//然后通过Porperties对象中的
			
			config.load(MyDataSource.class.getClassLoader().getResourceAsStream(filePath));
			
			//public synchronized Object setProperty(String key, String value)
			//public String getProperty(String key)
			//获取db.properties文件中的数据
			DRIVER = config.getProperty("drivername");
			URL = config.getProperty("url");
			USER = config.getProperty("username");
			PWD = config.getProperty("password");

			maxPoolSize = Integer.parseInt(config.getProperty("maxPoolSize"));
			minPoolSize = Integer.parseInt(config.getProperty("minPoolSize"));
			initialPoolSize = Integer.parseInt(config.getProperty("initialPoolSize"));
			checkoutTimeout = Integer.parseInt(config.getProperty("checkoutTimeout"));

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**************** c3p0 数据库连接池 启动方法 ******************/
	private static void c3p0DataSource() throws Exception {
		//创建连接池
		cpDataSource = new ComboPooledDataSource();
		//设置连接池参数
		cpDataSource.setDriverClass(DRIVER);
		cpDataSource.setJdbcUrl(URL);
		cpDataSource.setUser(USER);
		cpDataSource.setPassword(PWD);
		cpDataSource.setMaxPoolSize(maxPoolSize);
		cpDataSource.setMinPoolSize(minPoolSize);
		cpDataSource.setInitialPoolSize(initialPoolSize);
		cpDataSource.setCheckoutTimeout(checkoutTimeout);
	}

	/**
	 * c3p0数据库连接入
	 * 
	 * @return
	 * @throws Exception
	 */
	public static Connection getConnection() {
		Connection conn = null;
		
		try {
		//如果连接池不存在就调用连接池创建方法
			if (cpDataSource == null) {
				c3p0DataSource();
			} 
			如果连接不存在,通过连接池获得一个连接
			if(conn == null){
				conn = cpDataSource.getConnection();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		//返回一个连接
		return conn;
	}

}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用JDBC技术实现数据查询功能。 要求: (1)创建t_users表,字段为id、name、password、email、birthday; (2)创建User类,属性与数据库的t_users表中字段一一对应,用于封装数据; (3)使用JDBC相关接口和类实现数据库中数据的查询; (4)创建Servlet程序用于接收JSP页面请求,并获取数据库中的符合查询条件的t_users表中的数据; (5)创建JSP页面,名称可自定义,用于显示查询结果; (6)创建数据库工具类,实现数据库连接等的获取与释放。 使用数据库连接池C3P0及JDBC技术,并结合JSP、Servlet以及Filter等JavaWeb技术实现数据库中的学生信息数据实现增加、修改、删除、查询等操作。 【需求说明】 (1)学生信息包括:学号、姓名、性别、出生日期、所在院系、爱好、个人简介等信息; (2)分别设计: addStu.jsp、editStu.jsp和stuList.jsp用于实现用户交互; (3)分别设计:SaveStudentServlet、EditStudentServlet、DelStudentServlet和SearchStudentServlet四个Servlet程序,用于实现对学生信息数据的增加、修改、删除、查询等功能。 (4)Filter过滤器解决POST提交方式时的中文乱码问 【说明】: (1)使用Eclipse和Maven创建Web类型的项目; (2)分别设计以下JSP页面: ①main.jsp:系统首页; ②addStu.jsp:学生信息添加页面; ③editStu.jsp:学生信息修改页面; ④stuList.jsp:学生信息显示页面,该页在中包括可根据学生姓名模糊查询、修改和删除等功能; (3)配置数据库连接池
最新发布
05-25

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值