java编程关于使用c3p0连接mysql数据库使用的方法

java编程关于使用c3p0连接mysql数据库使用的方法

1.准备jar包

(1). 导入c3p0-0.9.2.1.jar包,mysql-connector-java-5.1.38.jar包和mchange-commons-java-0.2.3.4.jar包

具体jar包自行下载

2打开eclipse,创建utils工具类

(1)我直接使用的是c3p0-config.xml的配置文件,为了简化代码,这个配置文件是放在类路径下面(官方文档是这么说的),我理解就是放在src的文件夹下


	//3p0-config.xml的配置
	
	<?xml version="1.0" encoding="UTF-8"?>
	<c3p0-config>
	
	  <default-config>
	    <property name="driverClass">com.mysql.jdbc.Driver</property>	<!-- 加载驱动 -->
		<property name="jdbcUrl">jdbc:mysql://localhost:3306/tree</property>	<!-- 连接数据库地址 -->
		<property name="user">root</property>	<!-- 数据库账号名 -->
		<property name="password">123456</property>  <!-- 数据库登录密码 -->
		<property name="initialPoolSize">5</property>	<!-- 初始化连接数 -->
		<property name="maxPoolSize">200</property>		<!-- 最大连接数 -->
	  </default-config>
	  
	</c3p0-config>

(2)JdbcUtils.java类的代码


	package com.utils;
	
	import java.sql.Connection;
	import java.sql.ResultSet;
	import java.sql.SQLException;
	import java.sql.Statement;
	
	import com.mchange.v2.c3p0.ComboPooledDataSource;
	/**
	 * JDBC的工具类
	 * @author xqs
	 *
	 */
	public class JdbcUtils {
	private static final ComboPooledDataSource datasource = new ComboPooledDataSource();
	
	/**
	 * 获取连接方法
	 * @return
	 * @throws Exception
	 */
	public static Connection getConnection() throws Exception{
		Connection conn =  datasource.getConnection();
		return conn;
	}
	
	/**
	 * 关闭资源的方法
	 * @param rs
	 * @param stmt
	 * @param conn
	 */
	public static void release(ResultSet rs,Statement stmt,Connection conn){
		if(rs!= null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			rs = null;
		}
		if(stmt != null){
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			stmt = null;
		}
		if(conn != null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn = null;
		}
	}
	}	

3进行简单的测试

(1)测试代码如下


	import java.sql.Connection;
	import java.sql.PreparedStatement;
	import java.sql.ResultSet;
	
	import org.junit.Test;
	
	import com.utils.JdbcUtils;
	
	public class JdbcDemo {
	
	
	@Test
	/**
	 * 此处进行单元测试,方便测试
	 */
	
	public void JdbcDemo1() {
		Connection conn = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		
		try {
			conn  = JdbcUtils.getConnection();		//此处直接调用工具类JdbcUtils的连接方法。
			String sql = "select * from ord_user";
			pstmt = conn.prepareStatement(sql);
			rs = pstmt.executeQuery();
			while(rs.next()) {
				System.out.println(rs.getString("tel")+"  "+rs.getString("name"));  //获取结果后在此遍历输出
			}
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			JdbcUtils.release(rs, pstmt, conn);	//关闭资源
		}	
		
	}
	}

使用c3p0连接池可大大方便我们的操作,减少数据库服务器内存溢出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值