通过jdbc如何连接远程数据库?(不使用odbc桥)

elabs 2002-10-15 01:53:46
我现在想要连接远程计算机上的数据库,如db2
但如果不通过odbc如何连接啊。
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
String url = "jdbc:db2:100.100.100.1/newdb";
Connection con = DriverManager.getConnection(url,"use","pass");

以上的写法对吗
但一对数据库进行操作就报错
再有谁知道DB2的服务端口号是多少。

100分不够还可以另开帖子给。
...全文
156 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ChDw 2002-10-15
  • 打赏
  • 举报
回复
默认端口应该是6789吧,但是我不用填的啊。

我正常启动了远程的DB2 JDBC Applet Server就可以了
elabs 2002-10-15
  • 打赏
  • 举报
回复
结帐喽,谢谢大家的帮助。问题解决了,db2的jdbc驱动是有但版本是1.0所以不支持,升级到2.0可以了。

放分!!!!!!!!!!!
elabs 2002-10-15
  • 打赏
  • 举报
回复
端口配置以及服务已经好了。
我把端口设置到50000,已经不在出现下面错误
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0615E 从套接字接收时出错,
服务器不响应。SQLSTATE=08S01

但对数据库操作依然不成功出现下边错误
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0621E “JDBC 服务器”配置不受支持。
Joeblackyang 2002-10-15
  • 打赏
  • 举报
回复
这个问题是这样的:

jdbc:db2://"+server+":"+port+"/"+databaseName 中的port是要用db2的命令db2jstrt来启动的,比如进到C:\Program Files\SQLLIB\bin,输入命令:
db2jstrt 11111,然后再执行你的程序就可以了。

java实例(提示:参数server可写IP也可写机器名,port必须是db2jstrt启动的端口号;另外我这里使用sample数据库,你只要换成你的数据库名即可):

import java.sql.*;

public class db2net {

static {
try {
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}


public static void main(String[] args) {
Connection con;
try {
// get parameter values from the html page
String server = "9.185.25.113";//getParameter("server");
String port = "11111";//getParameter("port");

// construct the URL ( sample is the database name )
String url = "jdbc:db2://"+server+":"+port+"/sample";

String userid = "administrator";//getParameter("userid");
String password = "123456";//getParameter("password");

// connect to database with userid and password
con = DriverManager.getConnection(url, userid, password );


// retrieve data from database
System.out.println("First, let's retrieve some data from the database...");

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from employee");
System.out.println("Received results:");

// display the result set
// rs.next() returns false when there are no more rows
int i = 0;
while (rs.next() && (i<2)) {
i++;
String a= rs.getString(1);
String str = rs.getString(2);
String oneLine = " empno= " + a + " firstname= " + str;
System.out.println(oneLine);

}
stmt.close();

// update the database
System.out.println("Now, update the database...");
stmt = con.createStatement();
int rowsUpdated = stmt.executeUpdate("UPDATE employee set firstnme = 'SHILI' where empno = '000010'");

// display the number of rows updated
String msg = "Updated " + rowsUpdated;

if (1 == rowsUpdated)
msg = msg +" row.";
else
msg = msg +" rows.";
System.out.println(msg);

stmt.close();
} catch( Exception e ) {
e.printStackTrace();
}
}
}
tanghuan 2002-10-15
  • 打赏
  • 举报
回复
你要在你数据库服务器上启动JDBC服务

db2jstrt 端口 (不给是6789)
远程使用驱动:COM.ibm.db2.jdbc.net.DB2Driver.

客户端需要把驱动程序包放在CLASSPATH中

一切就可以了

elabs 2002-10-15
  • 打赏
  • 举报
回复
to ChDw(米)
我的DB2服务器已经启动DB2 JDBC Applet Server服务
但端口号如何设置啊(是不是有固定的)

再有下面是什么错误啊
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0621E “JDBC 服务器”配置不受支持。
elabs 2002-10-15
  • 打赏
  • 举报
回复
端口号是50002或50000都不对啊
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0615E 从套接字接收时出错,
服务器不响应。SQLSTATE=08S01
elabs 2002-10-15
  • 打赏
  • 举报
回复
to CitySir(豆豆)
你的写法没错但我这一操作就出错就是我上边写的那样
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0621E “JDBC 服务器”配置
不受支持。

to pzl686(阿虎)
我这已经有db2的驱动了
对本地数据库操作已经成功

to kevin263(kevin)
强烈关注你说的db2 url:jdbc:db2://hostname:50002/database
其中的端口号50002是DB2中设置的还是它默认的我按那个号码好象不对啊
再有上边出的错误是什么意思啊


forjie 2002-10-15
  • 打赏
  • 举报
回复
db2 for nt得端口号是50000
ChDw 2002-10-15
  • 打赏
  • 举报
回复
用这个是没有问题的:COM.ibm.db2.jdbc.net.DB2Driver

关键是你远程的DB2服务器没有启动DB2 JDBC Applet Server服务

如果你要用COM.ibm.db2.jdbc.app.DB2Driver 好像是需要使用DB2客户端的
kevin263 2002-10-15
  • 打赏
  • 举报
回复
db2 url:jdbc:db2://hostname:50002/database
如果在数据库在本机url可以写成:jdbc:db2:database.
另外确认db2驱动的zip文件包含在classpath中
pzl686 2002-10-15
  • 打赏
  • 举报
回复
是不是需要db2驱动程序
CitySir 2002-10-15
  • 打赏
  • 举报
回复
下面代码能连上SQL Server,DB2应该差不多吧,改个url就行了。
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url = "jdbc:microsoft:sqlserver://" + IP地址+ ";databasename=" + 数据库名;

try
{
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, 数据库用户名,用户密码);
}
catch(ClassNotFoundException cnfe) {
throw new ClassNotFoundException("不能找到Microsoft SQL Server数据库的驱动程序 ";
}
catch (SQLException sqle)
{
System.out.println(sqle);
throw new SQLException("不能连接到Microsoft SQL Server数据库 ");
}
elabs 2002-10-15
  • 打赏
  • 举报
回复
而且
COM.ibm.db2.jdbc.app.DB2Driver 是给 applications; COM.ibm.db2.jdbc.net.DB2Driver 是给 applets
我的程序不是applets
elabs 2002-10-15
  • 打赏
  • 举报
回复
COM.ibm.db2.jdbc.net.DB2Driver

这个我也试了不行啊下面是错误
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver] CLI0621E “JDBC 服务器”配置
不受支持。
at COM.ibm.db2.jdbc.net.SQLExceptionGenerator.check_return_code(SQLExcep
tionGenerator.java:347)
at COM.ibm.db2.jdbc.net.DB2Connection.SQLConnect(DB2Connection.java:385)

at COM.ibm.db2.jdbc.net.DB2Connection.SQLConnect(DB2Connection.java:307)

at COM.ibm.db2.jdbc.net.DB2Connection.create(DB2Connection.java:292)
at COM.ibm.db2.jdbc.net.DB2Connection.<init>(DB2Connection.java:213)
at COM.ibm.db2.jdbc.net.DB2Driver.connect(DB2Driver.java:219)
at java.sql.DriverManager.getConnection(DriverManager.java:515)
at java.sql.DriverManager.getConnection(DriverManager.java:174)
at OpenDB.Connect(OpenDB.java:44)
at OpenDB.main(OpenDB.java:56)
ChDw 2002-10-15
  • 打赏
  • 举报
回复
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver");
String url = "jdbc:db2://server/db";
Connection con = DriverManager.getConnection(url,"use","pass");

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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