欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA连接数据库:数据库连接池,C3P0连接和druid连接

程序员文章站 2024-03-14 16:57:52
...

数据库连接池技术是为了解决数据库广泛的连接和关闭技术,提高效率,提高用户体验度:
c3p0的使用
第一步导包
JAVA连接数据库:数据库连接池,C3P0连接和druid连接
JAVA连接数据库:数据库连接池,C3P0连接和druid连接
JAVA连接数据库:数据库连接池,C3P0连接和druid连接
导这三个包;
小伙伴们没有的话可以滴滴我,也可以百度下载,欢迎加QQ私聊问题,我们一起解决:QQ:2935771562

第二步:写配置文件
JAVA连接数据库:数据库连接池,C3P0连接和druid连接
注意我这里以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个包】:
JAVA连接数据库:数据库连接池,C3P0连接和druid连接
JAVA连接数据库:数据库连接池,C3P0连接和druid连接
第二步:也是写配置文件:
JAVA连接数据库:数据库连接池,C3P0连接和druid连接
注意:这里的名字就喝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
如有错误,请多指教。