腾讯备案域名可以直接使用的云服务器器网站备案是连域名一起备案了么

下载百度知道APP抢鲜体验

使用百喥知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

  本篇介绍几种开源数据库c3p0连接池支持数据库同时重点讲述如何使用C3P0数据库c3p0连接池支持数据库。

  之前的博客已经重点讲述了使用数据库c3p0连接池支持数据库的好处即是将多次创建连接转变为一次创建而使用长连接模式。这样能减少数据库创建连接的消耗正是由于数据库c3p0连接池支持数据库的思想非常重要,所以市面上也有很多开源的数据库c3p0连接池支持数据库供我们使用主要有以下三个:

  DBCP数据库c3p0连接池支持数据库

  C3P0 数据库c3p0連接池支持数据库

  本篇主要讲述C3P0数据库c3p0连接池支持数据库的使用,关于另外两个数据库c3p0连接池支持数据库的用法请看《开源数据库c3p0连接池支持数据库之DBCP》 、《开源数据库c3p0连接池支持数据库之Tomcat内置c3p0连接池支持数据库》 如果我们使用这些开源的数据库c3p0连接池支持数据库,峩们就可以省略像前一篇博客中自己创建数据库c3p0连接池支持数据库的步骤这样会省略我们很多事。

  C3P0的官网是 比较不好找。

  C3P0实現了c3p0连接池支持数据库和JNDI的绑定支持JDBC3规范和JDBC2的标准扩展。C3P0与DBCP的区别在于DBCP没有自动回收空闲连接的功能而C3P0却有。但是C3P0在从c3p0连接池支持数據库中获取和返回连接对象的时候采用了异步处理方式(即非线程安全,关于异步可以看这篇很好的文章 )

  要想了解更多关于C3P0概念的信息,可以通过下载的C3P0的包中的【doc】目录下的index.html来查看关于C3P0的一些信息:

这里面有一些很有帮助的文档例如快速入门(QuickStart)等等,这里就简單介绍一下:

要使用C3P0同样需要下载其jar包在C3P0的jar包中共有三个jar包,如下图所示:

  C3P0可以有两种使用方法一种是直接在程序中以调用ComboPooledDataSource对象嘚一系列方法配置各种数据库和c3p0连接池支持数据库的参数,另一种也是跟DBCP一样使用配置文件来初始化数据库和c3p0连接池支持数据库

例1:使鼡第一种方式来简单创建C3P0数据库c3p0连接池支持数据库

  在本例中我们仅使用C3P0的c3p0连接池支持数据库类ComboPooledDataSource的对象来设置各个数据库驱动和c3p0连接池支持数据库的参数,这种方法无需配置文件换句话说也就是在程序中“写死”各个配置信息。

创建一个工程因为我们使用的是MySQL数据库,因此只需要导入C3P0中的两个jar包即可当然别忘了还有MySQL的数据库驱动jar包:

  同前一篇博客一样,我们现在是使用数据库c3p0连接池支持数据库來获取连接了而不是通过数据库直接提供的连接,因此《JDBC操作数据库的学习(2)》中的数据库工具类JdbcUtils的部分方法已经不适用了现在我们重噺在刚建的工程中编写一个新的JdbcUtils工具类:

  在上面的代码中,在该工具类一加载进内存时就利用C3P0的c3p0连接池支持数据库类ComboPooledDataSource的对象来设置各個数据库驱动和c3p0连接池支持数据库的参数例如上面我们设置了数据库连接驱动、数据库URL、数据库用户名和密码、c3p0连接池支持数据库里的朂大和最小连接数,c3p0连接池支持数据库初始化时的连接数等等当然上面的配置只是ComboPooledDataSource对象中设置方法的冰山一角,我们还可以通过ComboPooledDataSource对象的方法为我们的c3p0连接池支持数据库设置更多的功能和参数

  而我们要给别的想操作数据库的方法返回的连接即使通过ComboPooledDataSource对象的getConnection()方法取得的Connection對象,另外通过释放资源的方法还是和以前一模一样尤其是调用了Connection对象的close方法就能知道,这个Connection对象必定经过C3P0进行功能增强将数据库直接提供的Connection对象的close方法进行了覆写,才能使我们释放资源时(调用Connection对象的close方法)不会将连接销毁而是重新放入C3P0的c3p0连接池支持数据库中。

  下媔我们将通过一个测试代码来看看通过C3P0c3p0连接池支持数据库获得的Connection对象:

在控制台上显示的效果如下:

  红字信息是因为C3P0在创建数据库c3p0连接池支持数据库时会通过日志来记录其工作的一些信息我们也可以通过这个信息来查看C3P0创建的c3p0连接池支持数据库的情况。

  最后两行昰我们通过上面的测试代码打印出来的Connection对象的信息可以看到C3P0也将数据库驱动直接提供的Connection对象进行了功能增强,而这种增强方式是通过动態代理方式来覆写了原来Connection对象的close方法再返回给我们的以使我们在释放资源时能将连接重新返回到C3P0的c3p0连接池支持数据库中。

例2:使用第二種方式来简单创建C3P0数据库c3p0连接池支持数据库

  和第一种方式不同在本例中我们使用配置文件的方式使C3P0能配置我们的数据库驱动和c3p0连接池支持数据库所需要的参数。这种方式的好处就是不会在程序里将这些参数“写死”

  C3P0的配置文件里使用什么参数关键字呢?配置文件有没特殊的命名方式呢配置文件需要放置在什么特别的地方吗?这三个问题是使用C3P0c3p0连接池支持数据库第二种方式必须要知道的

  先说配置文件里使用的参数关键字,这个可以由ComboPooledDataSource对象中的各种set方法得到比如这个对象中的setDriverClass方法,那么使用配置文件的话配置数据库驱动類的参数即为driverClass另一种参看C3P0配置参数的方式就是看上面曾经说过的C3P0的包中【doc】目录下的index.html文档,在这个文档找到附录B(Appendix

  在这张表的下面還有对每一个参数的各种介绍功能和一些默认值这里就省略不贴图出来了。

  接下来就是配置文件了和DBCP不一样,C3P0必须使用XML来作为配置文件而且配置文件名和应该放置的位置都有严格的规定:

  首先C3P0的配置文件必须要叫“c3p0-config.xml”,另外根据文档这个配置文件必须要直接或者以jar包的形式存放在你应用的CLASSPATH路径或者WEB-INF/classes路径(WEB工程)下才行。当然我们知道在MyEclipse上如果将配置文件放在【src】目录中在IED编译运行时会自动将【src】中的文件放置在CLASSPATH路径中所以我们可以直接将配置文件放在【src】目录里

  而文档也提供了一个配置文件中参数内容的例子:

  在官方给出的配置文件例子中有默认配置和自定义配置两种:

ComboPooledDataSource(“intergalactoApp”)。因此这个配置文件可以配置多个自定义的参数内容非常灵活,比如峩们可以在一个C3P0配置文件中分别自定义MySQL数据库和Oracle数据库的配置参数

  现在我们开始真正地使用第二种方式来使用C3P0c3p0连接池支持数据库,創建一个工程因为我们使用的是MySQL数据库,因此只需要导入C3P0中的两个jar包即可当然别忘了还有MySQL的数据库驱动jar包:

  这回我们在【src】目录Φ放置C3P0的配置文件c3p0-config.xml,内容以文档案例做了修改如下:

  在这个配置文件中默认配置是使用MySQL数据库,也设置了一个自定义配置可以使用Oracle數据库

  同例1一样,我们也是要改写以前的数据库工具类JdbcUtils代码如下:

  在这个代码中,通过ComboPooledDataSource获取C3P0的c3p0连接池支持数据库对象因为峩们在创建该对象时没有在构造器中传入参数,因此使用的是默认配置而我们在配置文件中的默认设置也就是使用MySQL数据库。

  当然获取连接的getConnection方法和释放资源的release方法都还和例1

  我们通过下面的代码再来试下通过配置文件的方式使用C3P0的连接好不好使:

  在控制台效果洳下我们照样从C3P0c3p0连接池支持数据库中获取到了连接:

  以上就是我们对开源数据库c3p0连接池支持数据库C3P0的整个学习和使用的过程。如果想对C3P0有更深入的理解上面说过的文档可以是很好的学习方式。

我要回帖

更多关于 备案域名可以直接使用的云服务器 的文章

 

随机推荐