java 连接 db2

classpath中有db2java,文件在dos黑屏下编译,执行可以完成,在eclipse上导入了db2java.zip。一直执行失败,如下Unabletoconnec... classpath中有db2java,文件在dos黑屏下编译,执行可以完成,
在eclipse上导入了db2java.zip。一直执行失败,如下
Unable to connection
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at ConnDB2.main(ConnDB2.java:32)

public static void main(String argv[]) {
Connection con = null;
Statement sta = null;
ResultSet res = null;

// String url ="jdbc:db2://localhost:50000/sample";
String url = "jdbc:db2:sample";
// String url ="jdbc:db2://127.0.0.1:50000/sample";
try {

Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");

con = DriverManager.getConnection(url, "db2admin", "db2admin");
sta = con.createStatement();
String query = " select * from Administrater.staff";
res = sta.executeQuery(query);

boolean Have = res.next();

if (!Have) {
System.out.print("No record\n");
System.exit(-1);
}

ResultSetMetaData rsmd = res.getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); i++) {
System.out.print(rsmd.getColumnName(i) + " ");
}
System.out.print("\n");

do {
for (int i = 1; i <= rsmd.getColumnCount(); i++) {

System.out.print(res.getString(i) + " ");

}
System.out.print("\n");
} while (res.next());

res.close();
sta.close();
con.close
} catch (ClassNotFoundException e) {
System.out.println("Failed to load JDBC/ODBC");

e.printStackTrace();
System.exit(0);
} catch (SQLException e) {
System.out.println("Unable to connection");
e.printStackTrace();
}catch(Exception e)
{
System.out.println("s");
}

}
那么在eclipse里面如何设置db2profile?
展开
 我来答
清城夜话
2009-04-30 · TA获得超过152个赞
知道小有建树答主
回答量:156
采纳率:0%
帮助的人:76.5万
展开全部
DB2有两个驱动方式, 一个是纯Java的JDBC;一个是调用DB2命令行的JDBC驱动.
db2java.zip中的COM.ibm.db2.jdbc.app.DB2Driver是后种. 你在命令行下能够运行是因为环境变量(db2profile)已经设置好了.Eclipse带起来的Java程序没有这些环境变量. COM.ibm.db2.jdbc.app.DB2Driver仅仅是DB2命令的一层封装,没有环境变量,自然找不到命令,自然连接不成功.

换成type4的JDBC driver,或者在eclipse里面设置好db2profile就可以了.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
推荐于2018-05-12 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1822万
展开全部
import java.sql.*;
public class DB2conn{
/**设置参数**/
private static Connection conn = null;
private static Statement stmt = null;
private static ResultSet rs = null;

/**构造方法,链接数据库**/
public DB2conn() {
try{
System.out.println("正在连接数据库..........");
Class.forName("com.ibm.db2.jcc.DB2Driver");//加载mysql驱动程序类
String url = "jdbc:db2://localhost:50000/toolsdb";//url为连接字符串
String user = "db2admin";//数据库用户名
String pwd = "1234";//数据库密码
conn=(Connection)DriverManager.getConnection(url,user,pwd);
System.out.println("数据库连接成功!!!");
}catch(Exception e){
System.out.println(e.getMessage());
//e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
DB2conn a = new DB2conn();//实例化对象,作用是调用构造方法
a.getClass();//无意义
/**查询语句**/
String sql="select * from person";
stmt = (Statement) conn.createStatement();
stmt.execute(sql);//执行select语句用executeQuery()方法,执行insert、update、delete语句用executeUpdate()方法。
rs=(ResultSet) stmt.getResultSet();
while(rs.next()){ //当前记录指针移动到下一条记录上
int i = rs.getInt(1);//得到当前记录的第一个字段(id)的值
String name =rs.getString(2);//得到第二个字段(name)的值
String psw = rs.getString("ppassword");//得到(password)的值
System.out.println(Integer.toString(i)+" "+name+" "+psw);
}
rs.close();//后定义,先关闭
stmt.close();
conn.close();//先定义,后关闭
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zdx276795447
2009-04-29
知道答主
回答量:12
采纳率:0%
帮助的人:12.1万
展开全部
他提示你没有合适的驱动,建议你换个db2java驱动包试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式