CREATE OR REPLACE PROCEDURE LIMING_ZZJHQR (m_gzh String,
RESULTSET OUT TEST_ZZJHQR.testresultset
)
AS
begin
open RESULTSET for
select * from rwfpb where gzh=m_gzh;
end;
此为存储过程,一个参数m_gzh,返回一个数据集@SuppressWarnings("unchecked")
public List<Map> findCreateSqlMap(final String sql,final Object[] parameter) {
List<Map> list = getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery("getlist");
for(int i=0;i<parameter.length;i++){
query.setParameter(i,parameter[i]);
}
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return (List<Map>)query.list();
}});
return list;
}
这个为底层DAO中的方法,我觉得这个好用点
或者我用的这个
public List getList() {
Session session =getSessionFactory().openSession();
Query query = session.getNamedQuery("getlist");
//query.setParameter(1,"232");
query.setString(0, "232");
return (List)query.list();}dao层得方法
<sql-query name = "getlist" callable="true">
<return alias="Rwfpb" class = "com.king.krs.dao.impl.Rwfpb" />
{call LIMING_ZZJHQR(?,?)}
</sql-query>
hbm.xml中的配置信息,我不想用JDBC那种调用存储过程的方式ACTION中直接直接调用第二中方法
List resultList = null;
resultList = service.getList();
或者调用第一种方式
List resultList = null;
String hsql = "{call LIMING_ZZJHQR(?,?)}";
String m_gzh = request.getParameter("gzh");
Object[] ds = new Object[] {m_gzh};
resultList =service.findCreateSqlMap(hsql, ds);
都执行不过去,报错 大家谁能帮我修改下 能让我执行过去的 哪种方式都可以就不想用JDBC的那种
大周末得还要加班,哎!伤不起啊
RESULTSET OUT TEST_ZZJHQR.testresultset
)
AS
begin
open RESULTSET for
select * from rwfpb where gzh=m_gzh;
end;
此为存储过程,一个参数m_gzh,返回一个数据集@SuppressWarnings("unchecked")
public List<Map> findCreateSqlMap(final String sql,final Object[] parameter) {
List<Map> list = getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery("getlist");
for(int i=0;i<parameter.length;i++){
query.setParameter(i,parameter[i]);
}
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return (List<Map>)query.list();
}});
return list;
}
这个为底层DAO中的方法,我觉得这个好用点
或者我用的这个
public List getList() {
Session session =getSessionFactory().openSession();
Query query = session.getNamedQuery("getlist");
//query.setParameter(1,"232");
query.setString(0, "232");
return (List)query.list();}dao层得方法
<sql-query name = "getlist" callable="true">
<return alias="Rwfpb" class = "com.king.krs.dao.impl.Rwfpb" />
{call LIMING_ZZJHQR(?,?)}
</sql-query>
hbm.xml中的配置信息,我不想用JDBC那种调用存储过程的方式ACTION中直接直接调用第二中方法
List resultList = null;
resultList = service.getList();
或者调用第一种方式
List resultList = null;
String hsql = "{call LIMING_ZZJHQR(?,?)}";
String m_gzh = request.getParameter("gzh");
Object[] ds = new Object[] {m_gzh};
resultList =service.findCreateSqlMap(hsql, ds);
都执行不过去,报错 大家谁能帮我修改下 能让我执行过去的 哪种方式都可以就不想用JDBC的那种
大周末得还要加班,哎!伤不起啊
,m_gzh String)
AS
begin
open RESULTSET for
select * from rwfpb where gzh=m_gzh;
end;
存储过程sql-query name = "getlist" callable="true">
<return alias="Rwfpb" class = "com.king.krs.dao.impl.Rwfpb" />
{call LIMING_ZZJHQR(?,:m_gzh)}
</sql-query>
配置信息public List getList() {
Session session =getSessionFactory().openSession();
Query query = session.getNamedQuery("getlist");
//query.setParameter(1,"232");
query.setString("m_gzh", "232");
return (List)query.list();
}
测试过,应该好用,大家参考下,红色的是修改过的地方,不过
@SuppressWarnings("unchecked")
public List<Map> findCreateSqlMap(final String sql,final Object[] parameter) {
List<Map> list = getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery("getlist");
for(int i=0;i<parameter.length;i++){
query.setParameter(i,parameter[i]);
}
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return (List<Map>)query.list();
}});
return list;
}