目前做的项目,要把Excel文件中的数据更新到DB2数据库中。就写了个存储过程,通过JAVA调用这个DB2存储过程。如下:
JAVA方法
/** * 更新用户表 * * @param userId * @param userName * @return */ public void updateDb2Data(List dataList) { System.out.println("UpdateDb2DataDB-->updateDb2Data-->Start."); CallableStatement stmt = null; try { stmt = conn.prepareCall("{call WTMS.UPDATE_UPDATEDB2DATA(?,?,?)}"); for (UpdateDb2DataStruct struct : dataList) { int condIndex = 1; stmt.setString(condIndex++, struct.getUserId()); stmt.setString(condIndex++, struct.getUserName()); stmt.registerOutParameter(condIndex++, Types.VARCHAR); stmt.execute(); String errorMessage = stmt.getString(3); // 3表示,输出函数位于此存储过程参数列表第三个 if (errorMessage != null && !"".equals(errorMessage)) { System.out.println("errorMessage="+errorMessage); } } conn.commit(); } catch (SQLException e) { try { conn.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } System.out.println(e.getSQLState()); e.printStackTrace(); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } System.out.println("UpdateDb2DataDB-->updateDb2Data-->End."); } [/code] 存储过程 [code lang="sql"] CREATE OR REPLACE PROCEDURE UPDATE_UPDATEDB2DATA ( IN P_USERID VARCHAR (17), IN P_USERNAME VARCHAR (20), OUT P_ERROR VARCHAR (1000)) SPECIFIC UPDATE_UPDATEDB2DATA DYNAMIC RESULT SETS 1 F1: BEGIN --具体功能代码省略了 SET P_ERROR = P_USERID || ',' || P_USERNAME; END
记录下来,作为备忘!
这是一个不错的网站,希望能加入。谢谢。
多谢多谢,刚好看到这个,感谢站长分享.
很高兴,我想写的东西能帮到你!
打个酱油思密达
黄师塔前江水东,
春光懒困倚微风。
医生:“消除你多余脂肪的唯一方法便是运动–尽量地运动。”
甲:“胡说!我太太每天都说个不停,可是她的下巴却一直是两层的。”
有道理,我试试看