Hibernate2支持视图,不支持存储过程
Hibernate3支持视图,也支持存储过程
1. 其实视图和表对于Hibernate来说,并无任何区别,你是如何应用表,就是如何应用视图。
2.Hibernate3调用存储过程
为了在Hibernate中使用存储过程,你必须遵循一些规则,不遵循这些规则的存储过程将不可用.如果你仍然想要使用他们,这些规则针对于不同的数据库.因为数据库提供商有各种不同的存储过程语法和语义:
(一)必须通过session.connection()
来执行他们。
(二)对存储过程进行的查询无法使用setFirstResult()/setMaxResults()
进行分页。
(三)对于Oracle有如下规则:
函数必须返回一个结果集。存储过程的第一个参数必须是OUT
,它返回一个结果集。这是通过Oracle 9或10的SYS_REFCURSOR
类型来完成的。在Oracle中你需要定义一个REF CURSOR
类型,参见Oracle的手册。
(四)对于Sybase或者MS SQL server有如下规则:
存储过程必须返回一个结果集。注意如果servers可能返回多个结果集以及更新的数目,Hibernate将取出第一条结果集作为它的返回值,其他将被丢弃。 如果你能够在存储过程里设定SET NOCOUNT ON
,这可能会效率更高,但这不是必需的。
CREATE TABLE `proctab` (
`id` int ( 11 ) NOT NULL auto_increment,
`Name` varchar ( 20 ),
`age` int ( 11 ),
PRIMARY KEY (`id`)
)
简单的存储过程
create PROCEDURE proc()
begin
select * from proctab;
end ;
一种方法是通过hibernate传统的xml映射方式去调用
<class name="com.test.User" table="proctab">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name" type="string" />
<property name="age" column="age" type="integer" />
</class>
<sql-query name="getUser" callable="true">
<return alias="user" class="com.test.User">
<return-property name="id" column="id" />
<return-property name="name" column="name" />
<return-property name="age" column="age" />
</return>
{call proc()}
</sql-query>
调用方法
Session ss= HibernateSessionFactory.getSession()
List li=ss.getNamedQuery("getUser").list();
ss.close();
及其类似jdbc的方法
Session session =HibernateSessionFactory.getSession();
Connection conn = session.connection();
ResultSet rs =null;
CallableStatement call = conn.prepareCall("{Call proc()}");
rs = call.executeQuery();
rs.close();
session.close();
这种方法基本上就是jdbc,不过很简单,总是感觉怪怪的~!
还有就是通过强大的createSQLQuery来实现
o(∩_∩)o...哈哈 个人比较喜欢这种方法
Session session =HibernateSessionFactory.getSession();
SQLQuery query = session.createSQLQuery("{Call proc()}");
List list =query.list();
session.close();
如果没有返回值 直接用execute的方法就可以了
(*^__^*) 忘了一个重要的问题就是存储过程的传参问题
CallableStatement call = conn.prepareCall("{Call proc(?)}");
call.setString(1, 参数);
rs = call.executeQuery();
SQLQuery query = session.createSQLQuery("{Call proc(?)}");
query.setString(0, 参数);
List list =query.list();
相关推荐
打开Hibernate视图找到Hibernate运行图标下的Hibernate Code Generation Configurations,如果找不到这个图标说明没有在Hibernate视图下。 配置一个新的配置项,输入配置项的名称MyHibernateCode,选择Hibernate ...
2.1.2 MVC模式的处理过程 2.2 Model规范 2.2.1 Model1规范 2.2.2 Model2规范 2.3 使用MVC的优劣 2.3.1 使用MVC模式的好处 2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 ...
2.1.2 MVC模式的处理过程 2.2 Model规范 2.2.1 Model1规范 2.2.2 Model2规范 2.3 使用MVC的优劣 2.3.1 使用MVC模式的好处 2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 ...
2.1.2 MVC模式的处理过程 2.2 Model规范 2.2.1 Model1规范 2.2.2 Model2规范 2.3 使用MVC的优劣 2.3.1 使用MVC模式的好处 2.3.2 使用MVC模式的不足之处 2.4 目前市场上常见的轻量级J2EE开发容器 2.5 小结 第二篇 ...
在技术实现方面,Struts框架负责处理用户的请求和响应,将业务逻辑与视图分离,使得代码结构更加清晰。Hibernate框架则负责处理数据持久化,将对象与数据库表进行映射,简化了数据库操作。CSS用于美化网页界面,提高...
130222.rar文件是一个精心打包的计算机专业JSP源码资料包,它集成了当前流行的Web开发框架:Struts, Spring, Hibernate以及Oracle数据库。此项目资料包为开发者提供了一个全面的、可立即部署的开发环境,旨在帮助...
Struts2作为MVC框架,负责处理页面请求和响应,将业务逻辑与视图分离,提高了代码的可维护性和可扩展性。Spring作为IoC容器,负责管理对象的生命周期和依赖关系,降低了代码的耦合度。Hibernate作为ORM框架,负责将...
通过这个项目,你可以学习到如何使用Struts框架进行MVC(模型-视图-控制器)模式的开发,以及如何使用Hibernate技术实现对象关系映射(ORM),从而简化数据库操作。此外,这个项目还使用了CSS样式表来美化网页界面,...
MySQL拥有庞大的开发者社区和丰富的第三方插件、库、中间件支持,提供了丰富的文档、教程、论坛以及专业服务,极大地简化了开发、运维和故障排查过程。 关键组件与日志 系统数据库 MySQL内部包含几个特殊的系统...
其中dataInsert.sql是建表、视图sql,存储过程是批量插入测试数据,具体注意事项请看readme.txt文件。本压缩包仅有源代码和配置文件,相关运行的jar包需自己调式加入,如有问题,请发邮件或加我MSN:yetree@hotmail....
扣除月供由一个SQL存储过程完成。 2.Cookie记住密码 3.活动海报提供点击看大图功能 4.添加活动的日期用jQuery日期插件(datepicker) 5.为表格添加更多的CSS样式,让表格更美观点 6.某些页面应该提供分页显示(时间紧...
6.2 CallableStatement存储过程对象 6.3 BatchedUpdate对象 6.4 Rowset行集合对象 6.5 JDBC的事务 6.6 本章小结 第7章 JDBC结合Servlet与JSP 的应用 7.1 Servlet概述 7.2 JDBC在Servlet中的使用 7.3...
1. 采用Struts2作为MVC框架,实现了模型、视图、控制器的分离,提高了代码的可维护性和可扩展性。 2. 使用Hibernate作为ORM框架,实现了对数据库的抽象和封装,简化了数据库操作。 3. 采用MySQL作为数据库存储,具有...
目录 第1章数据库简介ppt ...第17章函数与存储过程ppt 第18章数据车性能优化.ppt 第l9章数据库一致性与事务管理。ppt 第20章并发控制.ppt 第2l章Oracle在开发中的应用ppt 第22章Oracle+Hibernate应用实例.ppt
系统利用Spring框架进行业务逻辑处理和事务管理,通过Spring MVC实现模型-视图-控制器(MVC)模式,以及使用MyBatis或Hibernate等ORM工具与数据库交互。主要功能包括患者信息管理、电子病历编辑与存储、医疗记录查询...
2008-07-02 http://beansoft.blogjava.net/ <br><br> MySQL 6 支持外键,视图存储过程,事务等功能(绿色精简版测试通过,支持这些功能),非常方便进行开发(尤其是MyEclipse生成一对多,多对多的Hibernate/JPA映射...
14.2.1spring对hibernate的支持 279 14.2.2管理sessionfactory 279 14.2.3hibernate的dao实现 281 14.2.4使用hibernatetemplate 281 14.2.5管理hibernate事务 282 14.3项目实战——学生成绩查询系统 283 本章...
旅行社-Java-EE- 一个基于 Web 的应用程序,它使用 MVC 实现(模型-视图-控制器),旨在让用户... 该项目中使用的技术是通过MVC(模型-视图-控制器)实现连接到后端的JSP页面,并且使用hibernate将数据存储在数据库中。
对视图的支持:RequestToViewNameTranslator 13.12. 基于注解的控制器配置 13.12.1. 建立dispatcher实现注解支持 13.12.2. 使用@Controller定义一个控制器 13.12.3. 使用@RequestMapping映射请求 13.12.4. ...
对视图的支持:RequestToViewNameTranslator 13.12. 基于注解的控制器配置 13.12.1. 建立dispatcher实现注解支持 13.12.2. 使用@Controller定义一个控制器 13.12.3. 使用@RequestMapping映射请求 13.12.4. ...