设为首页 收藏本站
查看: 1175|回复: 0

[经验分享] Java连接DB2

[复制链接]

尚未签到

发表于 2016-11-12 10:22:52 | 显示全部楼层 |阅读模式
  这里先说一下,DB2和JDBC驱动的问题,这个是摘来的。

Java代码 DSC0000.gif   DSC0001.png DSC0002.gif





  • 解读java连接db2的四种类型   
  •   

  • 第一种:目前IBM一直都没有提供 TYPE 1的JDBC驱动程序.    
  •   

  • 第二种:类型2驱动:COM.ibm.db2.jdbc.app.DB2Driver, 该驱动也位于包 db2java.zip中,JDK必须能访问db2的db2jdbc.dll等。    
  •   
  • 用法:    

  • Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();    

  • String url = "jdbc:db2:sample";    
  • Connection con = DriverManager.getConnection(url, user, password);    
  •   
  •   

  • TYPE 2 驱动使 Java 应用程序通过JDBC调用DB2.对 DB2 JDBC type 2 driver 的调用被转换成 Java 本地方法.Java 使用这种驱动程序的应用程序必须运行在一个 DB2 客户机上,JDBC 请求通过这个客户机转到 DB2 服务器.在使用 DB2 JDBC 应用程序驱动程序访问 DB2 UDB for iSeries 数据源或者 DB2 for OS/390 或 z/OS 环境中的数据源之前,必须安装 DB2 Connect Version 8.DB2 JDBC type 2 driver 支持 JDBC 1.2 规范中描述的大部分 JDBC 和 SQLJ 函数,并且支持 JDBC 2.0 规范中描述的一些函数.    
  •   

  • 第三种:类型3驱动:COM.ibm.db2.jdbc.net.DB2Driver, 该驱动位于包 db2java.zip中.    
  •   
  • 用法:    

  • Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();    

  • //目标DB2系统侦听该服务于默认端口6789    

  • //需要在数据库服务器端启动db2jstrt命令,来开启网络端口    

  • String url = "jdbc:db2://host:6789:SAMPLE";    
  • Connection con = DriverManager.getConnection(url, user, password);    
  •   
  •   

  • 第四种:类型4驱动:com.ibm.db2.jcc.DB2Driver, 该驱动位于包db2jcc.jar中.    
  •   

  • 这种情况:数据库的编码为utf-8,否则报错!    
  •   
  • 用法:    

  • Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();    

  • String url = "jdbc:db2://host:50000/SAMPLE";    
  • Connection con = DriverManager.getConnection(url, user, password);   



解读java连接db2的四种类型
第一种:目前IBM一直都没有提供 TYPE 1的JDBC驱动程序.
第二种:类型2驱动:COM.ibm.db2.jdbc.app.DB2Driver, 该驱动也位于包 db2java.zip中,JDK必须能访问db2的db2jdbc.dll等。
用法:
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
String url = "jdbc:db2:sample";
Connection con = DriverManager.getConnection(url, user, password);

TYPE 2 驱动使 Java 应用程序通过JDBC调用DB2.对 DB2 JDBC type 2 driver 的调用被转换成 Java 本地方法.Java 使用这种驱动程序的应用程序必须运行在一个 DB2 客户机上,JDBC 请求通过这个客户机转到 DB2 服务器.在使用 DB2 JDBC 应用程序驱动程序访问 DB2 UDB for iSeries 数据源或者 DB2 for OS/390 或 z/OS 环境中的数据源之前,必须安装 DB2 Connect Version 8.DB2 JDBC type 2 driver 支持 JDBC 1.2 规范中描述的大部分 JDBC 和 SQLJ 函数,并且支持 JDBC 2.0 规范中描述的一些函数.
第三种:类型3驱动:COM.ibm.db2.jdbc.net.DB2Driver, 该驱动位于包 db2java.zip中.
用法:
Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance();
//目标DB2系统侦听该服务于默认端口6789
//需要在数据库服务器端启动db2jstrt命令,来开启网络端口
String url = "jdbc:db2://host:6789:SAMPLE";
Connection con = DriverManager.getConnection(url, user, password);

第四种:类型4驱动:com.ibm.db2.jcc.DB2Driver, 该驱动位于包db2jcc.jar中.
这种情况:数据库的编码为utf-8,否则报错!
用法:
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
String url = "jdbc:db2://host:50000/SAMPLE";
Connection con = DriverManager.getConnection(url, user, password);

  




Java代码  





  •   
  • DB2的JDBC驱动   
  •   
  • 在Java程序中连接DB2需要使用到JDBC驱动,一般情况下,大家都在会项目工程中引入驱动程序包 db2java.zip或者db2jcc.jar。db2java.zip中包含了驱动COM.ibm.db2.jdbc.app.DB2Driver和 COM.ibm.db2.jdbc.net.DB2Driver;db2jcc.jar中包含了驱动 com.ibm.db2.jcc.DB2Driver。   
  •   
  • COM.ibm.db2.jdbc.app.DB2Driver是Type2的驱动,它的URL:jdbc:db2:<databasename>; Type2的驱动需要在本地安装DB2的客户端程序,<databasename>就是你在DB2客户端程序里面设置的Database名称。   
  •   
  • COM.ibm.db2.jdbc.net.DB2Driver是Type3的驱动,它的 URL:jdbc:db2:<ServerIP>:<databasename>;Type3的驱动不需要在本地安装客户端程序,但是在Database Server或者Database middleware上需要安装转换程序。COM.ibm.db2.jdbc.net.DB2Driver先连接到转换程序,然后再转发给DB2 server.   
  •   

  • com.ibm.db2.jcc.DB2Driver既是Type2又是Type4的驱动。如果URL为 jdbc:db2:<databasename>, 那就是Type2类型;如果url为jdbc:db2://<ServerIP>:<port> /<databasename>, 那就是Type4类型。Type4类型指DB Server内建了Java支持,不需要安装任何额外程序。   
  •   

  • 可以根据DB2的版本以及用户需求来选择使用哪种驱动。V8.1之前的DB2只支持db2java.zip中的驱动程序;V8.1.2及以后的DB2支持db2java.zip和db2jcc.jar中所有驱动。   
  • Type4的驱动是最简便的,不需安装任何程序,而且现在大部分DB都内建了Java支持;Type2的驱动可以提高本地连接效率,但是需要安装客户端程序;这也是两种最常用的驱动程序。   
  •   

  • 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mayabin/archive/2010/12/08/6063019.aspx  



DB2的JDBC驱动
在Java程序中连接DB2需要使用到JDBC驱动,一般情况下,大家都在会项目工程中引入驱动程序包 db2java.zip或者db2jcc.jar。db2java.zip中包含了驱动COM.ibm.db2.jdbc.app.DB2Driver和 COM.ibm.db2.jdbc.net.DB2Driver;db2jcc.jar中包含了驱动 com.ibm.db2.jcc.DB2Driver。
COM.ibm.db2.jdbc.app.DB2Driver是Type2的驱动,它的URL:jdbc:db2:<databasename>; Type2的驱动需要在本地安装DB2的客户端程序,<databasename>就是你在DB2客户端程序里面设置的Database名称。
COM.ibm.db2.jdbc.net.DB2Driver是Type3的驱动,它的 URL:jdbc:db2:<ServerIP>:<databasename>;Type3的驱动不需要在本地安装客户端程序,但是在Database Server或者Database middleware上需要安装转换程序。COM.ibm.db2.jdbc.net.DB2Driver先连接到转换程序,然后再转发给DB2 server.
com.ibm.db2.jcc.DB2Driver既是Type2又是Type4的驱动。如果URL为 jdbc:db2:<databasename>, 那就是Type2类型;如果url为jdbc:db2://<ServerIP>:<port> /<databasename>, 那就是Type4类型。Type4类型指DB Server内建了Java支持,不需要安装任何额外程序。
可以根据DB2的版本以及用户需求来选择使用哪种驱动。V8.1之前的DB2只支持db2java.zip中的驱动程序;V8.1.2及以后的DB2支持db2java.zip和db2jcc.jar中所有驱动。
Type4的驱动是最简便的,不需安装任何程序,而且现在大部分DB都内建了Java支持;Type2的驱动可以提高本地连接效率,但是需要安装客户端程序;这也是两种最常用的驱动程序。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/mayabin/archive/2010/12/08/6063019.aspx

  




Db2代码  





  • create database express;   
  •   
  • use express;   
  •   
  • create table vote(   
  • id integer primary key,   

  • name varchar(200),   
  • num integer   
  • );  



create database express;
use express;
create table vote(
id integer primary key,
name varchar(200),
num integer
);

  

下面是Java连接DB2的代码:

Java代码  





  • package com.java.call.db;   
  •   

  • import java.sql.Connection;   

  • import java.sql.DriverManager;   

  • import java.sql.ResultSet;   

  • import java.sql.Statement;   
  •   

  • public class CallDb {   

  •     public static void main(String args[]){   

  •         Connection conn=null;   

  •         Statement stmt=null;   

  •         ResultSet rs=null;   

  •         try{   

  •             Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();   

  •             conn=DriverManager.getConnection("jdbc:db2://localhost:50000/express","acer","abin");   
  •             stmt=conn.createStatement();   

  •             rs=stmt.executeQuery("select * from vote");   

  •             while(rs.next()){   

  •                 System.out.println(rs.getString(1));   

  •                 System.out.println(rs.getString(2));   

  •                 System.out.println(rs.getString(3));   
  •             }   

  •         }catch(Exception e){   
  •             e.printStackTrace();   
  •         }   
  •     }   
  •        
  •   
  • }  



package com.java.call.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class CallDb {
public static void main(String args[]){
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
try{
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
conn=DriverManager.getConnection("jdbc:db2://localhost:50000/express","acer","abin");
stmt=conn.createStatement();
rs=stmt.executeQuery("select * from vote");
while(rs.next()){
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
System.out.println(rs.getString(3));
}
}catch(Exception e){
e.printStackTrace();
}
}

}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-299242-1-1.html 上篇帖子: db2 管理指南 下篇帖子: DB2版本对比
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表