第一种方式: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; }}
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>
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实现连接代码——包含完整代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)