当前位置: 代码迷 >> 综合 >> Eclipse连接MySql数据库——c3p0连接池,MySQL8.0
  详细解决方案

Eclipse连接MySql数据库——c3p0连接池,MySQL8.0

热度:90   发布时间:2023-11-22 17:47:42.0

工具

①mysql-connector-java-8.0.11.jar 驱动包
②eclipse 开发工具
③mysql-8.0.11 数据库

Eclipse连接MsSql数据库步骤

一、 mysql-connector-java-8.0.11.jar 下载
下载网址:https://dev.mysql.com/downloads/connector/j/

二、eclipse导入jdbc的驱动包
前面两步参考本人写的另外两个链接:
Eclipse连接MsSql数据库 8.0版JDBC驱动
Eclipse加载MySQL驱动问题

三、 java连接数据库(c3p0连接池)
我们这里不用JDBC连接,用c3p0连接池连接。
首先我们需要知道为什么要使用连接池:因为jdbc没有保持连接的能力,一旦超过一定时间没有使用(大约几百毫秒),连接就会被自动释放掉,每次新建连接都需要140毫秒左右的时间而C3P0连接池会池化连接,随时取用,平均每次取用只需要10-20毫秒,所以如果是很多客户端并发随机访问数据库的话,使用连接池的效率会高。
(1)首先需要导入相对应的jar包,导入方法同前面一样
在这里插入图片描述
现在加上JDBC的jar包,应该是有如下四个jar包
在这里插入图片描述
(2)编写数据库的配置文件:c3p0-config.xml
示例:

<?xml version="1.0" encoding="UTF-8"?><c3p0-config><!-- This is my config for mysql--><named-config name="mysql/news"><!-- 指定链接数据源的基本属性 --> <property name="user">root</property><property name="password">root</property><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://localhost:3306/j1052_news?useUnicode=true&amp;characterEncoding=UTF8</property><!-- 若数据库中连接不足时,一次向数据库服务器申请多少个链接 --><property name="acquireIncrement">50</property><!-- 初始化数据库连接池时,连接的个数 --><property name="initialPoolSize">5</property><!-- 数据库连接池中最小连接数 --><property name="minPoolSize">5</property><!-- 数据库连接池中最大连接数 --><property name="maxPoolSize">1000</property><!-- c3p0数据库连接池中可以维护的Statement对象的个数 --><property name="maxStatements">20</property><!-- 每个连接同时可以使用的Statement对象的个数 --> <property name="maxStatementsPerConnection">5</property></named-config>
</c3p0-config>

(3)写一个c3p0连接数据库的类,叫DBUtil类

package com.wkd.util;import java.sql.*;import com.mchange.v2.c3p0.ComboPooledDataSource;/*** 数据库工具类* @author 菲菲**/
public class DBUtil {
    private static ComboPooledDataSource cpds = null;//数据源/*** 获取连接对象* @return*/public static Connection getConnection() {
    try {
    if(cpds == null) {
    //第一次请求数据库//初始化数据源 参数要与c3p0-config.xml里面named-config标签的name值一样cpds = new ComboPooledDataSource("mysql/myblog");}return cpds.getConnection();//从连接池中获取连接对象} catch (SQLException e) {
    e.printStackTrace();System.out.println("获取连接失败.....");}return null;}/*** 关闭所有数据库,释放资源* @param conn* @param stm* @param pstmt* @param rs*/public static void closeAll(Connection conn,Statement stmt,  PreparedStatement pstmt,ResultSet rs) {
    try {
    if(rs!= null) {
    rs.close();rs = null;}if(pstmt!=null) {
    pstmt.close();pstmt = null;}if(stmt !=null) {
    stmt.close();stmt = null;}if(conn!=null) {
    conn.close();//将当前连接对象返回到连接池中,供下次调用conn = null;}} catch (SQLException e) {
    e.printStackTrace();}}public static void main(String[] args) {
    Connection conn = DBUtil.getConnection();System.out.println(conn == null ?"连接失败":"连接成功");}
}

然后运行测试自己数据库是否连接成功。
mysql-connector-java-8.0.11.jar 包和c3p0连接池的三个jar包打包上传啦。

  相关解决方案