麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

JDBCTemplate調用存儲過程

2019-11-11 05:07:49
字體:
來源:轉載
供稿:網友
一、調用無返回值的存儲過程
public class callPRocedure {        private JdbcTemplate jdbcTemplate;        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {        this.jdbcTemplate = jdbcTemplate;        }        public void test(){           this.jdbcTemplate.execute("{call procedureName (?)}");        }      } 二、調用有返回值的存儲過程(不是結果集)
public class test {            /**       * 調用無參的存儲過程(有返回值)       * @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;//創建存儲過程的對象                        try {                              cs = connection.prepareCall(procedure);                              cs.registerOutParameter(1,OracleTypes.VARCHAR);//注冊輸出參數的類型                        } 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);//獲取輸出參數的值                        } catch (Exception e) {                              logger.error("call procedure error : " + e);                        }                        return csStr;//獲取輸出參數的值                  }});            return Integer.parseInt(str);      }            /**       * 調用有參的存儲過程(有返回值)       * @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;//創建存儲過程的對象                        try {                              cs = connection.prepareCall(procedure);                              cs.setString(1,"value1");//設置入參的值                              cs.registerOutParameter(1,OracleTypes.VARCHAR);//注冊輸出參數的類型                        } 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);//獲取輸出參數的值                        } catch (Exception e) {                              logger.error("call procedure error : " + e);                        }                        return csStr;//獲取輸出參數的值                  }});            return Integer.parseInt(str);      }}三、調用有返回值的存儲過程(是結果集)
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(?,?)}";// 調用的sql                       CallableStatement cs = con.prepareCall(storedProc);                       cs.setString(1, "p1");// 設置輸入參數的值                       cs.registerOutParameter(2, OracleTypes.CURSOR);// 注冊輸出參數的類型                       return cs;                    }                 }, new CallableStatementCallback() {                    public Object doInCallableStatement(CallableStatement cs) throws SQLException,DataaccessException {                       List resultsMap = new ArrayList();                       cs.execute();                       ResultSet rs = (ResultSet) cs.getObject(2);// 獲取游標一行的值                       while (rs.next()) {// 轉換每行的返回值到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);          }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色高清免费网站 | 国产精品久久久久久久久粉嫩 | 久久久久久久久久久国产精品 | 少妇色诱麻豆色哟哟 | 久久手机在线视频 | 中文字幕在线免费 | 99精品在线视频观看 | 久久精品国产99国产精品亚洲 | 国产亚洲精品影达达兔 | 日本成人一区二区 | 在线观看福利网站 | 欧美视频一二区 | 国产日韩a| 99在线在线视频免费视频观看 | 性高跟鞋xxxxhd4kvideos | 亚州视频在线 | 黄色毛片a级| 免费视频aaa | 国产成人午夜精品 | 久久免费视频一区 | 羞羞视频免费视频欧美 | 亚洲成人精品久久久 | 中文字幕欧美日韩 | 羞羞视频免费网站 | 欧美成人精品一级 | 狠狠干五月天 | 日本视频免费观看 | 麻豆一区二区99久久久久 | 国产成人在线网站 | 91精选视频在线观看 | 久久久久久久久久久国产精品 | 韩国草草影院 | 一区二区久久精品66国产精品 | 最新一区二区三区 | 日韩色视频在线观看 | 欧美黄色大片免费观看 | 国产中文一区 | 99日韩精品视频 | 日日操夜夜操视频 | 日本大片在线播放 | 国产精品久久久久久久亚洲按摩 |