java开发DB2程序

1. JDBC 驱动程序

1.1 DB2 JDBC Type 2 驱动程序

DB2 客户机

不建议使用

COM.ibm.db2.jdbc.app.DB2Driver 调用Class.forName() 方法。

1.2 IBM DB2 通用JDBC 和SQLJ 驱动程序

提供了Type 2 连接性和Type 4 连接性

可以将这个驱动程序用于applet 和应用程序

com.ibm.db2.jcc.DB2Driver 调用Class.forName() 方法。

 

2. 建立数据库连接

import java.sql.*; 头文件

String url = "jdbc:db2:sample"; TYPE 2

String url = "jdbc:db2:sample://localhost:50000"; TYPE4

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

Connection con = DriverManager.getConnection(url);

 

3. Statement 对象

Statement 对象是使用Connection.createStatement() 方法创建的
Statement stmt;
stmt = con.createStatement();
stmt.executeUpdate("DELETE FROM EMPLOYEE WHERE EMPNO = '000099'");
ResultSet rs;
rs = stmt.executeQuery("SELECT EMPNO, LASTNAME FROM EMPLOYEE");
while (rs.next()) {
System.out.println(rs.getString(1) + ", " + rs.getDate(2));
}

 

4. PreparedStatement 对象

PreparedStatement 对象是使用Connection.prepareStatement() 方法创建的
pStmt = con.prepareStatement("UPDATE STAFF SET COMM=? WHERE ID=?");
pStmt.setDouble(1,710.53);
pStmt.setInt(2,350);
pStmt.executeUpdate();

 

5. 提交事务

con.setAutoCommit(true); 自动提交

con.commit(); ...

con.rollback();

执行分布式事务

DB2XADataSource db2ds = new com.ibm.db2.jcc.DB2XADataSource();

 

6.开发SQLJ 应用程序(静态sql)

 

6.1 添加头文件

import sqlj.runtime.*; 头文件

import java.sql.*; 头文件

6.2 建立连接上下文

#sql context Ctx;

String url = " jdbc:db2:sample://localhost:50000"; TYPE 4

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

Ctx connCtx = new Ctx(url,true);

String url = " jdbc:db2:sample”; TYPE 2

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

6.3 发出SQL 语句

String staffJob = "Sales";

#sql [connCtx] {UPDATE STAFF SET COMM=400 WHERE JOB = :staffJob};

 

6.4 编译程序

sqlj DbApp.sqlj

db2sqljcustomize -url jdbc:db2://localhost:50000/sample

-user uid -password pwd

DbApp_SJProfile0.ser

java DbApp

 

7. 错误处理

try {

...

rs = stmt.executeQuery("SELECT ID, NAME FROM STAFF WHERE JOB = 99");

...

}

catch(SQLException sqlEx) {

while(sqlEx != null) {

System.err.println("SQLException information");

System.err.println("Error msg: " + sqlEx.getMessage());

System.err.println("SQLSTATE: " + sqlEx.getSQLState());

System.err.println("Error code: " + sqlEx.getErrorCode());

sqlEx=sqlEx.getNextException();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值