java jdbc 调用db2存储过程 第一节
2011-12-23 11:20
531 查看
转载请注明出处 :http://blog.csdn.net/dongguang1082
最近项目中要用到db2存储过程,以前也接触过一点,但是一知半解没有用到实际的项目中,趁这个机会深入了解一下下。关于连接db2,可以参照/article/8099163.html
创建无参存储过程
调用语句如下
调用存储过程
输入参数存储过程
调用语句
带输入和输出参数存储过程
调用语句
未完待续
最近项目中要用到db2存储过程,以前也接触过一点,但是一知半解没有用到实际的项目中,趁这个机会深入了解一下下。关于连接db2,可以参照/article/8099163.html
调用无参存储过程
创建存储过程语句如下CREATE PROCEDURE "PCCCMALL"."testOne" () SPECIFIC "SQL110512004935601" LANGUAGE SQL NOT DETERMINISTIC EXTERNAL ACTION MODIFIES SQL DATA INHERIT SPECIAL REGISTERS OLD SAVEPOINT LEVEL begin DECLARE member_id varchar(20) DEFAULT 'test'; DECLARE fullname varchar(20) DEFAULT 'test'; FOR v AS cur1 CURSOR FOR SELECT member_id FROM prod_order where order_status='05' DO SET fullname = v.member_id ; insert into member_basic_info(member_id) VALUES (fullname); commit; END FOR; END |
String JDBCDriver = "com.ibm.db2.jcc.DB2Driver"; String DbSource = "jdbc:db2://127.0.0.1:50000/test"; Connection conn =null; CallableStatement cs=null; try { Class.forName(JDBCDriver); conn = DriverManager.getConnection(DbSource, "XXXXX", "XXXXX"); cs = conn.prepareCall("call testOne()"); cs.execute(); conn.close(); }catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally{ if(cs!=null){ try { cs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } |
带有输入参数的存储过程
CREATE PROCEDURE insql (IN inparam varchar(255)) LANGUAGE SQL BEGIN DECLARE v_inparam CHAR(3); SET v_inparam = inparam; CASE v_inparam WHEN 'A00' THEN insert into "TEMP" values('angelo','A00'); WHEN 'B01' THEN insert into "TEMP" values('angelo','B01'); else insert into "TEMP" values('fucking_code','B01'); END CASE ; END ; |
String JDBCDriver = "com.ibm.db2.jcc.DB2Driver"; String DbSource = "jdbc:db2://127.0.0.1:50000/test"; Connection conn =null; CallableStatement cs=null; try { Class.forName(JDBCDriver); conn = DriverManager.getConnection(DbSource, "XXXXX", "XXXXX"); cs = conn.prepareCall("call insql (?)"); cs.setString(1, "A0"); cs.execute(); conn.close(); }catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally{ if(cs!=null){ try { cs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } |
create procedure inoutsql(IN param varchar(255),out outV varchar(255)) language sql begin declare v_param varchar(20); set v_param = param; CASE param when 'a' then set outV = v_param || 'a'; when 'b' then set outV = v_param || 'b'; else set outV = v_param || 'c'; END CASE ; end; |
String JDBCDriver = "com.ibm.db2.jcc.DB2Driver"; String DbSource = "jdbc:db2://127.0.0.1:50000/test"; Connection conn =null; CallableStatement cs=null; try { Class.forName(JDBCDriver); conn = DriverManager.getConnection(DbSource, "XXXXX", "XXXXXX"); cs = conn.prepareCall("call inoutsql(?,?)"); cs.setString(1, "A0"); cs.registerOutParameter(2, Types.VARCHAR); cs.execute(); String xm = cs.getString(2); System.out.println("end:"+xm); conn.close(); }catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }finally{ if(cs!=null){ try { cs.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } |
相关文章推荐
- java调用存储过程(jdbc & hibernate)
- DB2数据库、触发器、存储过程、JAVA数据库链接(JDBC)、调用层接口(CLI)
- java-oop 连接sql数据库的方法和如何调用存储过程以及jdbc事物
- [Java] JDBC 04 TestProc.java (对存储过程进行调用 CallableStatement)
- [Java] JDBC 04 TestProc.java (对存储过程进行调用 CallableStatement)
- java 调用Oracle 存储过程 Jdbc/Hibernate
- Java jdbc调用Oracle数据库存储过程
- java jdbc连接各种数据库的方式大全 批量插入 存储过程调用
- java之jdbc技术之存储过程的创建以及调用
- java中jdbc调用存储过程
- JAVA JDBC 调用存储过程 传参数
- DB2数据库、触发器、存储过程、JAVA数据库链接(JDBC)、调用层接口(CLI)
- java 中 用到的jdbc 调用存储过程,与hibernate 调用存储过程
- javaJDBC(3)-获取主键、调用存储过程
- Java jdbc调用Oracle数据库存储过程
- Java中 jdbc 调用存储过程 用hibernate连接数据库
- Java JDBC CallableStatement调用存储过程
- java代码在ibatis里调用存储过程配置
- 【JDBC】②JDBC 直接调用存储过程
- java调用Oracle用户登录存储过程