blogspot.com-GA4

星期一, 6月 09, 2008

tomcat5.5連接DBCP

這幾天在弄DBCP的環境
環境:tomcat 5.5、jdk1.5、windowXP SP2
DBCP JAR:commons-dbcp-1.2.2.jar、commons-collections-3.2.jar、commons-pool-1.3.jar
參考文章 TOMCAT

1. 設置 conf\server.xml 在 <Host> ... </Host> 加入以下設定
  1. <Context path="" docBase="C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/ROOT"
  2. debug="5" reloadable="true" crossContext="true">
  3. <Resource name="jdbc/hxxg" auth="Container"
  4. type="javax.sql.DataSource"
  5. maxActive="100" maxIdle="10" maxWait="10000"
  6. username="syxxxx" password="_yoxxxx"
  7. driverClassName="com.sybase.jdbc3.jdbc.SybDriver"
  8. url="jdbc:sybase:Tds:172.17.1.5:5000/hxxg?autoReconnect=true"/>
  9. </Context>

以上 在 docBase 設定裡面 如果是 ROOT 目錄下的網站就要設定絕對路徑,
如果是 在 webapps 下的 hxxg 目錄的話,設定成
<Context path="/hxxg" docBase="hxxg" ....

2. 設置網站 WEB-INF/web.xml ,在 <web-app> ... </web-app> 加入以下設定,設定對應jdbc來源
  1. <resource-ref>
  2. <description>DB Connection</description>
  3. <res-ref-name>jdbc/hxxg</res-ref-name>
  4. <res-type>javax.sql.DataSource</res-type>
  5. <res-auth>Container</res-auth>
  6. </resource-ref>


3. 測試連線方式1,使用 DataSource 連接
  1. <%@page import="java.sql.*"%>
  2. <%@ page import="javax.sql.*" %>
  3. <%@ page import="javax.naming.*" %>
  4. <%@page contentType="text/html;charset=big5"%>
  5. <%
  6. try {
  7. Context initContext = new InitialContext();
  8. Context envContext = (Context)initContext.lookup("java:/comp/env");
  9. DataSource ds = (DataSource)envContext.lookup("jdbc/hxxg");
  10. Connection conn = ds.getConnection();
  11. if(!conn.isClosed())
  12. out.println("資料庫連線測試成功!");
  13. Statement stmt = conn.createStatement();
  14. conn.setAutoCommit(false);
  15. ResultSet rs = stmt.executeQuery("select loginid,password from wb005 ");
  16. while(rs.next()){
  17. out.println("loginid:"+ rs.getString("loginid")
  18. +":password:"+ rs.getString("password"));
  19. }
  20. conn.commit();
  21. conn.close();
  22. }
  23. catch(SQLException e) {
  24. out.println(e.toString());
  25. }
  26. %>

4. 測試連線方式2,使用 jstl 連接
  1. <%@taglib uri="http://java.sun.com/jsp/jstl/sql"
  2. prefix="sql" %>
  3. <%@taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c" %>
  4. <sql:query var="rs" dataSource="jdbc/hxxg">
  5. select loginid, password from wb005
  6. </sql:query>
  7. <html>
  8. <head>
  9. <title>DB Test</title>
  10. </head>
  11. <body>
  12. <h2>Results</h2>
  13. <c:forEach var="row" items="${rs.rows}">
  14. loginid ${row.loginid}<br/>
  15. password ${row.password}<br/>
  16. </c:forEach>
  17. </body>
  18. </html>

沒有留言: