第三方数据包创建数据库连接对象

这篇博客介绍了如何通过JDBC使用C3P0、DBCP和Druid三种数据库连接池。分别阐述了每个连接池的配置、优缺点,并给出了创建数据库表、配置文件示例以及数据库访问类的创建过程。Druid作为高效且功能丰富的数据库连接池,具备监控性能、SQL执行日志和扩展性的特点。
摘要由CSDN通过智能技术生成

1.通过JDBC使用C3P0连接池

      C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate、Spring等。

      例如:

            1.创建数据库表

                  create  table t_user(

                  u_id  int  primary key auto_increment,

                  u_name varchar(20),

                  u_age int,

                  u_address varchar(30)

                  );

            2.创建Java项目,导入依赖包

                  c3p0-0.9.5.2.jar

                  mchange-commons-java-0.2.15.jar

                  mysql-connector-java-5.1.38.jar

            3.在src下创建c3p0的配置文件【c3p0-config.xml】

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
    <!-- c3p0的默认配置项 -->
	<default-config>
    	<property name="driverClass">com.mysql.jdbc.Driver</property>
    	<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
    	<property name="user">root</property>
    	<property name="password">123456</property>
    	<property name="initialPoolSize">5</property>
    	<property name="maxPoolSize">20</property>
  	</default-config>
  	<!-- 定义的数据库配置 -->
  	<named-config name="test"> 
    	<property name="driverClass">com.mysql.jdbc.Driver</property>
    	<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
    	<property name="user">root</property>
    	<property name="password">123456</property>
    	<property name="initialPoolSize">25</property>
    	<property name="maxPoolSize">200</property>
  	</named-config>
</c3p0-config>

            4.创建javabean

            5.创建数据库访问类

package com.wangxing.jdbcc3p0.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.wangxing.jdbcc3p0.bean.UserBean;

/**
 * 用户信息的访问类
 * 
 * @author Administrator
 *
 */
public class UserBeanDaoClass {

	// 定义保存c3p0数据源对象
	private ComboPooledDataSource dataSource = null;

	public UserBeanDaoClass() {
		// 加载c3p0-config.xml文件中默认的config
		// 初始化数据源
		dataSource = new ComboPooledDataSource();
		// 初始化数据源,加载的是自定义的数据库表配置项
		// dataSource =new ComboPooledDataSource("my");
	}
	// 添加用户信息
	public void insertUser(UserBean userBean) {
		Connection conn = null;
		PreparedStatement statement = null;
		try {
			// 得到数据库连接
			conn = dataSource.getConnection();
			// 创建添加数据的sql语句
			String insert = "insert into t_user values(null,?,?,?);";
			System.out.println(insert);
			// 创建PreparedStatement对象
			statement = conn.prepareStatement(insert);
			// 传递“?”所需的数据值--PreparedStatement对象的setXXXX(位置,数据值)
			statement.setString(1, userBean.getUname());
			statement.setInt(2, userBean.getUage());
			statement.setString(3, userBean.getUaddress());
			// 执行添加sql
			int temp = statement.executeUpdate();
			if (temp > 0) {
				System.out.println("添加信息成功");
			}
		} catch (Exception e) {
			System.out.println("添加信息失败");
			e.printStackTrace();
		} finally {
			if (statement != null && conn != null) {
				try {
					statement.close();
					conn.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
	// 根据用户id修改用户信息
	public void updateUser(UserBean userBean) {
		Connection conn = null;
		PreparedStatement statement = null;
		try {
			// 得到数据库连接
			conn = dataSource.getConnection();
			// 创建修改数据的sql语句
			String update = "update t_user set u_name=?,u_age=?,u_address=? where u_id=?;";
			System.out.println(update);
			// 创建PreparedStatement对象
			statement = conn.prepareStatement(update);
			// 传递“?”所需的数据值--PreparedStatement对象的setXXXX(位置,数据值)
			statement.setString(1, userBean.getUname());
			statement.setInt(2, userBean.getUage());
			statement.setString(3, userBean.getUaddress());
			statement.setInt(4, userBean.getUid());
			// 执行修改sql
			int temp = statement.executeUpdate();
			if (temp > 0) {
				System.out.println("修改信息成功");
			}
		} catch (Exception e) {
			System.out.println("修改信息失败");
			e.printStackTrace();
		} finally {
			if (statement != null && conn != null) {
				try {
					statement.close();
					conn.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
	// 根据用户id查询用户信息
	public UserBean selectUserById(int userid) {
		UserBean userbean = null;
		Connection conn = null;
		PreparedStatement statement = null;
		ResultSet resultSet = null;
		try {
			// 得到数据库连接
			conn = dataSource.getConnection();
			// 创建根据用户id查询用户信息sql语句
			String select =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值