能简单给我个 配置池的例子吗?容易懂的!先谢了!
解决方案 »
- Structs问题
- java中用Ganymed实现SCP 和SFTP文件传输
- 求助!关于java中web service的开发与调用
- 高分求Struts2国际化程序
- 有没有好的j2ee的QQ群推荐一下
- 对云网OA v2.1有研究或二次开发……的进来讨论,留个言也行……
- 研究各大公司(SUN,微软,IBM,HP)身份验证和单点登录(SSO)系统得群,希望有兴趣得人都来研究一下!qq群号码:9993425
- 求助:如何用Corba客户端(java代码)访问EJB?(50分求助)
- 求struts的思路?
- mybatis select count('id')查询效率很慢.
- struts2+spring+hibernate分级配置
- 那位做过贝宝的API接口跟小弟交流下!!
C3PO 连接池是一个优秀的连接池,推荐使用。C3PO实现了JDBC3.0规范的部分功能,因而性能更加突出。
需要的jar包: c3po0.902.jar
主要接口与类:
com.mchange.v2.c3p0.ComboPooledDataSource;
代码:
private static ComboPooledDataSource cdatasource =new ComboPooledDataSource(); //取得数据库对象
public Connection getconn() {
Connection conn = null;
try {
cdatasource.setDriverClass("sun.jdbc.odbc.JdbcOdbcDriver");
cdatasource.setJdbcUrl("jdbc:odbc:accp");
cdatasource.setUser("sa");
cdatasource.setPassword("sa");
cdatasource.setMaxPoolSize(4);
cdatasource.setMaxIdleTime(500);
cdatasource.setMinPoolSize(2);
conn = cdatasource.getConnection();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("取得数据库连接错误!");
}
return conn;
}
<!-- Context节点的path属性就是你的WebApp服务名,与上面同。
例如:http://localhost:8080/YouWeb/index.jsp 这个是访问你网站的URL,那么你的path就是: /YouWeb
-->
私有数据库连接池(Host节点里面)
<Context path="/YouWeb" docBase="F:\workspace\tea_forum\WebRoot">
<Resource
name="jdbc/sqlserver"
type="javax.sql.DataSource"
driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
maxIdle="2"
maxWait="5000"
username="sa"
password="sa"
url="jdbc:odbc:accp"
maxActive="4"/>
</Context>
公有数据库连接池
配置公有数据库连接池(GlobalNamingResources节点里面)
<Resource
name="jdbc/mssql"
type="javax.sql.DataSource"
driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
maxIdle="2"
maxWait="5000"
username="sa"
password="sa"
url="jdbc:odbc:accp"
maxActive="4"/> 引用公有数据库连接池(Host节点里面)
<Context path="/testjndi1" docBase="F:\workspace\testpool\WebRoot" >
<ResourceLink name="jdbc/mssql" global="jdbc/mssql" type="javax.sql.DataSource"/>
</Context>
<Context path="/testjndi2" docBase="F:\workspace\testpool2\WebRoot">
<ResourceLink name="jdbc/sqlserver" global="jdbc/mssql" type="javax.sql.DataSource"/>
</Context>解释一下:
1.path是指定访问该web应用的URL入口;
2.docBase指定web应用的文件路径,可以是绝对路径,也可以是相对于Host的appBase属性的相对路径;
3.type是指数据源类型
4.maxActive是DBCP中处于活动状态的数据库连接的最大数目,取0表示不受限制
5.maxIdle是DBCP中处于空闲状态的数据库连接的最大数目,取0表示不受限制
6.maxWait是是DBCP中的数据库连接处于空闲状态的最长时间(以毫秒为单位)取0表示无限期等待
7.username是数据库登陆名
8.password是数据库登陆口令
9.driverClassName是只定数据库的jdbc驱动程序
10.url是指定连接数据库的URL,testDBCP是我的数据库名。2、在你的项目工程目录WEB-INf\web.xml中配置如下信息:
<!--注意:res-ref-name节点里的名字要与上面的Resource节点里的name要一致。名字可以任意取,但一定要一致。-->
<resource-ref>
<res-ref-name>jdbc/sqlserver</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3、最后,在你和程序中使用如下代码即可取得连接:
InitialContext ctx = new InitialContext();
//这里的java:comp/env是前缀,java语言规范,后面跟的是你Web.xml文件中res-ref-name 节点中的名字。
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/server");
Connection conn = ds.getConnection();
<!-- 配置数据库连dbcp接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" lazy-init="false">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<property name="url"><value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pcp;SelectMethod=cursor</value></property>
<property name="username" value="sa" />
<property name="password" value="aaa" />
<property name="maxActive">
<value>100</value>
</property>
<property name="maxIdle">
<value>30</value>
</property>
<property name="maxWait">
<value>1000</value>
</property>
<property name="defaultAutoCommit">
<value>true</value>
</property>
<property name="removeAbandoned">
<value>true</value>
</property>
<property name="removeAbandonedTimeout">
<value>60</value>
</property>
<property name="logAbandoned">
<value>true</value>
</property>
<property name="initialSize">
<value>2</value>
</property>
</bean>
Name jdbc is not bound in this Context
或者 Cannot create JDBC driver of class '' for connect URL 'null'等等
我把我用Tomcat6和Mysql5.17配置数据源的步骤写出来,大家可以参考一下
1. 下载mysql-connector-java-5.1.7-bin.jar,放到Tomcat安装目录下的lib文件夹下;
2. 在你的项目下的META-INF文件夹下(如果没有就创建一个,跟WEB-INF文件夹同级)创建一个context.xml文件;
内容如下 1. <?xml version="1.0" encoding="UTF-8"?>
2. <Context>
3. <Resource name="jdbc/datasource_name" auth="Container"
4. type="javax.sql.DataSource" username="root" password="xxxxxxx"
5. driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/database_name"
6. maxActive="8" maxIdle="4"
7. testOnBorrow="true"
8. validationQuery="select 1"
9. timeBetweenEvictionRunsMillis="30000"
10. />
11. </Context>3. 替换以上的datasource_name为你的数据源名字, database_name为你的数据库名字, password也改成你的
4. 在你的Java代码里验证是否成功
1. InitialContext initContext = new InitialContext();
2. DataSource ds = (DataSource)initContext.lookup("java:comp/env/jdbc/datasource_name");
3.
4. Connection conn = ds.getConnection();
5.
6. Statement ps = conn.createStatement();
7. ResultSet rs = ps.executeQuery("select * from table_name");
8. while(rs.next())
9. {
10. System.out.println(rs.getString(2));
11. } 5.应该可以看到输出的信息了
进入控制台(console) 可以看到该界面 ,然后点击 Connetion Pools
点击后进入该界面,点击configure a new JDBC Conneciton Pool
点击后显示该界面 因为是使用SQL-SERVER 2000 所以选择MS SQL Server
选择后,选择 MicroSoft’s MS SQL Server Driver (type) Version [倒数第三个^-^]然后点击Continue
按页面要求填入相关信息
此步骤完成后,进入该页面
点击 Test Driver Configuration ,如果是成功显示该页
点击Create and deploy,