隨筆 - 303  文章 - 883  trackbacks - 0
          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          歡迎光臨! 
          閑聊 QQ:1074961813

          隨筆分類(357)

          我管理的群

          公共blog

          • n維空間
          • Email : java3d@126.com 群 : 12999758

          參與管理的論壇

          好友的blog

          我的其他blog

          朋友的網(wǎng)站

          搜索

          •  

          最新評論

          本文以Weblogic 5.1+mysql 為例向大家介紹weblogic提供的POOL,
          我分別寫了兩個 servlet 作為對照的例子,一個是用 mysql 提供的JDBC來直接存取MYSQL,
          另一個是weblogic提供的POOL來存取數(shù)據(jù)庫。
          首先請看用 mysql 提供的JDBC來直接存取MYSQL的代碼:

          myjdbc.java
          -----------------------------------------------------------------------------
          import java.io.*;
          import java.sql.*;
          import weblogic.db.jdbc.*;
          import java.util.Properties;
          import javax.servlet.*;
          import javax.servlet.http.*;


          public class myjdbc extends HttpServlet {

          public void service(HttpServletRequest req, HttpServletResponse res)
          throws IOException
          {

          res.setContentType("text/html");

          PrintWriter out = res.getWriter();
          out.println("<html><head><title>Hello World!</title></head>");
          out.println("<body><h1>TEST JDBC!</h1><pre>");

          Connection Conn = null;

          try {

          //=================================================================================
          Class.forName("org.gjt.mm.mysql.Driver").newInstance();
          Conn = DriverManager.getConnection("jdbc:mysql://localhost/zjws?user=zjxyz&password=xyz");
          //=================================================================================

          Statement Stmt = Conn.createStatement();
          ResultSet RS = Stmt.executeQuery("SELECT * from users");


          while (RS.next()) {

          out.println(RS.getString("userid")+"\t"
          +RS.getString("passwd")
          +"\t"+RS.getString("name"));
          }

          RS.close();
          Stmt.close();
          Conn.close();

          }catch (Exception E) {
          System.err.println("Unable to load driver.");
          E.printStackTrace();
          }

          out.println("</pre></body></html>");
          }

          }

          上面的代碼功能是把mysql 的 zjws數(shù)據(jù)庫里面 users 表列出來,我把裝入JDBC驅(qū)動的語句做了標(biāo)記
          下面是利用POOL讀取數(shù)據(jù)庫,裝入JDBC驅(qū)動的語句我也做了標(biāo)記,請仔細比較。

          首先是要配置好服務(wù)器,在weblogic.properties加入,

          #=====================================================

          weblogic.jdbc.connectionPool.mysqlPool1=\
          url=jdbc:mysql://localhost/zjws?user=zjxyz,\
          driver=org.gjt.mm.mysql.Driver,\
          loginDelaySecs=1,\
          initialCapacity=4,\
          maxCapacity=10,\
          capacityIncrement=2,\
          allowShrinking=true,\
          shrinkPeriodMins=15,\
          refreshMinutes=10,\
          allow=guest,\
          props=user=zjxyz;password=xyz;server=zjxyz


          #=====================================================

          把mysql 的JDBC驅(qū)動放在 /weblogic/myserver/serverclasses/ 目錄下,不知為何,
          我把jar包把放在其目錄下,把路徑加入 classpath 中,結(jié)果啟動時說找不到class,
          所以我只好解開的org目錄及其里面的文件放進去,結(jié)果可以了。

          mysql一定要比weblogic先啟動,因為weblogic在啟動時要創(chuàng)建POOL。


          mysqlpool.java
          --------------------------------------------------------------------------------------------------
          import java.io.*;
          import java.sql.*;
          import weblogic.db.jdbc.*;
          import java.util.Properties;
          import javax.servlet.*;
          import javax.servlet.http.*;


          public class mysqlpool extends HttpServlet {

          public void service(HttpServletRequest req, HttpServletResponse res)
          throws IOException
          {

          res.setContentType("text/html");

          PrintWriter out = res.getWriter();
          out.println("<html><head><title>Hello World!</title></head>");
          out.println("<body><h1>TEST Weblogic Pool!</h1><pre>");

          Connection Conn = null;

          try {
          //=================================================================================
          Properties props =new Properties();

          props.setProperty("user", "system");
          props.setProperty("password", "zjxyzken");

          Driver myDriver =
          (Driver) Class.forName("weblogic.jdbc.pool.Driver").newInstance();

          Conn = myDriver.connect("jdbc:weblogic:pool:mysqlPool1",props);
          //=================================================================================

          Statement Stmt = Conn.createStatement();
          ResultSet RS = Stmt.executeQuery("SELECT * from users");

          while (RS.next()) {

          out.println(RS.getString("userid")+"\t"
          +RS.getString("passwd")
          +"\t"+RS.getString("name"));
          }

          RS.close();
          Stmt.close();
          Conn.close();

          }catch (Exception E) {
          System.err.println("Unable to load driver.");
          E.printStackTrace();
          }

          out.println("</pre></body></html>");
          }

          }

          經(jīng)過閱讀源代碼,我們可以發(fā)現(xiàn),作為程序員某定程度上根本不需要理會服務(wù)器裝的是什么SQL數(shù)據(jù)庫,
          只需連接到weblogic創(chuàng)建提供的POOL就可以了,這樣一來除了可以提高效率外還令到代碼的可重用性大大提高。



          地震讓大伙知道:居安思危,才是生存之道。
          posted on 2007-02-22 14:38 小尋 閱讀(558) 評論(0)  編輯  收藏 所屬分類: j2se/j2ee/j2medatabase
          主站蜘蛛池模板: 上思县| 北流市| 福安市| 湖南省| 玉田县| 东乌| 凌源市| 商丘市| 孝昌县| 定州市| 上虞市| 武义县| 文安县| 太仆寺旗| 鄂州市| 泉州市| 牡丹江市| 柳林县| 米泉市| 从江县| 平阴县| 汉沽区| 连州市| 井冈山市| 苏尼特右旗| 宣化县| 璧山县| 房产| 揭西县| 新竹县| 金寨县| 大理市| 抚宁县| 嘉禾县| 兴海县| 临猗县| 隆化县| 突泉县| 新疆| 顺昌县| 无为县|