我用以下语句访问数据库,会报错误。我想是驱动没弄好,但不知道怎么弄,各位大哥帮帮忙。谢了。顺便帮忙看看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)
解决方案 »
- java发声程序,可以调节频率,音量
- 这样的小问题很简单!!我就是看不明白!帮个忙!
- [请教]URLConnection,HttpURLConnection,HttpsURLConnection之间的区别是什么?
- 各位很急啊,一家公司叫我明天去笔试,考java ,请问他们可能会考些什么内容?
- 我用Socket类写了一个服务器的接收端,请问怎么可以获得本机的IP?
- 为什么我这段代码输出一直是9不是0123456789
- 哪位高手用过IBM MQ, 有什么看法?
- 难!难于上青天!记录几千万条,请问有什么好的分页办法,谢谢
- Exception occurred during event dispatching违例该怎么处理呀?
- 求正则大神帮写个正则表达式
- 关于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";