以往用JAVA存取数据库都是直接用JDBC连接数据库;
一般的,每个数据库客户端应用
程序都要打开一个或一个以上的数据库连接,
而在weblogic下我们可以利用weblogic提供的POOL来存取数据库,
使每个数据库客户端共同分享一个或一个以上的数据库连接,
从而可以提高
程序的执行效率和减轻数据库服务器的负担。
这篇文章主要讨论的是服务器的配置和代码的实现,在这里在下不想讨论太多POOL的概念和特点,
至于POOL的概念及原理,我建议大家看看一篇题为“用连接池提高Servlet访问数据库的效率”的
资料,作者是好兵。
本文以Weblogic 5.1+mysql 为例向大家介绍weblogic提供的POOL,
我分别写了两个 servlet 作为对照的例子,一个是用 mysql 提供的JDBC来直接存取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("<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();
&n