jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化's Archiver

hanmin888 發表於 2010-9-10 23:31

TOMCAT 6 上設定 JNDI 連接池 使用mySQL

在tomcat 6 下設定跟以往不同
其中最重要的一個點 就是 context.xml
這個設定在以往, 它是放在 server.xml 這個檔裡的 <HOST> </HOST> 裡面
但在tomcat6, 這個設定被獨立出來, context.xml
它的內容就跟以前一樣

紅色字的部分就是設定JNDI , 如果你是使用mySQL[code]<?xml version='1.0' encoding='utf-8'?>
<Context path="" reloadable="true" docBase="D:\Tomcat\webapps\myWeb" workDir="D:\Tomcat\webapps\myWeb\WEB-INF\work >


     <WatchedResource>WEB-INF/web.xml</WatchedResource>
   
     <Resource name="jdbc/db" auth="Container" type="javax.sql.DataSource"
               maxActive="5" maxIdle="1" maxWait="10000"
               username="帳號" password="密碼" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/db?autoReconnect=true" />
   
</Context>[/code]接下來,設定web.xml
你可以直接去設定在Tomcat\conf\web.xml[code]<web-app>
    ...........

  <resource-ref>
    <description>JNDI JDBC DataSource of DBWatch</description>
    <res-ref-name>jdbc/db</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
...........

</web-app>[/code]如此,JNDI就設定完成了.

接下來就測試看看~寫一隻jsp[code]<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page language="java" contentType="text/html;charset=Big5" %>
<%
Connection con=null;
try
    {     
        Context initContext = new InitialContext();
        Context envContext  = (Context)initContext.lookup("java:/comp/env");
        DataSource ds = (DataSource)envContext.lookup("jdbc/db");
        con = ds.getConnection();
        
   
        if(!con.isClosed()){
            out.println("與db有連線!!\n");
        }
        
   
    }  
    catch(SQLException sqle)
    {
        out.println("sqle="+sqle);  
    }
    finally
    {
        con.close();
        con=null;
    }
%>[/code]

頁: [1]

Powered by Discuz! Archiver  © 2001-2009 Comsenz Inc.