JAVA连接数据库:数据库连接池,C3P0连接和druid连接
程序员文章站
2024-03-14 16:57:52
...
数据库连接池技术是为了解决数据库广泛的连接和关闭技术,提高效率,提高用户体验度:
c3p0的使用
第一步导包
导这三个包;
小伙伴们没有的话可以滴滴我,也可以百度下载,欢迎加QQ私聊问题,我们一起解决:QQ:2935771562
第二步:写配置文件
注意我这里以mysql数据库为例,如果是其他的可以略修改;
蓝色字体部分为名字,可以随便取
第三步:写c3p0的JDBC文件:
这里是JDBC开始可以复制哦://
package com.zhibang.uitls;//这个是包的地址自己要修改一下
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JDBC_c3p0 {
/**
* 加载驱动
*/
private static ComboPooledDataSource dataSource = new ComboPooledDataSource();
/**
* 1. 加载数据库驱动
*/
static {
try {
InputStream is = JDBC_c3p0.class.getResourceAsStream("/c3p0.properties");
Properties prop = new Properties();
prop.load(is);
//获取properties对象数据源四要素的值,赋给dataSource对象
dataSource.setDriverClass(prop.getProperty("c3p0.driverClass"));
dataSource.setJdbcUrl(prop.getProperty("c3p0.jdbcUrl"));
dataSource.setUser(prop.getProperty("c3p0.user"));
dataSource.setPassword(prop.getProperty("c3p0.password"));
//dataSource.setInitialPoolSize(prop.getProperty("c3p0.initPoolSize"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (PropertyVetoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 这里是获得连接
*
* @return
*/
public static Connection getConnection() {
Connection conn = null;
try {
conn = dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
/**
* 这里是关闭连接
*/
public static void close(ResultSet rs, PreparedStatement ps, Connection con) {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement ps, Connection con) {
close(null, ps, con);
}
public static void close(Connection con) {
close(null, null, con);
}
}
// 到此结束JDBC
接下来你就可以调用它来进行增删改查了哦
Druid
Druid的使用和c3p0差不多:我也以mysql数据库为例
第一步:导包【2个包】:
第二步:也是写配置文件:
注意:这里的名字就喝c3p0不一样了,名字必须这样
第三步:写Druid的JDBC文件:
//代码从此开始,也可以复制哦:
package com.zhibang.utils;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
public class Druid_JDBC {
private static DataSource dataSource;
/**
* 加载驱动
*/
static {
try {
InputStream is= Druid_JDBC.class.getResourceAsStream("/druid.properties");
Properties ps=new Properties();
ps.load(is);
dataSource = DruidDataSourceFactory.createDataSource(ps);
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 这里是获得连接
*
* @return
*/
public static Connection getcon() {
Connection con=null;
try {
con=dataSource.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return con;
}
/**
* 这里是关闭连接
*/
public static void close(ResultSet rs, PreparedStatement ps, Connection con) {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (con != null) {
con.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement ps, Connection con) {
close(null, ps, con);
}
public static void close(Connection con) {
close(null, null, con);
}
public static void main(String[] args) {
System.out.println(getcon());
}
}
//代码到此结束
//和c3p0一样,其他的类就可以来掉用他
//如果没有实现小伙伴们可以滴滴:QQ私聊:2935771562
如有错误,请多指教。