*Web应用中如何在tomcat上配置数据连接池和使用结合struts;in server.xml*/
1)建立工程后首先在tomcat的server.xml的<Host/>标签中添加<Context/>如下所示:(如果是myEclipse IDE 请在tomcat\conf\用记事本打开
server.xml配置文件进行更改)
<Host>
<Context docBase="studentPro" path="/studentPro" reloadable="true" source="org.eclipse.jst.j2ee.server:studentPro">//这是固定模式docBase的值是工程名称
/*<Resource>配置dbcp要求的数值:driverClassName;name;auth;username;password;type;url这几项必须的*/
<Resource driverClassName="com.mysql.jdbc.Driver" auth="Container" maxActive="40" maxIdle="20" maxWait="5000" name="jdbc/student" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/teacher_studentdb" username="root" password="root"/>
</Context>
</Host>
//in web.xml配置如下代码
<resource-ref>
<description>datasource</description>
<res-ref-name>jdbc/student</res-ref-name>//与server.xml中的name属性值匹配即是jndi名称
<res-type>javax.sql.DataSource</res-type>//与server.xml中的type属性值匹配
<res-auth>Container</res-auth>//容器管理
/*提示:这四项是必须的而且不能颠倒顺序*/
</resource-ref>
/*以下代码演示如何查找jndi和如何获得链接*/
Context text=new javax.naming.InitialContext();
DataSource ds=null;
if(text!=null){
System.out.println("test is successed!!");
ds=(DataSource)text.lookup("java:comp/env/jdbc/student");
Connection sqlCon=null;
if(ds!=null){
System.out.println("DataSource is connected!!");
sqlCon=ds.getConnection();
if(!sqlCon.isClosed()){
System.out.print("连接 是open!!");
}
}
成功输出如下结果:test is successed!!
DataSource is connected!!
连接 是open!!
其他说明:5.5版本一定要把DriverClass的jar包copy到tomcat\common\lib之中;
获得的数据源一定是java.sql.DataSource类型;
server.xml和web.xml文件中的配置大小写敏感;
6.0要把DriverClass的jar驱动包copy到lib包下并且添加common-pool.jar common-dbcp.jar包到
lib目录下
/***在hibernate中如何使用DBCP***/
在hibernate.cfg.xml配置文件中添加标签<property name="connection.datasource">java:comp/env/jdbc/student</property>
重要说明:java:comp/env/jdbc/student 是有严格要求的:前半部必须是:java:comp/env/ 后半部 jdbc/student 是tomcat中jndi的名称
既是<Resource/>标签属性name的值(必须匹配)如果书写有误则抛出not find datasource 异常
请去掉利用jdbc的其他配置保留<property name="dialect">org.hibernate.dialect.....</property>标签 |