<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BloveSaga

    在希臘帕爾納斯山南坡上,有一個馳名世界的戴爾波伊神托所,在它的入口處的巨石上赫然銹刻著這樣幾個大字: 認識你自己!

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      34 隨筆 :: 12 文章 :: 122 評論 :: 0 Trackbacks
    ? Tomcat從5.x開始就可以在server.xml里配置數據源,后來用到了Proxool對比了一下覺得Proxool更方便更好用,它提供了更多的方法,簡單,推薦大家使用.
    ? 下載地址:http://proxool.sourceforge.net/ 最新版本為: Proxool 0.9.0RC2
    ? 下載后解壓縮Proxool 0.9.0RC2后,把Proxool 0.9.0RC2/lib下的.jar文件部署到WEB-INF/lib下.
    ? 看看下面的范例(example for Oracle):
    ? Proxool.jsp
    ________________________________________________________________________________________________________________________________________
    <%@ page import="java.sql.*"%>
    <%@ page contentType="text/html;charset=gb2312"%>

    <html>
    ?? ?<head>
    ?? ??? ?<title>Proxool.jsp</title>
    ?? ?</head>
    ?? ?<body>
    ?? ??? ?<h2>使用Proxool.jsp</h2>
    ?? ??? ?<%
    ?? ??? ??? Connection con=null;
    ?? ??? ??? Statement stmt=null;
    ?? ??? ??? ResultSet rs=null;
    ?? ??? ?? ?
    ?? ??? ??? String ename="";
    ?? ??? ?? ?
    ?? ??? ??? try
    ?? ??? ??? {
    ?? ??? ????? Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
    ?? ??? ????? con=DriverManager.getConnection("proxool.JSPBook:oracle.jdbc.driver.OracleDriver:
    ?????????????????????? jdbc:oracle:thin:@yang:1521:orcl","scott","ss");?? ??? ???? ?
    ?? ??? ????? stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ?? ??? ?????????????????????????????? ResultSet.CONCUR_UPDATABLE);
    ?? ??? ????? String query="select * from emp";
    ?? ??? ????? rs=stmt.executeQuery(query);
    ?? ??? ????? while(rs.next())
    ?? ??? ????? {
    ?? ??? ??????? ename=rs.getString("ename");
    ????? %>
    ??????? 從emp表中取出姓名<%=ename%><br>
    ????? <%
    ?? ??? ????? }
    ?? ??? ????? stmt.close();
    ?? ??? ????? con.close();
    ?? ??? ??? }
    ?? ??? ??? catch(SQLException e)
    ?? ??? ??? {
    ?? ??? ????? out.println("發生異常"+e);
    ?? ??? ??? }
    ?? ??? ??? finally
    ?? ??? ??? {
    ?? ??? ????? try
    ?? ??? ????? {
    ?? ??? ??????? if(con!=null)
    ?? ??? ??????? {
    ?? ??? ????????? con.close();
    ?? ??? ??????? }
    ?? ??? ????? }
    ?? ??? ????? catch(SQLException ne)
    ?? ??? ????? {
    ?? ??? ??????? out.println("SQLException:"+ne);
    ?? ??? ????? }
    ?? ??? ??? }
    ?? ??? ?%>
    ?? ?</bdoy>
    </html>
    Proxool.jsp通過Proxool連接池取得Connection,然后顯示emp表格中的ename.
    首先動態加載Proxool的driver:
    ? Class.forName("org.logicalcobwebs.proxool.ProxoolDriver);
    然后將Proxool URL分為三個部分: 連接池的別名,JDBC驅動程序(DataBase JDBC Drivers),連接URL.

    設定Proxool
    proxool提供了許多連接池的參數,例如:連接池最多有幾個Connection,最少有幾個Connection,Connection生命期限等等。
    Proxool主要有以下四種設定方式:
    (一) 通過java.util.Properties對象來設定,例如:
    Properties info=new Properties();
    info.setProperty("proxool.maximum-connection-count","20");
    info.setProperty("proxool.house-keeping-test-sql","select CURRENT_DATE");
    info.setProperty("user","your DB username");
    info.setProperty("password","your DB prassword");
    String alias="Develop"; //Proxool連接池的別名,根據自己喜好隨便寫^_^
    String driverClass="oracle.jdbc.driver.OracleDriver";
    String driverUrl="jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName";
    String url="proxool."+alias+":"+drvierClass+":"+driverUrl;
    connection=DrvierManager.getConnection(rul,info);

    (二) 通過XML文件來設定,例如:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored.-->
    <proxool>
    ? <alias>Develop</alias>
    ? <driver-url>
    ??? jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
    ? </driver-url>
    ? <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    ? <driver-properties>
    ??? <property name="user" value="your database name"/>
    ??? <property name="password" value="your DB password"/>
    ? </driver-properties>
    ? <maximum-connection-count>10</maximum-connection-count>
    ? <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
    </proxool>
    然后通過JAXPConfiguration讀取XML文件:
    JAXPConfigurator.configure("/WEB-INF/classes/proxool.xml",false);

    (三) 先通過Properties文件來設定,例如:
    jdbc-0.proxool.alias=Develop
    jdbc-0.proxool.drvier-url=jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
    jdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriver;
    jdbc-0.user=your database username
    jdbc-0.password=your database password
    jdbc-0.proxool.maximum-connection-count=10
    jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
    然后通過PropertyConfigurator讀取Properties文件:
    PropertyConfigurator.configure("/WEB-INF/classes/Proxool.properties");

    (四)在web.xml中,通過servlet來設定.方法又有三種,前兩種是按照格式來的:
    1.XML文件
    <servlet>
    ? <servlet-name>ServletConfigurator</servlet-name>
    ? <servlet-class>
    ???? org.logicalcobwebs.proxool.configuration.ServletConfigurator
    ? </servlet-class>
    ? <init-param>
    ???? <param-name>xmlFile</param-name>
    ???? <param-value>WEB-INF/classes/Proxool.xml</param-value>
    ? </init-param>
    ? <load-on-start>1</load-on-start>
    </servlet>

    2.Properties文件
    <servlet>
    ? <servlet-name>ServletConfigurator</servlet-name>
    ? <servlet-class>
    ???? org.logicalcobwebs.proxool.configuration.ServletConfigurator
    ? </servlet-class>
    ? <init-param>
    ???? <param-name>propertyFile</param-name>
    ???? <param-value>WEB-INF/classes/Proxool.properties</param-value>
    ? </init-param>
    ? <load-on-start>1</load-on-start>
    </servlet>

    3.Init Prameter
    <servlet>
    ? <servlet-name>ServletConfigurator</servlet-name>
    ? <servlet-class>
    ???? org.logicalcobwebs.proxool.configuration.ServletConfigurator
    ? </servlet-class>
    ? <init-param>
    ???? <init-name>jdbc-0.proxool.alias</init-param>
    ???? <init-value>Develop</init-value>
    ? </init-param>
    ? <init-param>
    ???? <init-name>jdbc-0.proxool.driver-rul</init-param>
    ???? <init-value>
    ??????? jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
    ???? </init-value>
    ? </init-param>
    ? <init-param>
    ???? <init-name>jdbc-0.proxool.driver-class</init-param>
    ???? <init-value>oracle.jdbc.driver.OracleDriver</init-value>
    ? <init-param>
    </servlet>

    建議大家使用第四種方法,好處在于當Container啟動時,Proxool的參數會自動設定加載到內存中,原因在于:
    <servlet>
    ......略
    <load-on-start>1</load-on-start>

    一個完整的示例如下:
    web.xml
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    ???????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    ???????? xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    ???????? version="2.4">
    .......略
    ? <servlet>
    ???? <servlet-name>ServletConfigurator</servlet-name>
    ???? <servlet-class>
    ?????? org.logicalcobwebs.proxool.configuration.ServletConfigurator
    ???? </servlet-class>
    ???? <init-param>
    ?????? <param-name>propertyFile</param-name>
    ?????? <param-value>WEB-INF/classes/Proxool.properties</param-value>
    ???? </init-param>
    ???? <load-on-start>1</load-on-start>
    ? </servlet>
    .......略
    </web-app>

    Proxool.proterties
    jdbc-0.proxool.alias=Develop
    jdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriver
    jdbc-0.proxool.driver.url=jdbc:oracle:thin:@127.0.0.1:1521:DatabaseName
    jdbc-0.proxool.maximum-connection-count=10
    jdbc-0.proxool.prototype-count=4
    jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
    jdbc=0.proxool.verbose=true

    我們可以用下面的Test Page來進行測試
    Proxool-config.jsp
    ____________________________________________________
    <%@ page import="java.sql.*"%>
    <%@ page contentType="text/html;charset=gb2312"%>

    <html>
    ?? ?<head>
    ?? ??? ?<title>Proxool.jsp</title>
    ?? ?</head>
    ?? ?<body>
    ?? ??? ?<h2>使用Proxool.jsp</h2>
    ?? ??? ?<%
    ?? ??? ??? Connection con=null;
    ?? ??? ??? Statement stmt=null;
    ?? ??? ??? ResultSet rs=null;
    ?? ??? ?? ?
    ?? ??? ??? String ename="";
    ?? ??? ?? ?
    ?? ??? ??? try
    ?? ??? ??? {
    ?? ??? ????? con=DriverManager.getConnection("proxool.Develop");?? ??? ???? ?
    ?? ??? ????? stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    ?? ??? ?????????????????????????????? ResultSet.CONCUR_UPDATABLE);
    ?? ??? ????? String query="select * from emp";
    ?? ??? ????? rs=stmt.executeQuery(query);
    ?? ??? ????? while(rs.next())
    ?? ??? ????? {
    ?? ??? ??????? ename=rs.getString("ename");
    ????? %>
    ??????? 從emp表中取出姓名<%=ename%><br>
    ????? <%
    ?? ??? ????? }
    ?? ??? ????? stmt.close();
    ?? ??? ????? con.close();
    ?? ??? ??? }
    ?? ??? ??? catch(SQLException e)
    ?? ??? ??? {
    ?? ??? ????? out.println("發生異常"+e);
    ?? ??? ??? }
    ?? ??? ??? finally
    ?? ??? ??? {
    ?? ??? ????? try
    ?? ??? ????? {
    ?? ??? ??????? if(con!=null)
    ?? ??? ??????? {
    ?? ??? ????????? con.close();
    ?? ??? ??????? }
    ?? ??? ????? }
    ?? ??? ????? catch(SQLException ne)
    ?? ??? ????? {
    ?? ??? ??????? out.println("SQLException:"+ne);
    ?? ??? ????? }
    ?? ??? ??? }
    ?? ??? ?%>
    ?? ?</bdoy>
    </html>
    測試結果為:
    =====================================
    使用Proxool.jsp
    從emp表中取出姓名SMITH
    從emp表中取出姓名ALLEN
    從emp表中取出姓名WARD
    從emp表中取出姓名JONES
    從emp表中取出姓名MARTIN
    從emp表中取出姓名BLAKE
    從emp表中取出姓名CLARK
    從emp表中取出姓名SCOTT
    從emp表中取出姓名KING
    從emp表中取出姓名TURNER
    從emp表中取出姓名ADAMS
    從emp表中取出姓名JAMES
    從emp表中取出姓名FORD
    從emp表中取出姓名MILLER
    從emp表中取出姓名feiyang
    從emp表中取出姓名yang
    從emp表中取出姓名feifei
    從emp表中取出姓名fei
    posted on 2006-06-04 15:30 藍色Saga 閱讀(451) 評論(0)  編輯  收藏 所屬分類: 實用技術

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 99蜜桃在线观看免费视频网站| 日韩亚洲翔田千里在线| 中文字幕版免费电影网站| 亚洲国产一成久久精品国产成人综合| 亚洲gay片在线gv网站| 日韩毛片免费在线观看| 亚洲精品伦理熟女国产一区二区| 18禁成年无码免费网站无遮挡| 亚洲婷婷天堂在线综合| 国产精品成人观看视频免费| 亚洲情a成黄在线观看动漫尤物| a视频在线免费观看| 久久精品国产精品亚洲蜜月| 一级毛片不卡免费看老司机| 免费在线观看a级毛片| 亚洲欧美黑人猛交群| 亚洲第一页日韩专区| 美女羞羞视频免费网站| 免费无码又爽又刺激毛片| 亚洲字幕AV一区二区三区四区| 国产成人精品久久免费动漫| 亚洲精品日韩中文字幕久久久| 100部毛片免费全部播放完整| 久久久久久亚洲Av无码精品专口| 51精品视频免费国产专区| 亚洲黑人嫩小videos| 99久久国产免费-99久久国产免费| 亚洲av成人无码久久精品 | 国产成人亚洲精品电影| 最近中文字幕mv免费高清视频7| 亚洲日本人成中文字幕| 97人妻无码一区二区精品免费| 亚洲码一区二区三区| 国产在线ts人妖免费视频| 久久久久久久久久免免费精品| 亚洲噜噜噜噜噜影院在线播放| 四虎影在线永久免费观看| 免费黄色电影在线观看| 国产精品亚洲av色欲三区| 亚洲国产精品无码久久久蜜芽| 午夜免费不卡毛片完整版|