Tomcat6配置數據源:Cannot create JDBC driver of class '' for connect URL 'null'解決方案

在使用Eclipse+Lomboz+Tomcat6開發 Java Web的時候,如果要訪問如mysql 數據庫,可以使用tomcat自帶的數據源緩衝池。方法如下:

1、在使用mysql數據庫的時候,如同使用jdbc連接數據庫一樣,mysql的驅動jar包是一定需要的,可以放在tomcat安裝目錄的lib目錄下,必要的話,還要想設置java的jdk一樣,設置環境變量,是CATALINA =tomcat的安裝目錄。將mysql的jar包放在%CATALINA_HOME%/lib的目錄下;

2、配置tomcat/conf/server.xml文件,

<GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase"
      auth="Container"
      type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
       factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
       pathname="conf/tomcat-users.xml" />
      
   
<Resource name="jdbc/mysqls"
     type="javax.sql.DataSource"
     password="zhou"
     driverClassName="com.mysql.jdbc.Driver"
     maxIdle="30"
     maxWait="10000"
     username="root"
     url="jdbc:mysql://localhost:3306/dbdemo"
     maxActive="100"/>
     
  </GlobalNamingResources>

<ContextdocBase="guestbook" path="/guestbook5"reloadable="true"source="org.eclipse.jst.jee.server:guestbook">

      <ResourceLink

              name="jdbc/mysqls"

              type="javax.sql.DataSource"

              global="jdbc/mysqls"/>

</Context>

其中紅色是新加入的。

並且最好是將該server.xml文件拷貝一份放在\conf\Catalina\localhost目錄下,很關鍵,我就是因爲這一步沒弄,耽誤了很多時間。

 

3、在當前項目中,找到web.xml文件,添加

 <resource-ref>
    <res-ref-name>jdbc/mysqls</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

 

4、附上檢驗代碼:

1<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%>
2<%@ pageimport="java.sql.*,javax.sql.*,javax.naming.*"%>
3
4<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN">

5<html>
6   <head>
7       <title>My JSP'index.jsp' starting page</title>
8   </head>
9
10   <body>

11           <%
12                Context initCtx=null;
13               final String JNDINAME= "java:comp/env/jdbc/MySQL";//java:comp/env/是固定的,jdbc/MySQL則是我們配置的JNDI名稱

14                Connection conn=null;
15               try
{
16                    initCtx=new
InitialContext();
17                    DataSource ds=
(DataSource) initCtx.lookup(JNDINAME);
18                    conn=
ds.getConnection();
19                    out.println("數據連接爲:"+
conn);
20                }
catch (NamingException e){
21
                    e.printStackTrace();
22                }
catch (SQLException e){
23
                    e.printStackTrace();
24                }
finally{
25                   if (conn != null)
{
26                       try
{
27
                            conn.close();
28                        }
catch (SQLException e){
29
                            e.printStackTrace();
30                        }

31                    }

32                }

33           %>
34       <br>
35   </body>
36</html>
37若成功,則輸出:

數據連接爲:jdbc:mysql://localhost:3306/test?autoReconnect=true, UserName=root@localhost, MySQL-AB JDBC Driver

 

 

 

 


 

發佈了32 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章