数据库连接的两种实现方式(读取配置文件)——DBCP&C3P0;DBCP实现连接代码,C3P0实现连接代码——包含完整代码

数据库连接的两种实现方式(读取配置文件)——DBCP&C3P0;DBCP实现连接代码,C3P0实现连接代码——包含完整代码,第1张

概述两种数据库连接实现方式第一种方式:DBCPDBCP使用流程导jar包使用DBCP创建数据库连接对象使用DataSource,调用连接池对象的getConnection方法编写的.properties文件:dbcpconfig.properties#连接设置driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysq


两种数据库连接实现方式
第一种方式:DBCP

DBCP使用流程

导jar包使用DBCP创建数据库连接对象
DataSource ds=BasicdataSourceFactory.createDatasource("一个存储连接信息的propertIEs集合");
使用DataSource,调用连接池对象的getConnection方法


编写的.propertIEs文件:dbcpconfig.propertIEs

#连接设置driverClassname=com.MysqL.jdbc.Driverurl=jdbc:MysqL://localhost:3306/demobaseusername=rootpassword=root

JDBCUtils中的代码

public class JDBCUtils {		private static DataSource ds;	//DatatSource 对象只会创建一个	static {		try {		//创建DBCP的数据库连接对象		//1、获取配置文件对应的输入流		inputStream in = JDBCUtils.class.getClassLoader().getResourceAsstream("dbcpconfig.propertIEs");		//2、将流中数据读入集合		PropertIEs pro = new PropertIEs();		pro.load(in);		ds = BasicdataSourceFactory.createDataSource(pro);		} catch (Exception e) {			e.printstacktrace();			throw new RuntimeException();		}	}		public static DataSource getDs(){		return ds;	}}



Test中的代码:

public class Test {	public static voID main(String[] args) throws Exception  {		Connection con = JDBCUtils.getDs().getConnection();		//使用连接		PreparedStatement ps = con.prepareStatement("select * from teacher");		ResultSet rs = ps.executequery();		while(rs.next()){			System.out.println(rs.getString(1) + "   " + rs.getString(2));		}		//关闭		rs.close();		ps.close();		//和以前不同		con.close();	}}

第二种方式:C3P0

C3P0使用流程:

导jar包使用C3P0创建对应的数据库连接对称
DataSource ds=new ComboPooledDataSource();
注意:
·虽然有配置文件,但是配置文件没有字节读取,c3p0会自动读取配置文件,此过程隐藏了;
·保存配置文件存在的路径在src中, 其实复制到bin目录下面了,真正读取是从bin目录下查找的;
·配置文件的文件名必须固定,即 c3p0-config.xml;
具体的连接对象使用与DBCP一样


编写的XML文件: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://127.0.0.1:3306/demobase</property>		<property name="user">root</property>		<property name="password">root</property>		<property name="checkoutTimeout">30000</property>		<property name="IDleConnectionTestPeriod">30</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>		<user-overrIDes user="test-user">			<property name="maxPoolSize">10</property>			<property name="minPoolSize">1</property>			<property name="maxStatements">0</property>		</user-overrIDes>	</default-config>


JDBCUtils中的代码:
public class JDBCUtils {	//1、读取配置信息	private static DataSource ds = new ComboPooledDataSource();	public static DataSource ds(){		return ds;	}}

Test中的代码:

public class Test {	public static voID main(String[] args) throws Exception {		Connection con = JDBCUtils.ds().getConnection();		//使用连接		PreparedStatement ps = con.prepareStatement("select * from teacher");		ResultSet rs = ps.executequery();		while(rs.next()){			System.out.println(rs.getString(1) + "   " + rs.getString(2));		}		//关闭		rs.close();		ps.close();		//和以前不同		con.close();	}}


总结

以上是内存溢出为你收集整理的数据库连接的两种实现方式(读取配置文件)——DBCP&C3P0;DBCP实现连接代码,C3P0实现连接代码——包含完整代码全部内容,希望文章能够帮你解决数据库连接的两种实现方式(读取配置文件)——DBCP&C3P0;DBCP实现连接代码,C3P0实现连接代码——包含完整代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1152248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存