以往用存取数据库都是直接用JDBC连接;
一般的,每个数据库客户端应用程序都要打开一个或一个以上的连接,
而在weblogic下我们可以利用weblogic提供的POOL来存取,
使每个数据库客户端共同分享一个或一个以上的连接,
从而可以提高程序的执行效率和减轻服务器的负担。
这篇文章主要讨论的是服务器的配置和代码的实现,在这里在下不想讨论太多POOL的概念和特点,
至于POOL的概念及原理,我建议大家看看一篇题为“用连接池提高访问的效率”的资料,作者是好兵。
本文以Weblogic 5.1+ 为例向大家介绍weblogic提供的POOL,
我分别写了两个 作为对照的例子,一个是用 mysql 提供的JDBC来直接存取,
另一个是weblogic提供的POOL来存取。
首先请看用 mysql 提供的JDBC来直接存取的代码:
myjdbc.
-----------------------------------------------------------------------------
import .io.*;
import .sql.*;
import weblogic.db.jdbc.*;
import .util.Properties;
import x..*;
import x..http.*;
public class myjdbc extends Http {
public void service(HttpServletRequest req, HttpResponse 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..Driver").newInstance();
Conn = DriverManager.getConnection("jdbc:://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>");
}
}
上面的代码功能是把 的 zjws里面 users 表列出来,我把装入JDBC驱动的语句做了标记
下面是利用POOL读取,装入JDBC驱动的语句我也做了标记,请仔细比较。
首先是要配置好服务器,在weblogic.properties加入,
#=====================================================
weblogic.jdbc.connectionPool.Pool1=\
url=jdbc:://localhost/zjws?user=zjxyz,\
driver=org.gjt.mm..Driver,\
loginDelaySecs=1,\
initialCapacity=4,\
maxCapacity=10,\
capacityIncrement=2,\
allowShrinking=true,\
shrinkPeriodMins=15,\
refreshMinutes=10,\
allow=guest,\
props=user=zjxyz;password=xyz;server=zjxyz
#=====================================================
[1]