Tomcat 5.0 也可以使用JNDI,不過,其設定檔的格式以及放置的位置跟Tomcat 5.5版不一樣..
1. 請在webapps/{您的web app名稱}/META-INF/ 新增一個context.xml的檔案.
2. 在context.xml新增以下的內容
<Context path="/test" docBase="test" debug="5" reloadable="true">
<Resource name="jdbc/MySQL" auth="Container" type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
username="root" password="root"
maxActive="20" maxIdle="10" maxWait="-1" />
</Context>
Ps.我先假設您的Wep App 的名稱為test,你的MySQL的root密碼為root,連接到Test這個資料庫,您應該視您本身的情況而改上述的設定.
3. 重新啟動Tomcat 5.5.9
4. Sample Code
index.jsp<%@page import="java.util.*,javax.naming.*,java.sql.*,javax.sql.*" %>
<%@page contentType="text/html;charset=BIG5"%>
<%
Context ctx = new InitialContext();
String strLookup = "java:comp/env/jdbc/MySQL";
DataSource ds =(DataSource) ctx.lookup(strLookup);
Connection con = ds.getConnection();
Statement smt = con.createStatement();
String sql = "";
ResultSet rs = null;
sql = "SELECT * FROM user";
rs = smt.executeQuery(sql);
while(rs.next())
{
out.println(rs.getString(1));
out.println(rs.getString(2));
}
%>
第二步驟可以從admin控制台內新增
登入後
先看左邊
Tomcat
+Service
+Host
+[要使用JNDI的資料夾]
+Resources
+Data Sources
接下來設定右邊
下拉的選單Data Sources Actions -> 選擇 Create New Data Source
接下來設定
照前輩的設定
JNDI Name: jdbc/MySQL
Data Source URL: jdbc:mysql://localhost:3306/test
JDBC Driver Class: com.mysql.jdbc.Driver
User Name: root
Password: root
接著按 Save
最後按上方 Commit Changes 按鈕就可以了
如果用admin的方式來新增的話,記得要加context.xml喔,不然會失敗
我照著前面大大的作法做,一直試不成功,後來終於找到要在 {tomcat_HOME}/conf/context.xml 多加一行配置<ResourceLink name="jdbc/MySQL" global="jdbc/MySQL" type="javax.sql.DataSource"/>