急问:利用wsad连接db2并且自动生成java Bean后运行的问题,求救!!!
先声明,我是菜鸟!
在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里头也加入了驱动的路径,但还是提示找不到这个驱动
为什么???请大侠指点,或者提提解决的思路,谢过