代码如下(eclipse,JBuilder):
import java.sql.*;public class ConnDB { public static void main(String[] args) {
try {
Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance(); String url
                                ="jdbc:sybase:Tds:192.168.168.9:4100";

System.out.println("Getting Connection");
Connection conn = DriverManager.getConnection(url, "sa", "");

if ( conn != null )
conn.close();
} catch ( ClassNotFoundException ex ) {
System.err.println(ex);
} catch ( SQLException e ) {
System.out.println("Database access failed " + e);
} catch (InstantiationException e) {
// 
e.printStackTrace();
} catch (IllegalAccessException e) {
// 
e.printStackTrace();
}
}
}输出:
Getting Connection
DriverManager.getConnection("jdbc:sybase:Tds:132.96.129.3:4100")
    trying driver[className=com.sybase.jdbc3.jdbc.SybDriver,com.sybase.jdbc3.jdbc.SybDriver@f4a24a]
getConnection returning driver[className=com.sybase.jdbc3.jdbc.SybDriver,com.sybase.jdbc3.jdbc.SybDriver@f4a24a]
java.sql.SQLException: JZ006: 捕获到 IO 例外:java.io.IOException: JZ0EM: 数据结束。
at com.sybase.jdbc3.jdbc.ErrorMessage.raiseError(ErrorMessage.java:559)
at com.sybase.jdbc3.jdbc.ErrorMessage.raiseErrorCheckDead(ErrorMessage.java:863)
at com.sybase.jdbc3.tds.Tds.handleIOE(Tds.java:3791)
at com.sybase.jdbc3.tds.Tds.handleIOE(Tds.java:3736)
at com.sybase.jdbc3.tds.Tds.nextResult(Tds.java:2234)
at com.sybase.jdbc3.tds.Tds.logout(Tds.java:741)
at com.sybase.jdbc3.jdbc.SybConnection.close(SybConnection.java:1158)
at ConnDB.main(ConnDB.java:41)
SQLException: SQLState(JZ006)请问这是什么问题?
用JBuilder的Database pilot可以连接到,并且能读出数据库的表。

解决方案 »

  1.   

    小弟我也不太懂哦!
    我学JAVA 不久
      

  2.   

    驱动应该没有问题,我试过下面的可以正确运行。
    import java.sql.*;public class ConnDB { public static void main(String[] args) {
    try {
    Class c = Class.forName("com.sybase.jdbc3.jdbc.SybDriver");
                               System.out.println("Loaded " + c);
    } catch ( ClassNotFoundException ex ) {
    System.err.println(ex);
    }
    }
    }