2013年5月22日 星期三

Tomcat7 + JSP + Oracle 10g 連結教學

系統環境

OS:Windows7_x64
Ram:4GB
WebServer:Tomcat7

事前準備:


         灌Tomcat7,畫面如下。
           

        設定Tomcat 後台的帳密
     

        下載這些檔案
        classes12.jar
        commons-collections-3.1.jar
        commons-pool-1.2.jar
     

設定程式碼 ROOT/db_conn.jsp


<%@ page contentType="text/html;charset=utf-8" language="java" import="java.sql.*, oracle.jdbc.*"%>
Oracle連結測試<P>
<%
ResultSet rs = null;
  String oracleURL="jdbc:oracle:thin:@資料庫位址:SID";
  String oracleUser="帳號";
  String oraclePass="密碼";
  try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  }catch (SQLException e){
out.print("Driver Error");
  }
  try {
   Connection conn = DriverManager.getConnection(oracleURL,oracleUser,oraclePass);
   Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
   rs=stmt.executeQuery("select * from 會員");
   rs.last();
   out.print("本網站有"+rs.getRow()+"位會員");
   rs.close();
   stmt.close();
   conn.close();
  }catch (SQLException ce){
System.out.print(ce);
  }
%>

web.xml

<?xml version="1.0" encoding="utf-"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>
<resource-ref>
<description>Oracle Datasource example</description>
    <res-ref-name>jdbc/myoracle</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>
</web-app>

Context.xml

<?xml version='1.0' encoding='utf-8'?>
<Context>
  <WatchedResource>./WEB-INF/web.xml</WatchedResource>
  <Resource name="jdbc/myoracle" auth="Container"
          factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
          type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
          url="jdbc:oracle:thin:@資料庫位址:Port:SID"
          username="帳號" password="密碼" maxActive="20" maxIdle="10"
    maxWait="-1"/>
</Context>

其中:
name 表示指定的jndi名稱
auth 表示認證方式,一般為Container
type 表示數據源床型,使用標準的javax.sql.DataSource
maxActive 表示連接池當中最大的數據庫連接
maxIdle 表示最大的空閒連接數
maxWait 當池的數據庫連接已經被佔用的時候,最大等待時間
username 表示數據庫用戶名
password 表示數據庫用戶的密碼
driverClassName 表示JDBC DRIVER
url 表示數據庫URL地址


Server.xml


<GlobalNamingResources>
  <!-- Editable user database that can also be used by
       UserDatabaseRealm to authenticate users -->
  <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  <Resource name="jdbc/myoracle" auth="Container"
          factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@資料庫位址:Port:SID"
              username="帳號" password="密碼" maxActive="20" maxIdle="10"
              maxWait="-1"/>
</GlobalNamingResources>



Localhost:8080/db_conn.jsp執行


接下來就祝福你們成功囉!^.<




 參考網址:http://clq1013.blog.hexun.com.tw/37485909_d.html

沒有留言:

張貼留言