我已经成功配置了,各位高手可能有其他的配置方案或者步骤,比我的简洁、有效;我这只是个简单的演示,希望大家发现问题后能给我指点一下哈~我的邮件:patriotlml@gmail.com
我用的是mysql5.0+tomcat5.5XX,步骤如下:
第一:下载MySQL的JDBC驱动,拷贝至TOMCATHOME/common/lib/目录下第二:配置Tomcat数据源(注意:tomcat5和tomcat5.5数据源配置是有差异的,此处为5.5的)修改TOMCAT_HOME/conf/server.xml,在</Host>前加上:
<Context path="/yourapp" docBase="yourapp"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/yourresourcename" auth="Container"
type="javax.sql.DataSource" password="admin"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/yourdatabase?autoReconnect=true"
maxActive="4"/>
</Context>
注意,在每个web应用中都要在server.xml中定义此webapp的Resource.
其中各项的意义见附注。
第三:声明你的资源引用
这里我们为JDBC数据源建立的JNDI资源名为“jdbc/exam”,需要在web应用部署描述文件web.xml中 添加资源声明:
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
</description>
<res-ref-name>
jdbc/exam
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
第四:使用
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/exam");
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();//这里并不是真正的关闭,而是释放到数据库连接池中
注意:Tomcat5.5不支持ConnectionPoolDataSource接口。
第五: 参考
* http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
附注如下:
Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
* password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。
本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2007/08/28/873083.html如需转载请自行联系原作者
kenty