Hibernate 优化技术之调用视图(View)和存储过程(Procedure)



前言



转载请标明出处:http://blog.csdn.net/wlwlwlwl015/article/details/43022193上一篇blog记录了hibernate抓取策略的相关用法(http://blog.csdn.net/wlwlwlwl015/article/details/42705585),它主要是在对象导航时为我们进行HQL方面的优化。本篇blog将介绍一些通用性的优化方式,即在hibernate中使用视图和存储过程。在数据量比较大时(百万级),使用hibernate时不再推荐使用HQL,而是使用原生的SQL语句,而视图、索引、存储过程等数据库对象也都是基于底层数据库和原生的SQL派生出的优化方案,废话不多说,下面就开始通过代码介绍一下如何在hibernate中调用view、proc以及需要注意的一些关键点。



通过hibernate查询视图



数据库视图(View)的概念和优点等等就不说了,这个书上和网上都讲了很多,下面直接通过例子来看一下如何在hibernate中查询视图,依旧是上一篇中的例子,一对多的典型示例:班级→学生,先看一下数据表:



下面写一个简单的视图,例如需要查询以下几个字段:stu_id、sname、sex、birthday、cname,首先根据需求创建视图,

DELIMITER $$

USE `wltestdb`$$

DROP VIEW IF EXISTS `v_stuinfo`$$

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_stuinfo` AS (
SELECT
  `t1`.`stu_id`   AS `stu_id`,
  `t1`.`name`     AS `sname`,
  `t1`.`sex`      AS `sex`,
  `t1`.`birthday` AS `birthday`,
  `t2`.`name`     AS `cname`
FROM (`t_student` `t1`
   JOIN `t_classroom` `t2`
     ON ((`t1`.`cid` = `t2`.`cla_id`))))$$

DELIMITER ;

通过查询语句select * from v_stuinfo即可查询视图,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值