C3P0基本使用教程
-
导入jar包:
- c3p0-0.9.5.2.jar C3P0核心
- mchange-commons-java-0.2.12.jar C3P0依赖
- mysql-connector-java-5.1.37-bin.jar 数据库连接驱动(这里使用的是MySQL)
- 下载连接:https://pan.baidu.com/s/1rsP9dA8wB3JvOctUs5BVsg
将jar包复制到libs文件夹,将jar包添加到库文件中(右击libs-->Add As Library-->ok)
-
定义配置文件
- 名称:c3p0.properties 或者 c3p0-config.xml
- 位置:src目录下
-
c3p0-config.xml内容
<c3p0-config> <!-- 使用默认的配置读取连接池对象 --> <default-config> <!-- 连接参数 --> <!-- 驱动名称 --> <property name="driverClass">com.mysql.jdbc.Driver</property> <!-- 数据库URL --> <property name="jdbcUrl">jdbc:mysql://localhost:3306/dbname</property> <!-- 用户名 --> <property name="user">root</property> <!-- 密码 --> <property name="password">root</property> <!-- 连接池参数 --> <!-- 初始连接数量 --> <property name="initialPoolSize">5</property> <!-- 最大连接数 --> <property name="maxPoolSize">10</property> <!-- 超时时间 --> <property name="checkoutTimeout">3000</property> </default-config> </c3p0-config>
-
使用C3P0
import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Scanner; public class C3P0Demo1 { public static void main(String[] args) { String sql = "select * from student where id = ?"; Scanner sc = new Scanner(System.in); int id = sc.nextInt(); Connection conn = null; PreparedStatement pstmt = null; try { //创建数据库连接池对象 DataSource ds = new ComboPooledDataSource(); //获取数据库连接对象 conn = ds.getConnection(); //获取statement,使用prepareStatement,防止sql注入 pstmt = conn.prepareStatement(sql); //注入sql参数(sql中?将被替换) pstmt.setInt(1,id); //执行sql,返回数据集 ResultSet rs = pstmt.executeQuery(); //数据处理 System.out.println(rs); } catch (SQLException e) { e.printStackTrace(); } finally { //释放stmt if(pstmt != null){ try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } //conn归还连接池 if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }