一. 建表与初始化数据
create database user
create table userInfo
(
id int identity(1,1) primary key not null,
name varchar(20) not null,
age int not null
)
建表成功后,在该表中任意插入几条数据。
二. 建立存储过程
create PROCEDURE searchproc
as
select * from prtab ;
----调用存储过程----
exec searchproc;
三.User.hbm.xml文件的内容如下:
/p>
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
{call searchproc()}
在数据访问层调用存储过程
public List searchAll() {
List list=getHibernateTemplate().findByNamedQuery("getUser");
return list;
}
publicclassExecuteProceduresDaoImplextendsJdbcDaoSupportimplementsExecuteProceduresDao {
publicObject Call_prLS_OrderByMemberOrNotMember(finalString[] parm) {
String procedureSql ="{?=call prLS_OrderByMemberOrNotMember(?,?,?,?,?,?,?,?,?,?)}";
return(Object) getJdbcTemplate().execute(procedureSql,newCallableStatementCallback() {
publicObject doInCallableStatement(CallableStatement cs)
throwsSQLException, DataAccessException {
intj =2;
cs.registerOutParameter(1, Types.INTEGER);
if(parm !=null) {
for(inti =0; i < parm.length; i++) {
cs.setString(j, parm[i]);
++j;
}
}
if(cs.execute()) {
ResultSet rs = cs.getResultSet();
while(rs.next()) {
rs.getString(1);
rs.getString(2);
rs.getString(3);
}
returnnull;
}else{
returncs.getInt(1);
}
}
});
}
}