创建存储SqlServer2005存储过程的语句
create procedure pro_GetAllStudent
as
select * from student
goStudent.hbm.xml里的配置
<sql-query name="pro_GetAllStudent" callable="true">
<return alias="student" class="com.Student">
<return-property name="stuid" column="stuid"/>
<return-property name="stuname" column="stuname"/>
<return-property name="stuaddress" column="stuaddress"/>
</return>
{call pro_GetAllStudent()}
</sql-query>
Test.java里的main方法调用
SessionFactory sf=HibernateSessionFactory.getSessionFactory();
Session session=sf.openSession();
//System.out.println(session==null);
List list = session.getNamedQuery("pro_GetAllStudent").list();
for (int i = 0; i < list.size(); i++) {
Student user = (Student) list.get(i);
System.out.print("stuid: " + user.getStuid());
System.out.print("stuname: " + user.getStuname());
System.out.println("stuaddress: " + user.getStuaddress());
}
以下是异常信息:
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at com.Test.main(Test.java:20)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 找不到存储过程 'pro_GetAllStudent'。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(Unknown Source)
at org.hibernate.dialect.SybaseDialect.getResultSet(SybaseDialect.java:186)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:193)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1784)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)请高手帮忙解决,感激不尽!
create procedure pro_GetAllStudent
as
select * from student
goStudent.hbm.xml里的配置
<sql-query name="pro_GetAllStudent" callable="true">
<return alias="student" class="com.Student">
<return-property name="stuid" column="stuid"/>
<return-property name="stuname" column="stuname"/>
<return-property name="stuaddress" column="stuaddress"/>
</return>
{call pro_GetAllStudent()}
</sql-query>
Test.java里的main方法调用
SessionFactory sf=HibernateSessionFactory.getSessionFactory();
Session session=sf.openSession();
//System.out.println(session==null);
List list = session.getNamedQuery("pro_GetAllStudent").list();
for (int i = 0; i < list.size(); i++) {
Student user = (Student) list.get(i);
System.out.print("stuid: " + user.getStuid());
System.out.print("stuname: " + user.getStuname());
System.out.println("stuaddress: " + user.getStuaddress());
}
以下是异常信息:
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
at com.Test.main(Test.java:20)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 找不到存储过程 'pro_GetAllStudent'。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(Unknown Source)
at org.hibernate.dialect.SybaseDialect.getResultSet(SybaseDialect.java:186)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:193)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1784)
at org.hibernate.loader.Loader.doQuery(Loader.java:674)请高手帮忙解决,感激不尽!
解决方案 »
- 哪位使用过Zelix KlassMaster!
- 一个很棘手的问题java+sqlserver
- java 关于使用线程池计算加法的运算不能出正确的结果请帮助
- DWR如何获取Struts2中的Session
- java如何删除压缩文件中的条目,在线等~
- javaBean在tomcat中路径问题,我是新学的帮帮忙巴,
- 用jb9开发完了一个webapp[struts方面],怎么将它用tomcat来它发布
- 第二轮面试顺利通过,谢各位版友(2)...
- VSS是垃圾,CVS更是垃圾!
- 大家都是搞J2EE的,觉得.NET与J2EE相比有哪些优劣势?凭心而论!!
- ant和xdoclet现在做项目还有人用吗?
- Servlet Filter 类型转化出了问题 大家帮忙看看
你试着直接调用存储过程看看,类似这样的:
tx = session.beginTransaction();
Connection con=session.connection();
String procedure = "{call pro_GetAllStudent()}";
CallableStatement cstmt = con.prepareCall(procedure);
cstmt.executeUpdate();
tx.commit();