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连接池可大大方便我们的操作,减少数据库服务器内存溢出