四种连接数据库的方式

上传人:d**** 文档编号:108059017 上传时间:2022-06-15 格式:DOCX 页数:7 大小:16.21KB
收藏 版权申诉 举报 下载
四种连接数据库的方式_第1页
第1页 / 共7页
四种连接数据库的方式_第2页
第2页 / 共7页
四种连接数据库的方式_第3页
第3页 / 共7页
资源描述:

《四种连接数据库的方式》由会员分享,可在线阅读,更多相关《四种连接数据库的方式(7页珍藏版)》请在装配图网上搜索。

1、四种连接数据库的方法(DriverManager、DataSource子类、DBCP、c3p0)2010-04-0720:58:40|分类:JAVA基础|字号订阅一、环境1、数据库驱动jar文件2、DBCP方法Commons-dbcp.jar:连接池的实现Commons-pool.jar:连接池实现的依赖库资源文件3、c3p0方法:c3p0-0.9.1.2.jar配置文件:c3p0-config.xml二、连接操作1. DriverManager方法;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQ

2、LException;publicclassDBConnectionprivatestaticStringdriverClass=com.mysql.jdbc.DriverprivatestaticStringurl=jdbc:mysql:/localhost:3306/test;privatestaticStringusername=root;privatestaticStringpassword=123456;privatestaticConnectionconn=null;statictry/注册驱动/不要把conn=DriverManager.getConnection(url,use

3、rname,password);放在这里。防止所有用户都用一个ConnectionClass.forName(driverClass);catch(Exceptione)thrownewRuntimeException(e);publicstaticConnectiongetConnection()throwsSQLExceptionconn=DriverManager.getConnection(url,username,password);returnconn;使用DataSource子类方法;资源文件DBConnection.propertiesdriverClass=com.mysql

4、.jdbc.Driverurl=jdbc:mysql:localhost:3306/testusername=rootpassword=123456模拟数据连接池DataSourcePool.javapackagecn.langzi.jdbc.DataSource;importjava.ionputStream;importjava.io.PrintWriter;importjava.Iang.reflect.InvocationHandler;importjava.Iang.reflect.Method;importjava.Iang.reflect.Proxy;importjava.sql

5、.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;importjava.util.LinkedList;importjava.util.Properties;importjavax.sql.DataSource;importjavax.sql.DataSource;publicclassDataSourcePoolimplementsDataSourceprivatestaticStringurl=nullprivatestaticStringusername=null;privatestaticStrin

6、gpassword=null;privatestaticintsize=10;privatestaticLinkedListlist=newLinkedList();statictryInputStreamin=DataSourcePool.class.getClassLoader().getResourceAsStream(”cn/langzi/jdbc/DataSource/DBConnection.properties);Propertiesprop=newProperties();prop.load(in);Class.forName(prop.getProperty(driverCl

7、ass);url=prop.getProperty(”url);username=prop.getProperty(username);password=prop.getProperty(password);catch(Exceptione)thrownewExceptionlnlnitializerError(e);privatestaticDataSourcePoolpool=newDataSourcePool();/创建对象就初始化size个数据库连接privateDataSourcePool()for(inti=0;i0)/取到连接,即从list中弹出一个Connection连接fin

8、alConnectionconn=list.pop();/动态代理,返回一个代理对象return(Connection)Proxy.newProxyInstance(DataSourcePool.class.getClassLoade(),conn.getClass().getlnterfaces(),newlnvocationHandler()publicObjectinvoke(Objectproxy,Methodmethod,Objectargs)throwsThrowable/如果Connection调用的是close方法就将连接返回给数据连接池if(method.getName().

9、equals(”close)list.push(conn);returnnull;returnmethodnvoke(conn,args););/连接用完thrownewRuntimeException(”对不起,服务器繁忙!);OverridepublicConnectiongetConnection(Stringusername,Stringpassword)throwsSQLException/TODOAuto-generatedmethodstubreturnnull;OverridepublicPrintWritergetLogWriter()throwsSQLException/T

10、ODOAuto-generatedmethodstubreturnnull;OverridepublicintgetLoginTimeout()throwsSQLException/TODOAuto-generatedmethodstubreturn0;OverridepublicvoidsetLogWriter(PrintWriterout)throwsSQLException/TODOAuto-generatedmethodstubOverridepublicvoidsetLoginTimeout(intseconds)throwsSQLException/TODOAuto-generat

11、edmethodstubOverridepublicbooleanisWrapperFor(Classiface)throwsSQLException/TODOAuto-generatedmethodstubreturnfalse;OverridepublicTunwrap(Classiface)throwsSQLException/TODOAuto-generatedmethodstubreturnnull;packagecn.langzi.jdbc.DataSource;importjava.sql.Connection;importjava.sql.SQLException;public

12、classDBConnectionpublicstaticConnectiongetConnection()throwsSQLExceptionConnectionconn=DataSourcePool.getlnstance().getConnection();returnconn;DBCPJ法:资源文件:dbcpconfig.propertiesdriverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql:localhost:3306/testusername=rootpassword=123456initialSize=10maxActive=5

13、0maxldle=20minldle=5maxWait=60000连接数据库:packagecn.langzi.jdbc.DBCP;importjava.io.10Exception;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.SQLException;importjava.util.Properties;importjavax.sql.DataSource;mons.dbcp.BasicDataSourceFactory;publicclassDBConnectionprivatestaticDataS

14、ourcedataSource=null;statictry/获取资源文件InputStreamin=cn/langzi/jdDBConnection.class.getClassLoader().getResourceAsStream(”bc/DBCP/dbcpconfig.properties);Propertiesproperties=newProperties();/加载资源文件properties.load(in);/建立数据工厂BasicDataSourceFactorydataSourceFactory=newBasicDataSourceFactory();dataSource

15、=dataSourceFactory.createDataSource(properties);catch(Exceptione)/TODOAuto-generatedcatchblocke.printStackTrace();publicstaticConnectiongetConnection()throwsSQLExceptionreturndataSource.getConnection();c3p0方法:配置文件:c3p0-config.xmlv?xmlversion=1.0encoding=UTF-8?com.mysql.jdbc.Driverjdbc:mysql:localhos

16、t:3306/testroot123456510102005vuser-overridesuser=master-of-the-universevpropertyname=acquireIncrement1vpropertyname=initialPoolSize11550连接数据库:packagecnangzi.jdbc.c3p0;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.sql.DataSource;importcom.mchange.v2.c3p0.ComboPooledDataSource;publicclassDbConnectionprivatestaticDataSourcedataSource;staticdataSource=newComboPooledDataSource(”userApp);publicstaticConnectiongetConnectioon()throwsSQLExceptionreturndataSource.getConnection();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!