使用版本为Eclipse3.3.0 Tomcat5.5.23 MySQL5.0.41
第一步:需要把mysql-connector-java-5.0.6-bin.jar这个文件拷贝到$Tomcat_ROOT$/common/lib目录下面
第二步:配置web.xml文件
如果以前没有配置过数据库,则需要在项目的web.xml中添加代码(可以检查是否有该段代码,没有则要添加)
<resource-ref>
<description>Test Connection</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
第三步:配置server.xml文件
在Eclipse中的工作空间(Workspace)中配置的Tomcat服务器下的server.xml文件中的<host>和</host>之间添加代码
<Context path="/iBook" docBase="iBook" debug="0" reloadable="true" crossContext="true" source="org.eclipse.jst.j2ee.server:iBook">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_quality_log." suffix=".txt" timestamp="true"/>
<Resource
name="jdbc/test"
type="javax.sql.DataSource"
password="yingfei"
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/db_iBook"
maxActive="4"/>
<ResourceParams name="jdbc/db_iBook">
<parameter>
<name>removeAbandoned</name><!-- Abandoned DB connections are removed and recycled -->
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name><!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name><!-- Log a stack trace of the code which abandoned -->
<value>false</value>
</parameter>
<parameter>
<name>factory</name><!--DBCP Basic Datasource Factory -->
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
</ResourceParams>
</Context>
第四步:编写获取数据库连接的代码
try {
Context initCtx=new InitialContext();
Context ctx=(Context)initCtx.lookup("java:comp/env");
Object obj=ctx.lookup("jdbc/test");
javax.sql.DataSource ds=(javax.sql.DataSource)obj;
this.conn=ds.getConnection();
}catch(SQLException e) {
e.printStackTrace();
}catch(NamingException e) {
e.printStackTrace();
}
这样就可以了。
我曾经碰到的两个问题:
第一个问题:Cannot create JDBC driver of class '' for connect URL 'null'
这可能是因为上面红色字体的文字没有写成一致,网上有些人server.xml中写成jdbc/mysql,而查找时又写成jdbc/dbname,dbname为数据库名。实际这个是一个名称,可以随便写,但是要保证两边一致。
第二个问题:Cannot load JDBC driver class 'com.mysql.jdbc.Driver'
这可能是因为上面的第一个步骤没有做,导致Tomcat找不到驱动程序。