Tomcat6下配置數據源及使用

1.將數據庫驅動程序拷貝到tomcat/lib目錄下面,同時在MYSQL的數據庫test下建立表echo_message。

2..在tomcat根目錄的conf/catalina/localhost(對於Tomcat6及其以上版本,需要自己創建catalina和localhost這兩個目錄)下增加wind.xml文件(該文件名爲了更好的可讀性最好和下面的path="/xxx"的xxx相同)

3.該文件內容: 
------------------------------------------------
<Context path="/wind"
    docBase="E:/StartPortableApps/jspTest"
    debug="5"
    reloadable="true"
    crossContext="true">
<Resource name="jdbc/wind"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="5"
    maxIdle="2"
    maxWait="10000"
    username="root"
    password="wind"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/test"/>
</Context>
------------------------------------------------

說明:
     path="虛擬路徑" docBase="絕對路徑"。
     其中name 指定數據源在容器中的JNDI名。
     maxActive 指定數據源最大活動連接數。
     maxIdle 指定數據池中最大空閒連接數。
     maxWait 指定數據池中最大等待獲取連接的客戶端。
     username 指定連接數據庫的用戶名。
     password 指定連接數據庫的密碼。
     driverClassName 指定連接數據庫的驅動。
     url 指定數據庫服務的URL

問題:
*****爲什麼要不修改server.xml呢?*****
在Tomcat6的doc幫助文檔中,官方是不提倡修改server.xml來添加虛擬目錄的!因爲修改該文件可能引入額外的風險,例如導致Tomcat徹底崩潰。這樣做還有一個好處是非常方便於項目的移植。

4.在上面的docBase路徑(這裏是E:/StartPortableApps/jspTest)下創建index.jsp來測試數據源
------------------------------------------------
<%@ page language="java" pageEncoding="GB2312"%>
<%@ page import="java.sql.Connection"%>
<%@ page import="java.sql.ResultSet"%>
<%@ page import="java.sql.Statement"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="javax.sql.DataSource"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>index.jsp</title>
</head>

<body>
        <h2>測試數據源</h2>
    <%
        Context ctx = new InitialContext();
        
                // 通過JNDI查找數據源,該JNDI爲java:comp/env/jdbc/wind,分爲兩部分;
                // java:comp/env是Tomcat固定的,必需加的前綴;
                // jdbc/wind是定義數據源時的數據源名;
        DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/wind");
        
        Connection conn = ds.getConnection();
        Statement stmt = conn.createStatement();
        
        ResultSet rs = stmt.executeQuery("select * from echo_message");
        
        while(rs.next()) {
    %>
    <%=rs.getString(2)%><br>
    <%}
    %>
</body>
</html>

------------------------------------------------

注意:
Tomcat數據源的配置分爲兩種:
全局數據源:對所有的web應用都可以訪問。局部數據源:只能在某個web應用下訪問。
這裏是使用局部數據源。儘量不要使用全局數據源,因爲使用全局數據源會破壞Tomcat原有的配置文件,可能會破壞Tomcat系統。

4.啓動Tomcat,地址欄輸入http://localhost:8080/wind/index.jsp

 

http://www.blogjava.net/bluewind/articles/194919.html

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