Hibernate深入浅出(二)MySQL存储过程

创建存储过程:

  
  
  
  
  1. mysql> DELIMITER // 
  2. mysql> CREATE PROCEDURE getUsersByAge(IN userAge int)
  3.     -> BEGIN
  4.     -> SELECT ID,NAME,AGE FROM T_USER WHERE AGE=userAge;
  5.     -> END
  6.     -> //
  7. Query OK, 0 rows affected(0.10 sec)

 映射文件配置:

和class同级的节点sql-query

  
  
  
  
  1. <sql-query name="queryUsersByAge" callable="true" > 
  2.     <return  
  3.         alias="user" 
  4.         class="com.redsaga.hibernate.relation.TUser"> 
  5.         <return-property name="id" column="ID"/> 
  6.         <return-property name="name" column="NAME"/> 
  7.         <return-property name="age" column="AGE"/> 
  8.     </return> 
  9.     { call getUsersByAge(?) } 
  10. </sql-query> 

{ call getUsersByAge(?) } 调用存储过程

callable=”true”,指名当前查询基于存储过程定义

测试代码:

  
  
  
  
  1. public void testProcedure() { 
  2.         Query query = session.getNamedQuery("queryUsersByAge"); 
  3.         query.setParameter(020); 
  4.          
  5.         Iterator it=query.list().iterator(); 
  6.         while(it.hasNext()){ 
  7.             TUser user=(TUser)it.next(); 
  8.             System.out.println("User Name=>"+user.getName()); 
  9.         } 
  10.     } 

 

你可能感兴趣的:(Hibernate,Mysql存储过程)