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();