我用以下语句访问数据库,会报错误。我想是驱动没弄好,但不知道怎么弄,各位大哥帮帮忙。谢了。顺便帮忙看看url="jdbc:db2://GDB-TS/50000:edspdata"这句话有没有错误,我是访问远程的数据库。
import java.io.*;
import java.lang.*;
import java.util.*;
import java.sql.*;public class Testdb { public Testdb() {
}
public static void main(String[] args) {
String url="jdbc:db2://GDB-TS/50000:edspdata";
try {
System.out.println("11");
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance(); (这句就出错了)
System.out.println("22");
Connection con = DriverManager.getConnection(url, "etlrunner", "gdb123");
System.out.println("33");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT distinct etbl FROM ctrl_time");
System.out.println("dning");
String s = rs.getString("etbl");
System.out.println(s);
} catch(Exception e){
System.out.println("tt");
}
}
}错误代码如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError: SQLAllocEnv
at COM.ibm.db2.jdbc.app.DB2Driver.SQLAllocEnv(Native Method)
at COM.ibm.db2.jdbc.app.DB2Driver.<init>(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Driver.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at Testdb.main(Testdb.java:16)
import java.io.*;
import java.lang.*;
import java.util.*;
import java.sql.*;public class Testdb { public Testdb() {
}
public static void main(String[] args) {
String url="jdbc:db2://GDB-TS/50000:edspdata";
try {
System.out.println("11");
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance(); (这句就出错了)
System.out.println("22");
Connection con = DriverManager.getConnection(url, "etlrunner", "gdb123");
System.out.println("33");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT distinct etbl FROM ctrl_time");
System.out.println("dning");
String s = rs.getString("etbl");
System.out.println(s);
} catch(Exception e){
System.out.println("tt");
}
}
}错误代码如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError: SQLAllocEnv
at COM.ibm.db2.jdbc.app.DB2Driver.SQLAllocEnv(Native Method)
at COM.ibm.db2.jdbc.app.DB2Driver.<init>(Unknown Source)
at COM.ibm.db2.jdbc.app.DB2Driver.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at Testdb.main(Testdb.java:16)
解决方案 »
- AES大文件如何加密
- 网页上弹出模态窗口,在模态窗口上再弹出window.open(),修改ie设置,加入信任站点,模态窗口地址栏可以没有,但open的窗口地址栏还是存在……
- 刚学正则表达式求助。
- 奇了,怪了,居然写入文件总是有一部乱码。关于filewriter.
- 关于netmeeting求助
- Robot类怎么输出"左右括号"和"单引号",按JDK帮助文档上的老报错,不知道为什么?谢谢
- 如何让servlet每天定时运行呢?
- 如何编写java bean的windows下的makefile文件,高手请支招。
- 问一个关于线程同步的问题在线等
- zxing,qrcode对二维码识别的兼容性问题
- 关于Package的简单问题???????????????????????????????
- 求助! JFileChooser中文件保存类型的一个问题
因此,如果你用这种方法连接DB2必须安装客户端程序。
解决方法:
1、使用app驱动,安装客户端
2、使用net驱动,COM.ibm.db2.jdbc.net.DB2Driver
当然,还要注意使用与服务器版本一致的jdbc驱动
如果使用oci驱动,则需要安装ora客户端,
如果使用纯java的jdbc就不用安装了。
一般来说,使用jni方式通过客户端程序连接数据库速度要快一些。但不方便。
Driver d = (Driver)Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();取得一个驱动。
如果只是往JVM中加载驱动直接Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");就行了
-----------
String url="jdbc:db2://GDB-TS/50000:edspdata";
URL有问题,正确的是String url="jdbc:db2://GDB-TS:50000/edspdata";