国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JDBCTemplate調(diào)用存儲過程

2019-11-11 03:59:58
字體:
供稿:網(wǎng)友
一、調(diào)用無返回值的存儲過程
public class callPRocedure {        private JdbcTemplate jdbcTemplate;        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {        this.jdbcTemplate = jdbcTemplate;        }        public void test(){           this.jdbcTemplate.execute("{call procedureName (?)}");        }      } 二、調(diào)用有返回值的存儲過程(不是結(jié)果集)
public class test {            /**       * 調(diào)用無參的存儲過程(有返回值)       * @return       */      public static int callProcedure() {            String str = (String)jdbcTemplate.execute(new CallableStatementCreator(){                  @Override                  public CallableStatement createCallableStatement(Connection connection) {                        String procedure = "{call PRC_BJ_SYNC_CIRCUIT_DATA_INCRE (?)}";//存儲過程                        CallableStatement cs = null;//創(chuàng)建存儲過程的對象                        try {                              cs = connection.prepareCall(procedure);                              cs.registerOutParameter(1,OracleTypes.VARCHAR);//注冊輸出參數(shù)的類型                        } catch (Exception e) {                              logger.error("call procedure error : " + e);                        }                        return cs;                  }            }, new CallableStatementCallback(){                  @Override                  public Object doInCallableStatement(CallableStatement cs) {                        String CSStr = null;                        try {                              cs.execute();                              csStr = cs.getString(1);//獲取輸出參數(shù)的值                        } catch (Exception e) {                              logger.error("call procedure error : " + e);                        }                        return csStr;//獲取輸出參數(shù)的值                  }});            return Integer.parseInt(str);      }            /**       * 調(diào)用有參的存儲過程(有返回值)       * @return       */      public static int callProcedure() {            String str = (String)jdbcTemplate.execute(new CallableStatementCreator(){                  @Override                  public CallableStatement createCallableStatement(Connection connection) {                        String procedure = "{call PRC_BJ_SYNC_CIRCUIT_DATA_INCRE (?,?)}";//存儲過程                        CallableStatement cs = null;//創(chuàng)建存儲過程的對象                        try {                              cs = connection.prepareCall(procedure);                              cs.setString(1,"value1");//設(shè)置入?yún)⒌闹?                             cs.registerOutParameter(1,OracleTypes.VARCHAR);//注冊輸出參數(shù)的類型                        } catch (Exception e) {                              logger.error("call procedure error : " + e);                        }                        return cs;                  }            }, new CallableStatementCallback(){                  @Override                  public Object doInCallableStatement(CallableStatement cs) {                        String csStr = null;                        try {                              cs.execute();                              csStr = cs.getString(2);//獲取輸出參數(shù)的值                        } catch (Exception e) {                              logger.error("call procedure error : " + e);                        }                        return csStr;//獲取輸出參數(shù)的值                  }});            return Integer.parseInt(str);      }}三、調(diào)用有返回值的存儲過程(是結(jié)果集)
public class test {             List resultList = (List) jdbcTemplate.execute(                 new CallableStatementCreator() {                    public CallableStatement createCallableStatement(Connection con) throws SQLException {                       String storedProc = "{call PRC_BJ_SYNC_CUST_DATA(?,?)}";// 調(diào)用的sql                       CallableStatement cs = con.prepareCall(storedProc);                       cs.setString(1, "p1");// 設(shè)置輸入?yún)?shù)的值                       cs.registerOutParameter(2, OracleTypes.CURSOR);// 注冊輸出參數(shù)的類型                       return cs;                    }                 }, new CallableStatementCallback() {                    public Object doInCallableStatement(CallableStatement cs) throws SQLException,DataaccessException {                       List resultsMap = new ArrayList();                       cs.execute();                       ResultSet rs = (ResultSet) cs.getObject(2);// 獲取游標(biāo)一行的值                       while (rs.next()) {// 轉(zhuǎn)換每行的返回值到Map中                          Map rowMap = new HashMap();                          rowMap.put("id", rs.getString("id"));                          rowMap.put("name", rs.getString("name"));                          resultsMap.add(rowMap);                       }                       rs.close();                       return resultsMap;                    }              });          for (int i = 0; i < resultList.size(); i++) {             Map rowMap = (Map) resultList.get(i);             String id = rowMap.get("id").toString();             String name = rowMap.get("name").toString();             System.out.println("id=" + id + ";name=" + name);          }}
上一篇:HDU 1969 高精度

下一篇:poj 1936 All in All

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平武县| 屯昌县| 恩平市| 汝阳县| 周口市| 东城区| 腾冲县| 阳春市| 成安县| 广元市| 舞阳县| 增城市| 大埔县| 南安市| 莱西市| 河津市| 北川| 中宁县| 镇平县| 阿鲁科尔沁旗| 谢通门县| 大化| 巴林右旗| 乌拉特前旗| 庆阳市| 夏邑县| 清原| 宾川县| 永寿县| 凭祥市| 双江| 武义县| 怀柔区| 出国| 奇台县| 普兰店市| 鄂尔多斯市| 楚雄市| 六枝特区| 迁安市| 高清|