String url="jdbc:db2://"+server+":"+port+"/db2/lance";
---->
String url="jdbc:db2://"+server+":"+port+"/lance";端口是5000还是60000?

解决方案 »

  1.   

    谢谢夸奖,我没做过jsp与db2连接的,但是我相信大家都会仔细检查程序的(如果你想做专业的程序员)
      

  2.   

    把你的客户端环境和服务器端环境贴出来http://www-106.ibm.com/developerworks/db2/library/techarticle/0301chong/0301chong2.html
      

  3.   

    我以前写的程序可以连接DB2的,不过我想让程序不用设置ODBC,直接和服务器连接。
    这样可以更好些
      

  4.   

    以前用的是db2 7.2不知道8.1有什么不同,连接远程的时候,如果操作系统语言不一样也是连不通,首先查一下SQLSTATE=08S01是什么错。不过多半是String url="jdbc:db2://"+server+":"+port+"/db2/lance";错了,为什么要加/db2/呢?
      

  5.   

    IBM 给的解释,我没看懂
    db2 => 08S01 ?
    DB21034E  该命令被当作 SQL
    语句来处理,因为它不是有效的“命令行处理器”命令。在 SQL 处理期间,它返回:
    SQL1024N  数据库连接不存在。  SQLSTATE=08003
      

  6.   

    db2 => ? 08S01
    DB21050E  "08S01" 不是有效的 SQLSTATE。
      

  7.   

    如果你的数据库的名字叫lance,那么把url改成下面的试试看
    jdbc:db2://192.168.12.41:6789/lance从你的错误信息可以看出你是在下面两行代码中的一样出错
    Statement stmt=conn.createStatement(); 
    ResultSet rs=stmt.executeQuery(sql); 你可以写一个控制台程序进行调试。
      

  8.   

    还是不行啊
    我用ODBC操纵DB2的结果:(实验环境)
    first : 1 second : jimmy 
    first : 2 second : jimmy2 
    first : HIHIGO90 second : HIHIGO90 
    first : uiuiu second : ladkhj 
    first : u1iuiu second : la1dkhj 你给的分析,我自己知道的啊。
    所以我加了
    out.println("jimmy1"),out.println(url)和out.println("jimmy2")啊问题是该写些什么啊!
      

  9.   

    你的分析还是错的,应该是
    Connection conn= DriverManager.getConnection(url,user,password);
    出错。
    因为jimmy1没出来。
    DB2和JSP我还是有一点感性认识的。 
      

  10.   

    try{
         ......
       }
    catch(SQLException se){
       out.println("jimmy3");
       se.printStackTrace(out);
    }
    catch(Exception e){
         out.println("jimmy2");
         out.println(e.toString());
    }
    肯定是url写错了,按道理写成jdbc:db2://192.168.12.41:6789/lance就可以了,lance是你的数据库的名字,这个我以前试过的,还有就是db2java.zip有没有放到classpath?还有可能默认的是jdbc1.0,要使用jdbc2.0,还要在db2的安装目录的java*(具体要看)目录下执行使用的jdbc2.0的安装程序
      

  11.   

    我已经让程序返回URL了
    out.println(url);
    Connection conn= DriverManager.getConnection(url,user,password)
    这句是连接错误。
    lance 是实验数据库
    db2java.zip已经改为db2java.jar了
    肯定是对的,因为ODBC能够运行。
    我安装的DB2等软件都是最新的。
    而且JAVA的目录中是没安装程序。
    请问如何安装?谢谢
      

  12.   

    url应该为:
    jdbc:db2://192.168.12.41:6789/lance
    已经测试过,连接成功!
      

  13.   

    没成功,我还是不明白啊!默认设置端口是50000啊,我改为了60000啊。
    请帮忙,谢谢!
    实验环境如下:
    db2 =>  LIST DATABASE DIRECTOry
     系统数据库目录
     目录中的条目数 = 1
    数据库 1 输入:
     数据库别名                      = LANCE
     数据库名                        = LANCE
     数据库驱动器                    = C:\DB2
     数据库发行版级别                                        = a.00
     注释                            = lance
     目录条目类型                    = 间接
     目录数据库分区号                  = 0C:\Program Files\IBM\SQLLIB\BIN>db2set -all
    [e] DB2PATH=C:\Program Files\IBM\SQLLIB
    [i] DB2ACCOUNTNAME=JIMMY\db2admin
    [i] DB2INSTOWNER=JIMMY
    [i] DB2PORTRANGE=60001:60004
    [i] DB2INSTPROF=C:\PROGRA~1\IBM\SQLLIB
    [i] DB2COMM=TCPIP
    [g] DB2SYSTEM=JIMMY
    [g] DB2PATH=C:\Program Files\IBM\SQLLIB
    [g] DB2INSTDEF=DB2
    [g] DB2ADMINSERVER=DB2DAS00
      

  14.   

    谢谢大家,我终于成功了。
    我先把用户权限升到最大,让后将端口从60000->6789。
    数据显示成功。
    jdbc:db2://192.168.12.41:6789/lance jimmy1 
    first : jimmy second : jimmy 
    first : hihigo second : jimmy 
    first : hihigo second : jimmy 
    first : kdfjdkj second : adfdfdf不过我还是有点疑惑,6789到底是什么端口啊?
    能不能自己手动改端口啊?想改50000一样?
    请高手帮忙。
      

  15.   

    我不清楚6789是什么端口,但是webshpere带的例子用的就是这个端口。