⑴ java 連接 db2
import java.sql.*;
public class DB2conn{
/**設置參數**/
private static Connection conn = null;
private static Statement stmt = null;
private static ResultSet rs = null;
/**構造方法,鏈接資料庫**/
public DB2conn() {
try{
System.out.println("正在連接資料庫..........");
Class.forName("com.ibm.db2.jcc.DB2Driver");//載入mysql驅動程序類
String url = "jdbc:db2://localhost:50000/toolsdb";//url為連接字元串
String user = "db2admin";//資料庫用戶名
String pwd = "1234";//資料庫密碼
conn=(Connection)DriverManager.getConnection(url,user,pwd);
System.out.println("資料庫連接成功!!!");
}catch(Exception e){
System.out.println(e.getMessage());
//e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
DB2conn a = new DB2conn();//實例化對象,作用是調用構造方法
a.getClass();//無意義
/**查詢語句**/
String sql="select * from person";
stmt = (Statement) conn.createStatement();
stmt.execute(sql);//執行select語句用executeQuery()方法,執行insert、update、delete語句用executeUpdate()方法。
rs=(ResultSet) stmt.getResultSet();
while(rs.next()){ //當前記錄指針移動到下一條記錄上
int i = rs.getInt(1);//得到當前記錄的第一個欄位(id)的值
String name =rs.getString(2);//得到第二個欄位(name)的值
String psw = rs.getString("ppassword");//得到(password)的值
System.out.println(Integer.toString(i)+" "+name+" "+psw);
}
rs.close();//後定義,先關閉
stmt.close();
conn.close();//先定義,後關閉
}
}
⑵ Java連接 遠程 db2資料庫
type2需要有db2客戶端
用catalog命令編目資料庫,demo:
db2
catalog
tcpip
node
node_ntbgm0
remote
10.25.11.11
server
50001
db2
catalog
database
ntbgm0
as
ftdb11
at
node
node_ntbgm0
這個編目完資料庫別名是ftdb11,然後你鏈接裡面的database就是這個別名的名字
要是不要求快之類的,建議用type4方式鏈接,比較簡單
⑶ Eclipse中Java如何連接DB2資料庫
新建java工程
在java代碼中輸入如下代碼
importjava.sql.*;
publicclassDB2conn{
/**設置參數**/
privatestaticConnectionconn=null;
privatestaticStatementstmt=null;
privatestaticResultSetrs=null;
/**構造方法,鏈接資料庫**/
publicDB2conn(){
try{
System.out.println("正在連接資料庫..........");
Class.forName("com.ibm.db2.jcc.DB2Driver");//載入mysql驅動程序類
Stringurl="jdbc:db2://localhost:50000/toolsdb";//url為連接字元串
Stringuser="db2admin";//資料庫用戶名
Stringpwd="1234";//資料庫密碼
conn=(Connection)DriverManager.getConnection(url,user,pwd);
System.out.println("資料庫連接成功!!!");
}catch(Exceptione){
System.out.println(e.getMessage());
//e.printStackTrace();
}
}
publicstaticvoidmain(String[]args)throwsSQLException{
DB2conna=newDB2conn();//實例化對象,作用是調用構造方法
a.getClass();//無意義
/**查詢語句**/
Stringsql="select*fromperson";
stmt=(Statement)conn.createStatement();
stmt.execute(sql);//執行select語句用executeQuery()方法,執行insert、update、delete語句用executeUpdate()方法。
rs=(ResultSet)stmt.getResultSet();
while(rs.next()){//當前記錄指針移動到下一條記錄上
inti=rs.getInt(1);//得到當前記錄的第一個欄位(id)的值
Stringname=rs.getString(2);//得到第二個欄位(name)的值
Stringpsw=rs.getString("ppassword");//得到(password)的值
System.out.println(Integer.toString(i)+""+name+""+psw);
}
rs.close();//後定義,先關閉
stmt.close();
conn.close();//先定義,後關閉
}
}
⑷ java 連接DB2問題解決方案
java連接db2的問題,大家已經都討論過了。看到論壇里又有壇友提問,我也就自己測試總結出來,共享下.JavaSoft將JDBC驅動程序細分為四大類,就是大家經常講的type1,或者type4等.
1.JDBC/ODBC Bridge是一項瘦編譯元件,能將JDBC功能調用轉換為ODBC功能調用。使用JDBC/ODBC Bridge,Java開發人員編 寫的兼容JDBC的應用系統及小型應用程序,可與目前市場上任何ODBC連接解決方案一並使用。既然這種類型使用著不多,我也沒有測試.
2.NativeAPI PartlyJava驅動程序主要將JDBC調用轉換為指定專用資料庫系統的客戶機API,從而利用SQL*NET、I Connect及OpenClient分別連接到Oracle、Informix及Sybase等資料庫上。使用PartlyJava驅動程序的最大優點是,可 利用企業內現有的資料庫中間件。
這種方法就是本機上安裝有db2客戶端,並在本地已經配置好了別名資料庫.使用時注意:
2.1把db2java.zip解壓後,把COM下文件考到項目的當前目錄下.因為注冊驅動要用到的,當然還要注冊db2java.jar
2.2注意資料庫url要正確,因為已經在本地配置了別名資料庫.格式如下jdbc:db2:sample;
String name="COM.ibm.db2.jdbc.app.DB2Driver";
String url="jdbc:db2:ceshi";
3.NetProtocol AllJava驅動程序可將JDBC調用轉換成為不受任何資料庫限制的網路協議,伺服器可把這一網路協議編譯 為資料庫協議。這項JDBC解決方案只有一個單一通用的全Java驅動程序,可連接許多不同的資料庫。採取哪種網路協議作為 中介,取決於JDBC驅動程序供應商。COM.ibm.db2.jdbc.net.DB2Driver
在網上參考n多資料,據說還要伺服器開偵聽埠,我也沒能把資料庫埠打開.也就沒有測試.
4.NativeProtocol AllJava驅動程序是資料庫專用JDBC驅動程序,可將JDBC調用轉換為資料庫可直接使用的網路協議,客戶機因此可直接訪問資料庫伺服器。從根本上說,NativeProtocol AllJava驅動程序能以一個純粹本地的Java JDBC 客戶機,全面取代客戶機API,如SQL*NET、IConnect及OpenClient等。
這是jdbc通用資料庫驅動.連接已經安裝客戶端的別名資料庫沒有問題,直接連接遠程資料庫也沒有問題,不過需要資料庫編碼為GBK
4.0要把db2jcc.jar解壓後的com拷貝到項目的當前目錄下.因為注冊驅動要用到的.當然要注冊db2jcc.jar,db2jcc_license_cisuz.jar
4.1連接已經安裝有客戶端並配置了別名資料庫的格式
String name="com.ibm.db2.jcc.DB2Driver";
String url="jdbc:db2://localhost:50000/ceshi";
4.2直接訪問伺服器資料庫.
如果資料庫編碼不對的話會報Encoding not supported"錯誤!建立Database時,必需選UTF-8的編碼,如果選用Big5時會出現encoding not supported的錯誤。DB2的JDBC 只支持UTF-8的編碼方式。解決方法也就是用不同的字元集創建資料庫.格式同4.1
⑸ java應用程序連接DB2的問題!
找不到類com.ibm.DB2.jcc.DB2Driver
應該 是 Class.forName("com.ibm.DB2.jcc.DB2Driver").newInstance();出的錯,這里給你個建議 Class.forName("com.ibm.DB2.jcc.DB2Driver");即可,不必有 newInstance(),加上newInstance()性能會有影響
看下classpath 構建路徑 是否有 com.ibm.DB2.jcc.DB2Driver 所在jar包
在main方法里找個地方 寫 com.ibm.DB2.jcc.DB2Driver 看是否能找到 此類,如果找不到,在工程classpath文件里加上jar包引入,或者在eclipse的構建路徑里添加jar包
⑹ Java連接 遠程 db2資料庫
你加兩句列印看看.
//這里加入一行
system.out.println("con:"+this.con);
pstmt=this.con.preparestatement(sql)
;
//這里加一版行
system.out.println("pstmt:"+pstmt);
rs=pstmt.executequery();
//這里加一行
system.out.println("rs:"+rs);
看哪個權是null
⑺ Java連接DB2資料庫問題
你加兩句列印看看.
//這里加入一行
System.out.println("con:"+this.con);
pstmt=this.con.prepareStatement(sql) ;
//這里加一行
System.out.println("pstmt:"+pstmt);
rs=pstmt.executeQuery();
//這里加一行
System.out.println("rs:"+rs);
看哪個是null
⑻ Java連接 遠程 db2資料庫 使用的是 type 2 的方法連接
一般都用type4 ,對java兼容好
⑼ JAVA JDBC連接DB2資料庫問題
JAVA連接DB2
/**了解基礎情況**/ 對於Java程序員而言,DB2 提供了兩種應用程序編程介面(API):JDBC 和 SQLJ。
JDBC:
JDBC 驅動程序分為舊的/CLI 驅動程序<db2java.zip>和新的通用 JDBC 驅動程序(Universal JDBC Driver)<db2jcc.jar>。
JDBC 是一個與供應商無關的動態 SQL 介面,該介面通過標准化的 Java 方法向您的應用程序提供數據訪問。
JDBC 類似於 DB2 CLI,因為您無須預編譯應用程序代碼,也無須將軟體包綁定到 DB2 資料庫。
作為一個與供應商無關的標准,JDBC 應用程序提供了更多的可移植性—這是當今異構業務基礎設施所必需的優點。
在執行 JDBC 應用程序期間,驅動程序將針對當前連接的 DB2 資料庫伺服器驗證 SQL 語句。
訪問期間的任何問題都會作為 Java 異常與相應的 SQLSTATE 和 SQLCODE 一起報告給應用程序。
SQLJ:
SQLJ 是一個用於從 Java 應用程序進行數據訪問的標准開發模型。
SQLJ API 是在 SQL 1999 規范中定義的。
新的通用 JDBC 驅動程序在一個實現中同時為 JDBC 和 SQLJ API 提供了支持。
JDBC 和 SQLJ 可以在同一個應用程序中互操作。
SQLJ 提供了獨特的使用靜態 SQL 語句進行開發以及在 DB2 包級別控制訪問的能力。
/**JDBC連接方式分析**/
JDBC 驅動程序體系結構分為四種類型:Type1,Type2,Type3,Type4。
Type1:
驅動程序基於 JDBC-ODBC 橋。
因此 ODBC 驅動程序可以與此類 JDBC 驅動程序(由 Sun 提供)結合起來使用。
IBM 不支持 Type 1 驅動程序,因此它不是推薦的環境。
Type2:
驅動程序依靠特定於操作系統的庫(共享庫)來與 RDBMS 通信。
應用程序將裝入這種 JDBC 驅動程序,而驅動程序將使用共享庫來與 DB2 伺服器通信。
DB2 UDB for Linux, UNIX和 WindowsV8.1 提供了兩種不同的 Type 2 驅動程序:
<1> 舊的/CLI JDBC 驅動程序在文件db2java.zip中提供。
其實現包名稱為COM.ibm.db2.jdbc.app.DB2Driver。
該驅動程序目前已被用於進行 J2EE 認證。
其別名「app 驅動程序」源自於一種觀念及其包名稱,
這種觀念就是:此驅動程序將通過遠程資料庫的本地 DB2 UDB 客戶機執行本地連接。
<2> 通用 JDBC 驅動程序在文件db2jcc.jar中提供。
其實現包名稱為com.ibm.db2.jcc.DB2Driver。
此驅動程序是 DB2 UDB for Linux, UNIX 和 Windows V8.1 中的新功能。
在最初的實現(V8.1)中,此驅動程序用於使用 Type 4 驅動程序體系結構與 DB2 伺服器進行直接的 Java 連接。
在 DB2 V8.1.2 中,您可以在 Type 2 體系結構中使用此驅動程序。
在 Type 2 體系結構中使用此驅動程序的一個主要原因是為了本地應用程序性能和分布式事務支持。
通用 JDBC Type 2 驅動程序分別使用com.ibm.db2.jcc.DB2XADataSource和com.ibm.db2.jcc.DB2ConnectionPoolDataSource來支持分布式事務和連接池。 註:在將來的版本中不會對舊的/CLI Type 2 驅動程序進行增強。
Type3:
驅動程序是一種純 Java 實現,它必須與 DB2 JDBC Applet 伺服器(DB2 JDBC Applet Server)通信才能訪問 DB2 數據。
此類驅動程序旨在使 Java applet 能訪問 DB2 數據源。
常被稱作「網路(net)驅動程序」,它是根據其包名COM.ibm.db2.jdbc.net命名的。DB2 V8.1 支持網路驅動程序,可以將其用於 JDBC 應用程序。
要求db2java.zip驅動程序總是處於與 DB2 Applet 伺服器相同的維護級別。
如果驅動程序在 applet 內使用,這就不是一個問題,因為瀏覽器會在應用程序執行期間下載相應的db2java.zip文件。
許多客戶使用 Type3 驅動程序而不是 Type2 驅動程序,以避免必需的 DB2 客戶機安裝和必需的DB2 CATALOG DATABASE命令,後者用於創建使用舊的/CLI 驅動程序進行 Type 2 連接所必需的資料庫目錄信息。
目前,WebSphere Application Server 和其它 J2EE 伺服器不支持 IBM Type 3 驅動程序,因為該驅動程序不支持分布式事務(JTA)。
將來的版本不會對 Type 3 驅動程序進行增強。
鼓勵使用通用 JDBC Type 4 驅動程序來替代 Type 3 驅動程序。
Type4:
驅動程序是僅用於 Java 的 JDBC 驅動程序,它直接連接到資料庫伺服器。
DB2 UDB for Linux, UNIX 和 Windows V8.1 引入了稱為「通用 JDBC 驅動程序(Universal JDBC driver)」的 Type 4 驅動程序。
通用 JDBC 驅動程序在文件db2jcc.jar中提供。
其實現包名為com.ibm.db2.jcc.DB2Driver。
請注意,通用 Type 2 和通用 Type 4 驅動程序具有相同的實現類名稱。
有兩種方法可以區別 DB2 在內部將實例化哪個驅動程序:
使用連接特性來確定連接是否使用共享庫(Type2),或者驅動程序是否會啟動來自 Java 應用程序的直接連接(Type4)。
重要:就 DB2 UDB V8.1.2 而言,通用 JDBC 驅動程序要求 CLASSPATH 中有許可證 JAR 文件和db2jcc.jar文件。
以下是所需的許可證 JAR 文件:
Cloudscape Network Server V5.1:db2jcc_license_c.jar
DB2 UDB V8 for Linux, UNIX 和 Windows 伺服器:db2jcc_license_su.jar
DB2 UDB for iSeries and z/OS 伺服器(與 DB2 Connect 和 DB2 Enterprise Server Edition 一起提供):db2jcc_license_cisuz.jar ****************************************************************驅動程序類型:db2java.zip, db2jcc.jar
注意:假如你使用db2java.zip,且web伺服器使用Tomcat的話,請將db2java.zip改名為db2java.jar,最好將zip解壓再用jar命令打包,直接改文件類型也行(呵呵,按照jar文件嚴格意義上來講這是不符合文法的<少了描述性文件:MANIFEST.MF>,能用就行)
還有一般情況下:就是使用 db2java.zip的話需要安裝db2客戶端, 使用db2jcc.jar是通過網路直接來連接的無需安裝db2客戶端(假如用在type2上還是要裝客戶端的)type2:
使用<db2java.zip>:
jdbc.driverClassName=COM.ibm.db2.jdbc.app.DB2Driver
jdbc.url=jdbc:db2:dataBaseName
假如你的工具使用的是myeclipse且使用的是tomcat plugin的話,請將db2jdbc.dll 拷貝到 %JAVA_HOME%/bin下,否則不行地啦
<是不是其他類型的使用db2java.zip驅動也有這個問題呢,不知道,沒試過,有空試一下>
使用<db2jcc.jar>:
jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
jdbc.url=jdbc:db2:dataBaseName
type3:
驅動:db2java.zip
jdbc.driverClassName=COM.ibm.db2.jdbc.net.DB2Driver
jdbc.url=jdbc:db2://ip:6789/DBNAME
注意:要在資料庫上執行 db2jstrt 6789 (這句啟動了db2jd進程,6789是默認的伺服器偵聽jdbc2連接的埠,也可以設置成另外的任意不沖突的埠。)
type4:
驅動:db2jcc.jar
資料庫字元集必須設置為utf-8
jdbc.driverClassName=com.ibm.db2.jcc.DB2Driver
jdbc.url=jdbc:db2://ip:port/DBNAME
⑽ java 連接DB2問題
都是用jdbc去連接,需要下載db2的jdbc驅動,然後將jdbc放到項目類庫中去,如果是在J2EE中使用,需要把驅動放到伺服器的lib下。
從詳細的問題描述來看,是應用伺服器和資料庫伺服器之間的網路有問題,請確認主機名或ip地址以及埠號是否正確,還有就是有沒有防火牆之類的。