我的家園

          我的家園

          Mybatis技術(五)Mybatis調用存儲過程

          Posted on 2012-04-15 16:27 zljpp 閱讀(1842) 評論(0)  編輯  收藏

          ?

          ?

          如何使用Mybaits調用數據庫中的存儲過程,下面以Oracle數據庫的為例:

          ?

          1.在數據庫中創建以下的存儲過程:

          create or replace procedure pro_hello(p_user_name in varchar2,p_result out varchar2) is

          begin

          ? p_result := 'hello,' || p_user_name;

          end;

          ?

          2.編寫SQL映射文件mapper.xml

          <select id="proHello" statementType="CALLABLE">

          <![CDATA[

          ??? {call pro_hello (#{p_user_name,mode=IN,jdbcType=VARCHAR},#{result,mode=OUT,jdbcType=VARCHAR})}

          ]]>

          </select>

          ?

          3.編寫JAVA代碼調用存儲過程

          public class ProcedureTest {

          ????????

          ???????? public static void main(String[] args) throws IOException {

          ???????? ?? String resource = "mybatis.cfg.xml";

          ? ? ? ? ? ??Reader reader = Resources.getResourceAsReader(resource);

          ? ? ? ? ? ??SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);

          ???????

          ? ? ? ? ? ??SqlSession session = ssf.openSession();

          ???????

          ? ? ? ? ? ?try {

          ??????? ? ? ? ? ?Map<String, String> param = new HashMap<String, String>();

          ??????? ? ? ? ? ?param.put("p_user_name", "zhangsan");

          ??????? ? ? ? ? ?String returnValue = (String) session.selectOne("User.proHello", param);

          ??????? ? ? ? ? ?System.out.println("message=" + param.get("p_user_name"));

          ??????? ? ? ? ? ?System.out.println("result=" + param.get("result"));

          ??????? ? ? ? ? ?System.out.println("returnValue=" + returnValue);

          ?

          ? ? ? ? ? ?} catch (Exception e) {

          ? ? ? ? ? ? ? ??e.printStackTrace();

          ? ? ? ? ? ?} finally {

          ? ? ? ? ? ? ??session.close();

          ? ? ? ? ??}

          ???????}

          }

          ?

          4.執行Java代碼,控制臺輸出結果如下:

          2012-03-07 20:36:32,406 DEBUG [java.sql.PreparedStatement] -==>? Executing: {call pro_hello(?,?)}

          2012-03-07 20:36:32,406 DEBUG [java.sql.PreparedStatement] -==> Parameters: zhangsan(String)

          message=zhangsan

          ?






          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 元江| 临潭县| 玛多县| 文水县| 舒兰市| 洪洞县| 寻甸| 西平县| 防城港市| 航空| 金华市| 章丘市| 冷水江市| 商水县| 南康市| 义乌市| 东丽区| 崇信县| 新平| 中方县| 辽阳县| 大安市| 武邑县| 马尔康县| 横山县| 陵水| 襄城县| 遵化市| 济宁市| 阳曲县| 安仁县| 娱乐| 双辽市| 丹寨县| 唐山市| 临安市| 高唐县| 鹤庆县| 康马县| 屏东市| 阿拉尔市|