天下之事,必先处之难,而后易之。
君临
知我者谓我心忧,不知我者谓我何求

1、在数据库中创建存储过程

    create or replace procedure p_proc
     is
    begin
        insert into testTable (id,name,age) values(seq_getid.nextval,'tiger','25');
   end p_proc;

2、在Hibernate中的调用

public    void    insertInfo()
  {
    
    Session ses =  HibernateSessionFactory.getSession();   

    try{    
        Connection conn = ses.connection();        
        conn.setAutoCommit(false);    
        String proc="{Call p_proc()}";    
        CallableStatement st = conn.prepareCall(proc);    
        st.executeUpdate();    
        conn.commit();    
        st.close();
        conn.close();
        ses.close();
    }catch(Exception e){    
        e.printStackTrace();    
    }    
}

3、方法封装

    public void callProcedure(String procString,List<Object> params) throws Exception { 
        CallableStatement stmt = null; 
       try { 
           stmt = this.getSession().connection().prepareCall(procString); 
           if (params != null){ 
              int index = 1; 
               for (Object obj : params) { 
                   if (obj != null) { 
                       stmt.setObject(idx, obj); 
                   } else { 
                       stmt.setNull(idx, Types.NULL); 
                   } 
                   index++; 
               } 
           } 
           stmt.execute(); 
       } catch (SQLException e) { 
           e.printStackTrace(); 
           throw new Exception("调用存储过程的时候发生错误[sql = " + procString + "]", e); 
            
       } 
   } 

4、调用方式

不带参数的调用:

view plaincopy to clipboardprint?

    try { 
        this.callProcedure("{call hdssh.testProc}", params); 
    } catch (Exception e) {  
        throw new Exception(e.getMessage()); 
    } 

    try {
      this.callProcedure("{ call hdssh.testProc}", params);
    } catch (Exception e) {
       throw new Exception(e.getMessage());
    }

带参数的调用:

view plaincopy to clipboardprint?

    List params = new ArrayList(); 
    params.add("测试串"); 
    this.callProcedure("{call hdssh.testProcParam(?)}", param); 

    List params = new ArrayList();
    params.add("测试串");
    this.callProcedure("{call hdssh.testProcParam(?)}", param);

posted on 2011-06-28 13:50  boonya  阅读(691)  评论(1编辑  收藏  举报

我有佳人隔窗而居,今有伊人明月之畔。
轻歌柔情冰壶之浣,涓涓清流梦入云端。
美人如娇温雅悠婉,目遇赏阅适而自欣。
百草层叠疏而有致,此情此思怀彼佳人。
念所思之唯心叩之,踽踽彳亍寤寐思之。
行云如风逝而复归,佳人一去莫知可回?
深闺冷瘦独自徘徊,处处明灯影还如只。
推窗见月疑是归人,阑珊灯火托手思忖。
庐居闲客而好品茗,斟茶徐徐漫漫生烟。

我有佳人在水之畔,瓮载渔舟浣纱归还。
明月相照月色还低,浅近芦苇深深如钿。
庐山秋月如美人衣,画堂春阁香气靡靡。
秋意幽笃残粉摇曳,轻轻如诉画中蝴蝶。
泾水潺潺取尔浇园,暮色黄昏如沐佳人。
青丝撩弄长裙翩翩,彩蝶飞舞执子手腕。
香带丝缕缓缓在肩,柔美体肤寸寸爱怜。
如水之殇美玉成欢,我有佳人清新如兰。
伊人在水我在一边,远远相望不可亵玩。