首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【转】java数据源的几种配备

2012-08-26 
【转】java数据源的几种配置几种常用的Java数据源解决方案Java中的数据源就是javax.sql.DataSource。DataSour

【转】java数据源的几种配置

几种常用的Java数据源解决方案

Java中的数据源就是javax.sql.DataSource。DataSource的创建可以有不同的实现。

JNDI方式创建DataSource

????以JNDI方式创建数据源首先要配置数据源的相关连接信息,也就是数据源连接池。该配置应该在Tomcat安装目录下的conf/context.xml文件中配置。其配置如下:

??? <Context>

……

???<!-- MySql -->

???<Resource name="jdbc/NutzDemo" auth="Container"

?????????? type="javax.sql.DataSource"maxActive="100" maxIdle="30"

?????????? maxWait="10000"username="root" password="root"

?????????? driverClassName="com.mysql.jdbc.Driver"

?????????? url="jdbc:mysql://localhost:3306/cheng"/>

????……

</Context>

然后,在程序中以JNDI的方式创建数据源,得到数据库连接已进行相应的操作。代码如下:

????//?初始化JNDI上下文,创建DataSource对象

??? Context initContext =?new?InitialContext();

??? Context context = (Context)initContext.lookup("java:comp/env");

?????????? DataSourcedataSource =? (DataSource)context.lookup("jdbc/NutzDemo");

?

?

Apache提供的简单连接池创建数据源

以这种方式创建数据源必须先准备两个jar文件:commons-dbcp.jar?和?commons-pool.jar。

以这种方式创建的数据源就不再是javax.sql.DataSource。DataSource了,而是org.apache.commons.dbcp.BasicDataSource。而且不再需要配置任何文件就可以直接使用。代码如下:

//?创建BasicDataSource对象

??? BasicDataSource ds =?new?BasicDataSource();

??? ds.setDriverClassName("com.mysql.jdbc.Driver");

??? ds.setUrl("jdbc:mysql://localhost:3306/cheng");

??? ds.setUsername("root");

??? ds.setPassword("root");

??? ds.setInitialSize(50);

??? ds.setMaxActive(100);

??? ds.setMaxIdle(30);

??? ds.setMaxWait(10000);

???

????//?关闭数据源连接

ds.close();

?

C3P0方式创建数据源

????使用C3P0方式创建数据源应该首先准备一个jar文件:c3p0-0.9.1.2.jar,将其放到web/lib目录下,就可以在项目中使用C3P0创建数据源,C3P0创建的数据源对象也不是DataSource对象,而是ComboPooledDataSource,代码如下:

??? //?创建ComboPooledDataSource对象

??? ComboPooledDataSource ds =?new?ComboPooledDataSource();

??? ds.setDriverClass("com.mysql.jdbc.Driver");

??? ds.setJdbcUrl("jdbc:mysql://localhost:3306/cheng");

??? ds.setUser("root");

??? ds.setPassword("root");

??? ds.setInitialPoolSize(50);

??? ds.setMaxPoolSize(100);

??? ds.setMaxIdleTime(10000);

?

Proxool方式创建数据源

????应该准备的jar文件为:proxool-01.9.0RC3.jar,之后在项目中创建ProxoolDataSource对象,其代码如下:

??? //?创建ProxoolDataSource对象

??? ProxoolDataSource ds =?new?ProxoolDataSource();

??? ds.setDriver("com.mysql.jdbc.Driver");

??? ds.setDriverUrl("jdbc:mysql://localhost:3306/cheng");

??? ds.setUser("root");

??? ds.setPassword("root");

?

BoneCP方式创建数据源

??? BoneCP是一个快速高效,开源免费的Java数据库接池。

创作者称,BoneCP在性能上会完全超越所有主流的Java连接池。它可以帮你管理数据连接,让你的应用程序能更快速地访问数据库。比C3P0/DBCP(DataBaseconnection pool,数据库连接池)连接池快25倍。这个数据库连接池采用Google Collection作为内部的集合类框架,而且现在的版本已经很稳定。

要使用BoneCP,必须用到的jar文件有:

·?bonecp-0.6.5.jar

·?google-collections-1.0.jar

·?slf4j-api-1.5.11.jar

·?slf4j-log4j12-1.5.11.jar

·log4j-1.2.15.jar

在程序中创建BoneCPDataSource对象,代码如下:

//?创建BoneCPDataSource对象

??? BoneCPDataSource ds =?new?BoneCPDataSource();

??? ds.setDriverClass("com.mysql.jdbc.Driver");

??? ds.setJdbcUrl("jdbc:mysql://localhost:3306/cheng");

??? ds.setUsername("root");

??? ds.setPassword("root");

??? ds.setAcquireIncrement(1);

??? ds.setAcquireRetryDelay(10000);

??? ds.setIdleConnectionTestPeriod(100);

ds.setMinConnectionsPerPartition(2);

??? ds.setMaxConnectionsPerPartition(20);

ds.setPartitionCount(2);

?

?

转自:http://www.cnblogs.com/yl2755/archive/2012/05/06/2486760.html

热点排行