Tomcat5.0得mysql數據源

  
今天搞了很久,終於把Tomcat5.0得mysql數據源配置成功了。
最初總是出現“Cannot create JDBC driver of class '' for connect URL 'null', cause: No suitable driver”的錯誤。
現在將我的配置成功的心得體會寫下來。
1. 先下載mysql的jdbc驅動程序,我用的是mysql-connector-java-5.0.3-bin.jar,將其放在%Tomcat_Home%common/lib目錄下。因爲這樣配置的數據源需要tomcat服務器去利用jdbc的驅動連接數據庫,所以,只有將其放在lib下,服務器啓動時就能加載這個jar文件了。
2. 我用Myeclipse建立一個項目(例如項目名叫DataSource),然後發佈到tomcat服務器上,這樣就在%Tomcat_Home%conf/Catalina/localhost建立一個DataSource.xml文件。這應該時這個項目在服務器上的上下文環境吧。我們的數據源就在這裏面進行配置了。
3. 這個DataSource.xml文件的內容爲:
 
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:/Tomcat 5.0/webapps/DataSource" path="/DataSource" workDir="work/Catalina/localhost/DataSource">
 <Resource auth="Container" name="jdbc/datasource" type="javax.sql.DataSource"/>
 
 <ResourceLink name="jdbc/datasource" global="jdbc/datasource" type="javax.sql.DataSource" />             //實際用這一個
<Resource name=” jdbc/datasource” type="javax.sql.DataSource" /> //這句我用上面這個代替了
 <ResourceParams name="jdbc/datasource">
      <parameter>
        <name>maxWait</name>
        <value>-1</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>200</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>root</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:mysql://localhost:3306/archives?autoReconnect=true</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>com.mysql.jdbc.Driver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>0</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>root</value>
      </parameter>
    </ResourceParams>
 
</Context>
4. 不過最開始,我是在Tomcat Administration裏面進行的數據源配置的,可是這樣tomcat就在%Tomcat_Home%conf/Catalina/localhost/server.xml裏面添加了上面紅色的部分,將其拷貝到%Tomcat_Home%conf/Catalina/localhost/DataSource.xml中,如上所示。並將<Resource name=” jdbc/datasource” type="javax.sql.DataSource" /> 換成<ResourceLink name="jdbc/datasource" global="jdbc/datasource" type="javax.sql.DataSource" />就可以了。
5. 最後在你項目的web.xml中添加如下:
<resource-ref>
       <res-ref-name>jdbc/datasource</res-ref-name>
       <res-type>javax.sql.DataSource</res-type>
       <res-auth>Container</res-auth>
    </resource-ref>
6. 下面寫個jsp進行測試吧
<%@ page import="java.io.*,java.util.*,java.sql.*,javax.sql.*,javax.naming.*"%>
<%@ page contentType="text/html;charset=GB2312"%>
<html>
<head><title>DataSourse Connection Test</title></head>
<body>
<%
try{
Statement stmt;
ResultSet rs; 
javax.naming.Context ctx
=new javax.naming.InitialContext();
javax.sql.DataSource ds
= (javax.sql.DataSource)ctx.lookup ("java:comp/env/jdbc/datasource"); 
java.sql.Connection con
=ds.getConnection(); 
stmt
=con.createStatement();
rs
=stmt.executeQuery("select * from user");
while(rs.next()){ 
out.print(rs.getInt(
1));
out.print(rs.getString(
2));
}
rs.close();
stmt.close();
con.close();
 
}catch(Exception e){
out.print(e.getMessage());
}
%>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章