首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Tomcat 6.0 JNDI 數據源配置全攻略:從 context.xml 到 JSP 測試

     編輯:Java 相關知識

配置目標

在 Tomcat 6.0 中配置 JNDI 數據源,實現應用與數據庫連接解耦,便於環境遷移。

項目結構

專案結構

步驟 1:修改 Tomcat 全局 context.xml

路徑:$CATALINA_HOME/conf/context.xml

<?xml version='1.0' encoding='utf-8'?>
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <!-- 數據源定義 -->
    <Resource name="jdbc/mysqldb"
              auth="Container"
              type="javax.sql.DataSource"
              driverClassName="com.mysql.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/test"
              username="root"
              password="123456"
              maxActive="4"
              maxIdle="2"
              maxWait="-1" />
    <ResourceLink global="mysqldb" name="mysqldb" type="javax.sql.DataSource"/>
</Context>

參數解析:
• name:JNDI 名稱,應用查找用
• maxActive:最大活躍連接數,0=無限
• maxIdle:最大空閒連接數
• maxWait:獲取連接最大等待毫秒數,-1=無限等待

步驟 2:創建連接工具類

package com.shyy.jndi;

import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class ConnectionPool {
    private static Connection conn;

    public static Connection getConn() {
        try {
            Context ctx = new InitialContext();
            DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysqldb");
            conn = ds.getConnection();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
}

步驟 3:web.xml 可選配置

作者測試無需配置也可運行,但規範建議聲明資源引用:

<resource-ref>
    <description>DB Connection test</description>
    <res-ref-name>jdbc/mysqldb</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

步驟 4:JSP 測試頁面

<%@ page import="com.shyy.jndi.ConnectionPool,java.sql.*" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<html><body>
<%
    ConnectionPool cp = new ConnectionPool();
    Connection conn = cp.getConn();
    if (conn != null) {
        out.println("數據庫連接狀態:<b>OK</b><hr/>");
        PreparedStatement ps = conn.prepareStatement("SELECT * FROM USER_INFO");
        ResultSet rs = ps.executeQuery();
        while (rs.next()) {
            out.println("<b>id:</b>" + rs.getInt("ID") + "<br/>");
            out.println("<b>姓名:</b>" + rs.getString("NAME") + "<br/>");
            out.println("<b>性別:</b>" + rs.getString("SEX") + "<br/>");
            out.println("<b>手機:</b>" + rs.getString("TELPHONE") + "<hr/>");
        }
    } else {
        out.println("數據庫連接狀態:NO");
    }
%>
</body></html>

步驟 5:啟動測試

測試成功截圖

關鍵注意點

  • MySQL 驅動包 mysql-connector-java.jar 必須放在 Tomcat lib 目錄
  • JNDI 名稱統一:java:comp/env/jdbc/mysqldb(代碼中)對應 jdbc/mysqldb(context.xml 中)
  • Tomcat 7/8/9 配置類似,context.xml 位置可能不同
  • 生產環境建議用獨立數據源配置文件,不修改全局 context.xml

按步驟操作,JNDI 配置不再是難題!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved