本次用到的jar包先奉上(狗头
链接:https://pan.baidu.com/s/1Z7R8O2rR81Psxt8aUOvMMw
提取码:nmb9
创建数据表
安装mysql和Navicat,下载后连接到本地数据库
点击【连接】->MySQL

输入自定的(随便写)连接名,主机选择本地,即输入localhost,或者输入127.0.01,密码就是创建数据库时设置的密码

右击选择新建一个数据库

给数据库命个名,字符集选择utf8

创建成功,接下来新建一个表

右击刚刚新建的数据库,点击【表】,再点击【新建表】

简单的建一个表,将id设为主键,主要注意图中这几点,添加主键,和设置主键递增,

然后单击保存输入表名

可以看到下面多出来了一个user表,是我们刚刚创建的

在表中输入一些内容

eclipse(后面还有idea的)
配置tomcat,会的话可以跳过这一步,点击如下位置

找到【server】->runtime environment ->【add】

然后选择要的tomcat版本(这里选择的时tomcat8.5),点击next

点击browse,选择tomcat所在路径,或者把路径复制进来也一样

点击finish完成配置

Tomcat8出现则证明配置成功

如图创建一个web项目

输入工程名,选择tomcat,点击finish

创建成功

提前准备好这些jar包,少一个可能都不行

右键点击项目位置,选择最后一个

选中Java BUIld Path,选中Libraries标签,点击Add External JARs。

在弹出文件框中选择jar包

如果不会直接将jar包拖到lib文件夹下面
创建
右击file –> new ->file,

选择当前项目src文件,输入文件名dbcpconfig.properties,点击finish


输入如下代码
#\u8FDE\u63A5\u8BBE\u7F6E
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=123456
#\u521D\u59CB\u5316\u8FDE\u63A5
initialSize=5
#\u6700\u5927\u8FDE\u63A5\u6570\u91CF
maxActive=10
#\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5
maxIdle=10
同样的,如果不会直接将写好的txt文件名改为dbcpconfig.properties,拖到src文件下面

以下几个点注意,可以根据自身自行修改

创建一个名称为DBCPUtils的工具类,其代码如下所示。
右击src/main/java(老版本的就在src文件下创建),new->class

输入如下代码
import java.sql.*;
import java.util.Properties;
import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;
public class DBCPUtils {
private static DataSource ds;//定义一个连接池对象
static{
try {
Properties pro = new Properties();
pro.load(DBCPUtils.class.getClassLoader()
.getResourceAsStream("dbcpconfig.properties"));
//得到一个连接池对象
ds = BasicDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
throw new ExceptionInInitializerError("初始化连接错误,请检查配置文件!");
}
}
//从池中获取一个连接
public static Connection getConnection() throws SQLException{
return ds.getConnection();
}
public static void closeConn(Connection conn){
if(conn!=null){
try {
conn.close();//关闭
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
如果有报错,根据提示调试即可
完成如图

创建一个测试类DBCPTest,(创建方法同上)在其main方法中测试获取数据连接。其测试类的代码如下:
import java.sql.SQLException;
public class DBCPTest {
public static void main(String[] args) throws SQLException {
//输出连接信息
System.out.println(DBCPUtils.getConnection());
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
Connection conn = DBCPUtils.getConnection();
DBCPUtils.closeConn(conn);
}
long end = System.currentTimeMillis();
System.out.println("用时:" + (end - begin));
}
}
结果如图

运行结果如图所示

使用C3P0数据源查询数据
编写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/jdbc
</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="checkoutTimeout">30000</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
<named-config name="itcast">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">
jdbc:mysql://localhost:3306/jdbc
</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">15</property>
</named-config>
</c3p0-config>
同样的不


或者另外写一个记事本文件,重命名为c3p0-config.xml后导入


创建一个名称为C3p0Test的类,其代码如下所示。
import java.sql.*;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Test {
public static DataSource ds = null;
// 初始化C3P0数据源
static {
// 使用c3p0-config.xml配置文件中的named-config节点中name属性的值
ComboPooledDataSource cpds = new ComboPooledDataSource("itcast");
ds = cpds;
}
public static void main(String[] args) {
Connection conn = null;
PreparedStatement prestmt = null;
ResultSet rs = null;
try {
conn = ds.getConnection();
String sql = "select * from user";
prestmt = conn.prepareStatement(sql);
rs = prestmt.executeQuery();
while (rs.next()) {
System.out.print(rs.getInt("id") + " \t");
System.out.print(rs.getString("name") + " \t");
System.out.print(rs.getString("password") + " \t");
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if (prestmt != null) {
try {
prestmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
prestmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
}
}

输出结果,遍历表中所有数据

Idea:
创建一个web项目 new - > project

选中如图web applicance->next,选择项目名和存放路径


如果tomcat配置好了就跳过
选择 + ,在下拉中找到 Tomcat Server,选择local

选择好tomcat

在点击 Deployment ,然后点击 + ,选择Artifact,

选择带项目名和war的,点击OK,配置完成

在web文件下的WEB-INF文件,右击【new】->directory,创建文件

包名为lib

将需要的jar包直接复制进来(或者托进来也行)

右击lib 点击【add as library】

点击ok


剩下我都会用这种最简单粗暴的方式
创建配置文件dbcpconfig.properties
在项目的src目录下创建一个名称为dbcpconfig.properties的配置文件,编辑后的内容如下所示。
#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=itcast
#<!-- 初始化连接 -->
initialSize=10
#最大连接数量
maxActive=50
#<!-- 最大空闲连接 -->
maxIdle=20
#<!-- 最小空闲连接 -->
minIdle=5
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制
maxWait=1000
或者在记事本重命名dbcpconfig.properties,写好拖入src

创建一个名称为DBCPUtils的工具类,其代码如下所示。
import java.sql.*;
import java.util.Properties;
import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;
public class DBCPUtils {
private static DataSource ds;//定义一个连接池对象
static{
try {
Properties pro = new Properties();
pro.load(DBCPUtils.class.getClassLoader()
.getResourceAsStream("dbcpconfig.properties"));
//得到一个连接池对象
ds = BasicDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
throw new ExceptionInInitializerError("初始化连接错误,请检查配置文件!");
}
}
//从池中获取一个连接
public static Connection getConnection() throws SQLException{
return ds.getConnection();
}
public static void closeConn(Connection conn){
if(conn!=null){
try {
conn.close();//关闭
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

创建一个测试类DBCPTest,在其main方法中测试获取数据连接。其测试类的代码如下:
import java.sql.SQLException;
public class DBCPTest {
public static void main(String[] args) throws SQLException {
//输出连接信息
System.out.println(DBCPUtils.getConnection());
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
Connection conn = DBCPUtils.getConnection();
DBCPUtils.closeConn(conn);
}
long end = System.currentTimeMillis();
System.out.println("用时:" + (end - begin));
}
}

运行结果如下

在项目的src目录下创建一个名称为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/jdbc
</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="checkoutTimeout">30000</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
<named-config name="itcast">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">
jdbc:mysql://localhost:3306/jdbc
</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">15</property>
</named-config>
</c3p0-config>

创建一个名称为C3p0Test的类,其代码如下所示。
import java.sql.*;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Test {
public static DataSource ds = null;
// 初始化C3P0数据源
static {
// 使用c3p0-config.xml配置文件中的named-config节点中name属性的值
ComboPooledDataSource cpds = new ComboPooledDataSource("itcast");
ds = cpds;
}
public static void main(String[] args) {
Connection conn = null;
PreparedStatement prestmt = null;
ResultSet rs = null;
try {
conn = ds.getConnection();
String sql = "select * from user";
prestmt = conn.prepareStatement(sql);
rs = prestmt.executeQuery();
while (rs.next()) {
System.out.print(rs.getInt("id") + " \t");
System.out.print(rs.getString("name") + " \t");
System.out.print(rs.getString("password") + " \t");
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
rs = null;
}
if (prestmt != null) {
try {
prestmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
prestmt = null;
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
conn = null;
}
}
}
}


运行结果如图所示

作者时一个普通小白,如果有什么不对的地方欢迎指正(狗头保命ing
本文详细介绍如何在Eclipse和IntelliJ IDEA中配置和使用DBCP及C3P0数据库连接池,包括创建数据库表、配置连接池参数、编写Java代码获取连接等步骤。

849

被折叠的 条评论
为什么被折叠?



