利用weblogic的POOL(連線池)連線資料庫 (轉)
利用LOGIC的POOL(連線池)連線
作者:XYZ
簡單介紹
以往用存取資料庫都是直接用JC連線資料庫;
一般的,每個資料庫客戶端應用都要開啟一個或一個以上的資料庫連線,
而在weblogic下我們可以利用weblogic提供的POOL來存取資料庫,
使每個資料庫客戶端共同分享一個或一個以上的資料庫連線,
從而可以提高程式的和減輕資料庫的負擔。
這篇文章主要討論的是伺服器的和程式碼的實現,在這裡在下不想討論太多POOL的概念和特點,
至於POOL的概念及原理,我建議大家看看一篇題為“用連線池提高訪問資料庫的效率”的資料,
作者是好兵。
本文以Weblogic 5.1+my 為例向大家介紹weblogic提供的POOL,
我分別寫了兩個 servlet 作為對照的例子,一個是用 提供的來直接存取MYSQL,
另一個是weblogic提供的POOL來存取資料庫。
首先請看用 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("
out.println("
TEST JDBC!
");");
Connection Conn = null;try {
//=================================================================================
Class.forName("org.gjt.mm.mysql.").newInstance();
Conn = DriverManager.getConnection("jdbc:mysql://localhost/zjws?user=zjxyz&pass=xyz");
//=================================================================================Statement Stmt = Conn.createStatement();
ResultSet RS = Stmt.executeQuery(" * 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("
}
}
上面的程式碼功能是把mysql 的 zjws資料庫裡面 users 表列出來,我把裝入JDBC的語句做了標記
下面是利用POOL讀取資料庫,裝入JDBC驅動的語句我也做了標記,請仔細比較。
首先是要配置好伺服器,在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驅動放在 /weblogic/myserver/serverclasses/ 目錄下,不知為何,
我把jar包把放在其目錄下,把路徑加入 classpath 中,結果啟動時說找不到class,
所以我只好解開的org目錄及其裡面的放進去,結果可以了。
mysql一定要比weblogic先啟動,因為weblogic在啟動時要建立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("
out.println("
TEST Weblogic Pool!
");");
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("
}
}
經過閱讀,我們可以發現,作為程式設計師某定程度上根本不需要理會伺服器裝的是什麼SQL資料庫,
只需連線到weblogic建立提供的POOL就可以了,這樣一來除了可以提高效率外還令到程式碼的可重用性大大提高。
作者:XYZ※版權所有
轉載請註明來源
【CGI設計室】
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-998625/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫連線池資料庫
- 《四 資料庫連線池原始碼》手寫資料庫連線池資料庫原始碼
- 資料庫連線池-Druid資料庫連線池原始碼解析資料庫UI原始碼
- 資料庫連線池的理解資料庫
- 資料庫連線池的使用資料庫
- WASCE的資料庫連線池資料庫
- 資料庫連線池原理資料庫
- Proxool資料庫連線池資料庫
- JAVA資料庫連線池Java資料庫
- Flask資料庫連線池Flask資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- 資料庫連線池的工作原理資料庫
- (請問)weblogic的連線池Web
- python資料庫連線池Python資料庫
- 手寫資料庫連線池資料庫
- 瞭解資料庫連線池資料庫
- 資料庫連線池淺析資料庫
- JNDI配置資料庫連線池資料庫
- PROXOOL資料庫連線池使用資料庫
- 關於資料庫連線池資料庫
- .net 資料庫連線池配置資料庫
- 資料庫連線池實現資料庫
- Javaweb-資料庫連線池JavaWeb資料庫
- [資料庫連線字串] Access 連線字串(轉)資料庫字串
- [資料庫連線字串]Access連線字串(轉)資料庫字串
- 請關掉你的資料庫連線!並且請使用資料庫連線池資料庫
- java資料庫連線池dbcp的使用Java資料庫
- Tomcat4的資料庫連線池配置 (轉)Tomcat資料庫
- MySql資料庫連線池專題MySql資料庫
- JavaWeb之事務&資料庫連線池JavaWeb資料庫
- mysql資料庫連線池配置教程MySql資料庫
- Python資料庫連線池DButilsPython資料庫
- 聊聊資料庫連線池 Druid資料庫UI
- JDBC資料庫連線池實現JDBC資料庫
- 關於WebLogic 訪問Oracle 資料庫(建立連線池)問題WebOracle資料庫
- (轉)PHP連線資料庫之PHP連線MYSQL資料庫程式碼PHP資料庫MySql
- Tomcat DBCP(Database Connection Pool) 資料庫連線池入門介紹TomcatDatabase資料庫
- 用連線池提高Servlet訪問資料庫的效率 (轉)Servlet資料庫