急问:利用wsad连接db2并且自动生成java Bean后运行的问题,求救!!!

kelvin-w 2004-11-01 04:57:35
先声明,我是菜鸟!

在wsad的数据库服务器视图创建一个与db2的连接,驱动程序都ok,并且连接ok
然后新建一条select语句,执行,ok。
然后在数据定义视图,右键那条select语句,生成java bean
自动生成了两个类:
=====================================
package db_Source;
import java.sql.SQLException;

import com.ibm.db.beans.DBSelect;

/**
* 此类设置 DBSelect 属性值。
* 它还提供执行 SQL 语句、
* 返回 DBSelect 引用以及返回表示结果集
* 中各行的对象数组的方法。
* Generated: 2004-10-29 14:56:19
*/

public class Select_Team {
private DBSelect select;

/**
* DBSelect 类的构造函数。
*/
public Select_Team() {
super();
initializer();
}

/**
* 创建 DBSelect 实例并初始化它的属性。
*/
protected void initializer() {
select = new DBSelect();
try {
select.setDriverName("COM.ibm.db2.jdbc.net.DB2Driver");
select.setUrl("jdbc:db2://192.168.0.113:6789/LKS_Fed");
select.setCommand(
"SELECT ADMINISTRATOR.Q1003.USER_TEAMN FROM ADMINISTRATOR.Q1003 GROUP BY ADMINISTRATOR.Q1003.USER_TEAMN");
System.out.println("initializer");
} catch (SQLException ex) {
ex.printStackTrace();
}
}

/**
* 执行 SQL 语句。
*/
public void execute(String userid, String password) throws SQLException {
try {
select.setUsername(userid);
select.setPassword(password);
select.execute();
}

// 释放 select 对象的资源。
finally {
select.close();
}
}

/**
* 返回 DBSelect 引用。
*/
public DBSelect getDBSelect() {
return select;
}

/**
* 返回表示结果集中各行的对象数组。
*/
public Select_TeamRow[] getRows() {
Select_TeamRow[] rows = new Select_TeamRow[select.getRowCount()];
for (int i = 0; i <= select.getRowCount() - 1; i++) {
rows[i] = new Select_TeamRow(select, i + 1);
};
System.out.println(rows.length);
return rows;
}
}
=======================================
package db_Source;
import java.sql.*;
import com.ibm.db.beans.*;

/**
* 此类表示 DBSelect 中包含的结果集
* 的特定行。
* Generated: 2004-10-29 14:56:19
*/

public class Select_TeamRow {
private int rowNumber;
private DBSelect select;

/**
* 构造一个表示 DBSelect 中的一行的对象。
*/
public Select_TeamRow(DBSelect aRef, int aRowNumber) {
select = aRef;
rowNumber = aRowNumber;
}

/**
* 返回由此对象表示的行中的列 Q1003_USER_TEAMN 的值。
*/
public Object getQ1003_USER_TEAMN() throws SQLException {
return select.getCacheValueAt(rowNumber, 1);
}

/**
* 返回包含由此对象表示的行中所有值的字符串。
*/
public String toString() {
String string = "";
try {
for (int i = 1; i <= select.getColumnCount(); i++) {
string += select.getCacheValueAt(rowNumber, i);
string += " ";
}
} catch (SQLException ex) {
return null;
}
return string;
}
}

在svrlet页面
Select_Team selectTeam = new Select_Team();
try {
System.out.println("link");
selectTeam.execute("admin","12345678");
}
catch(Exception e) {
System.out.println("用户名密码错误!");
}
运行以上语句 总是报错
控制台如下:
[04-11-1 16:37:58:891 CST] 661baff0 SystemOut O Cannot find the class for the specified JDBC driver COM.ibm.db2.jdbc.net.DB2Driver.
用户名密码错误!

我已经在库里头添加了这个驱动(COM.ibm.db2.jdbc.net.DB2Driver)
并且调试的时候在本机的classpath里头也加入了驱动的路径,但还是提示找不到这个驱动
为什么???请大侠指点,或者提提解决的思路,谢过
...全文
138 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
j2nix 2004-11-02
  • 打赏
  • 举报
回复
public void getEnv() throws Exception
{
Properties prop=new Properties();
String OS = System.getProperty("os.name").toLowerCase();
Process p=null;
if(OS.indexOf("windows")>-1)
{
p=Runtime.getRuntime().exec("cmd /c set");
}
BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while((line=br.readLine())!=null)
{
int i=line.indexOf("=");
if(i>-1)
{
String key=line.substring(0,i);
String value=line.substring(i+1);
prop.setProperty(key,value);
}
}
System.out.println(prop.getProperty("classpath"));
}

对Windows2K操作系统
j2nix 2004-11-02
  • 打赏
  • 举报
回复
CLASSPATH。。。
kelvin-w 2004-11-02
  • 打赏
  • 举报
回复
DBSelect --------- com.ibm.db.beans里头的
j2nix 2004-11-01
  • 打赏
  • 举报
回复
是这样的,在WSAD中创建DB2的连接时所使用的驱动跟你引入到项目中的可能不一样。

你先检查你引入的db2java.zip里头有没有你那个TYPE3型的驱动。
lydong 2004-11-01
  • 打赏
  • 举报
回复
[04-11-1 16:37:58:891 CST] 661baff0 SystemOut O Cannot find the class for the specified JDBC driver COM.ibm.db2.jdbc.net.DB2Driver.
用户名密码错误!

DBSelect 是个什么类,怎么没有添加用户名密码的地方,好好看看说明文档
kelvin-w 2004-11-01
  • 打赏
  • 举报
回复
用户名密码不是在Select_Team类的execute函数里面赋值的吗?
如何加呢?
但它报错都是不能找到驱动啊,为什么要加用户名密码啊?
lydong 2004-11-01
  • 打赏
  • 举报
回复
select.setUrl("jdbc:db2://192.168.0.113:6789/LKS_Fed");
这里面应该加上用户和密码,
kelvin-w 2004-11-01
  • 打赏
  • 举报
回复
分不够再加,请各位指点

2,633

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧