CRUD代码和之前基本相同,这里只列出查的代码
1. 使用Druid :阿里巴巴开源平台上的一个项目
注意: eclipse配置文件中的中文为乱码,可通过修改显示中文;
具体操作如下:
Window –> General –> Content Types –> Text –> Java Properties File,将Default encoding改为UTF-8
- 配置文件:dbconfig.properties
#连接设置
#驱动加载可自动识别 可省略
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/account
username=root
password=1997
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxActive=50
#<!-- 最大空闲连接 -->
maxIdle=20
#<!-- 最小空闲连接 -->
minIdle=5
#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=60000
- 代码实现
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;
import javax.sql.DataSource;
import org.junit.Test;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import jdbc.JDBCUtil;
public class DruidTest {
/**
* * 使用配置方式设置参数 Druid属性文件:文件名称没有规定但是属性文件中的key为设定好的 不可更改
*/
@Test
public void demo() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 使用连接池:
// 从属性文件中获取:
Properties properties = new Properties();
properties.load(new FileInputStream("src/dbconfig.properties"));
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
// 获得连接:
conn = dataSource.getConnection();
// 编写SQL:
String sql = "select * from money";
// 预编译SQL:
pstmt = conn.prepareStatement(sql);
// 设置参数:
// 执行SQL:
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getInt("id") + " " +
rs.getString("name") + " " + rs.getDouble("money"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.release(rs, pstmt, conn);
}
}
}
2. 使用C3p0 :开源的,成熟的,高并发第三方数据库连接池
- 配置文件:c3p0-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/account</property>
<property name="user">root</property>
<property name="password">1997</property>
<!-- 初始化连接的数量 -->
<property name="initialPoolSize">10</property>
<!-- 最大空闲时间,单位是秒 -->
<property name="maxIdleTime">30</property>
<!-- 池中最大连接的数量 -->
<property name="maxPoolSize">100</property>
<!-- 池中最小连接的数量 -->
<property name="minPoolSize">10</property>
</default-config>
</c3p0-config>
- 代码实现
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import jdbc.JDBCUtil;
public class C3p0Test {
/**
* 采用配置文件的方式:
*/
@Test
public void demo() {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 获得连接:从连接池中获取:
// 创建连接池://创建连接池默认去类路径下查找c3p0-config.xml
ComboPooledDataSource dataSource = new ComboPooledDataSource();
// 从连接池中获得连接:
conn = dataSource.getConnection();
// 编写SQL:
String sql = "select * from money";
// 预编译SQL:
pstmt = conn.prepareStatement(sql);
// 执行SQL:
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getInt("id") + " " + rs.getString("name") + " " + rs.getDouble("money"));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.release(rs, pstmt, conn);
}
}
}