Hibernate调用存储过程

Hibernate准备配置这里就简略带过,

在生成的“表名. hbm.xml"里添加调用的存储过程的名称,在“</class>”标记后面添加

//无参调用
    <sql-query name="存储过程名称" callable="true">
           <return alias="UsertTable" class="实体类">
                   <return-property name="实体类属性" column="实体类属性"></return-property>
           </return>
           {call 存储过程名称()}
    </sql-query>

//Java类 调用List显示

public void testProcQuery(Session session) throws Exception{
       
          List list=session.getNamedQuery("存储过程名称").list();
          for(int i=0;i<list.size();i++){
              UsertTable ut=(UsertTable)list.get(i);

             //打印
              System.out.print("序号:"+(i+1));
              System.out.print(",userid"+ut.getName());
          }
      }

//Java类  调用带参存储进行修改

private void testProcUpdate(Session session)throws Exception{
          Transaction tx=session.beginTransaction();
          Connection con=session.connection();
          String procedure="{call 存储过程名称(?,?,?)}";
          CallableStatement cstmt=con.prepareCall(procedure);
          cstmt.setString(0 ,
参数 );
          cstmt.setString(value, text);
          cstmt.executeUpdate();
          tx.commit();
      }

//Java类 调用带参存储(一)

 private void testProcInsert(Session session)throws Exception{
          session.beginTransaction();
          PreparedStatement st=session.connection().prepareStatement("{call
存储过程名称 (?,?,?)}");
          st.setString(0 ,
参数 );
          st.execute();
          session.getTransaction().commit();
      }

//Java类 调用存储List显示(二)

  Session session =HibernateSessionFactory.getSession();  

 SQLQuery query = session.createSQLQuery("{Call 存储过程名称 ()}" ); 

 List list =query.list(); 

 session.close(); 

//Java类 调用存储List显示(三)

SQLQuery query = session.createSQLQuery( "{Call 存储过程名称 (?)}" ); 

query.setString(0 , 参数); 

List list =query.list();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值