请问,连接weblogic,是Class.forName("weblogic.jdbc.pool.Driver")吗?为什么我还是报找不到这个包?

作者&投稿:寿蒋 (若有异议请与网页底部的电邮联系)
如何利用weblogic的POOL(连接池)连接数据库~

以往用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("Hello World!");
out.println("TEST JDBC!");

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")+" "
+RS.getString("passwd")
+" "+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("Hello World!");
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")+" "
+RS.getString("passwd")
+" "+RS.getString("name"));
}

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

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

out.println("");
}

}

出的啥错?
正常应该有个 finally
关闭 Statement 和 连接

加入weblogic.jar和webpool.jar这两个包就好了

Class.ForName中引用的类eclipse是判断不出来的,写这句的原因是开发代码的时候只引用jdbc的接口类,而weblogic.jar和webpool.jar这两个包一般不打在工程中,是直接配置在weblogic运行环境的

这样的话,import 时会提示你没有使用这个包。

Class.forName("weblogic.jdbc.pool.Driver")

这是加载类,是要在classpath环境内能够找到相应的类。所以,还是需要jar的。

如你所说。
是因为它,而出错。

请问,连接weblogic,是Class.forName("weblogic.jdbc.pool.Driver")吗...
答:Class.ForName中引用的类eclipse是判断不出来的,写这句的原因是开发代码的时候只引用jdbc的接口类,而weblogic.jar和webpool.jar这两个包一般不打在工程中,是直接配置在weblogic运行环境的

weblogic链接上服务器后怎么查看数据库
答:一,启动BEA 打开控制台:通过浏览器,打开网址启动管理控制台。输入管理员 用户名和密码(默认:weblogic/weblogic)。创建JDBC数据源:在“域结构”树中,展开“服务”>“JDBC”,然后选择“数据源”。在“数据源概要”页上,单击“新建”。在“JDBC 数据源属性”页上,输入或选择下列信息:名称:jdbc/...

怎样连接到WebLogic的内置LDAP上
答:一.修改Admin的密码。在开始连接之前,我们要修改WebLogic的内置LDAP Server的Admin的密码。修改方法如下。1.打开控制台,点击控制台左边的Security,然后选择Embedded LDAP(内置LDAP)。2.修改密码:修改Credential:的值为:88888888,在ConfiRM Credential:中再输入一遍。3.单击下方的“Apply”按钮。我们...

连接weblogic9.2数据源问题,高手快了,我快完了!
答:1:首先在weblogic 下配置好数据源jdbc/testDATASource 2: 调用代码:/ 根据数据源名称获取数据库连接对象, 这里将保证只存在一个活动的连接对象 param dataSource 数据源名称 / protected Connection getConnection(String dataSource) { try { //Hashtable has=new Hashtable();// has.put(...

weblogic连接池大小配置
答:WebLogic连接池大小配置取决于应用程序的需求和服务器资源。在WebLogic中,连接池用于管理和复用数据库连接,从而提高性能和资源利用率。连接池的大小配置是指设定连接池中可用连接的数量。合理的配置能够确保应用程序在需要时能够及时获取到数据库连接,同时避免过多的连接导致资源浪费或服务器压力增大。配置连接...

请教weblogic连接池不释放问题
答:1. 你的这种设计存在问题.."子系统由于一些问题而导致请求的响应时间可能会很长"这样会导致连接一直在占用...连接池很快就会满的..2. 你应该在你的finally里面将连接close掉.这样不管出现什么异常情况.连接多会关闭 3.WebLogic Server提供了一个Inactive Connection Timeout选项,默认是60秒,如果一个...

如何修改weblogic的tcp连接
答:1)Weblogic处理忙,来不及接受Socket,导致连接超时,这时Weblogic日志中同样没有任何记录;2)Socket连接被Weblogic接受进入Request队列;3、Request队列由Thread处理,OS调度Thread,处理Request请求:1)Request请求仍然在队列中,达到超时时间,连接中断,Weblogic日志中会记录错误信息;2)Thread接受Request,...

weblogic链接数据库失败:IO 错误: Undefined Error
答:光看这个无法判断。。是否可以给出WebLogic日志?建议:1,排查数据库实例是否创建并启用;2,再次检查WebLogic中数据源的配置3,驱动版本是否符合4,重启WebLogic试试

plsql可以连接上,历史ip 端口都是对的,但是weblogic创建数据源连接失败...
答:第三是防火墙开启,端口号没有开放,被防火墙拦截。排查这三个地方就能解决问题。我的是第一种情况,我的weblogic安装在虚拟机上面,Oracle安装在本机。在虚拟机配置数据源时填写的本机ip是VMnet8的ip,所以一直提示网络适配器无法连接。后来换成本机真正的地址测试就通过了。

求java程序,用JNDI连接Weblogic数据源(weblogicjndi数据源配置)_百度...
答:4。JBuilder-WebLogic-EJB-Oracle企业级应用WebLogic、Jbuilder、Oracle集成配置,Java分布式平台技术,连接池、数据源配置,RMI与JNDI技术,中间件概念,会话Bean、实体Bean,开发《购物车》实例全面了解J2EE架构、掌握WebLogic服务器、Jbuilder开发工具,EJB组件以及JDBC、JNDI分布式平台技术50课时 5。Struts技术揭密及WEB开发实例Stru...