工具
①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&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包打包上传啦。