用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方式链接,比较简单
新建java工程
在java代码中输入如下代码
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的问题,大家已经都讨论过了。看到论坛里又有坛友提问,我也就自己测试总结出来,共享下.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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)