Java code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//主表
import TestTable;
//明细表
import TestDetailTable;
testDao{
//这个方法使用默认的延迟加载,明细表在读取的时候再查询。
List
String hql = 'from TestTable';
}
//这个方法不使用延迟加载,直接将主表和明细表的信息一次性全查出来
//要求返回的主表信息和第一个方法一样的list
List
//TODO 这里hql如何写???
String hql = '';
}
//这个方法不使用延迟加载,只查找主表信息不查明细表信息,避免session失效的异常
//要求返回的主表信息和第一个方法一样的list
List
//TODO 这里hql如何写???
String hql = '';
}
}
延迟加载也称为懒加载,是hibernate3关联关系对象默认的加载方式,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。简单理解为,只有在使用的时候,才会发出sql语句进行查询。
延迟加载的有效期是在session打开的情况下,当session关闭后,会报异常。当调用load方法加载对象时,返回代理对象,等到真正用到对象的内容时才发出sql语句。
(具体可以搜索一下hibernate的一些文档介绍)。
拦截器是动态拦截action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。例如:在你购买商品后,去购物车进行付款时,拦截器或者过滤器会起作用来验证是否已登录,若未登录则转向登陆界面。过滤器和拦截器的作用,我个人感觉差不多。
立即加载和拦截器的使用不存在必要的关系,拦截器有自己的作用,就看你想用不想用他了。
事务:首先应该理解这个词在sql里面是什么意思?
事务就是一组简单的逻辑单元,事务的四个特性:原子性、一致性、隔离性、持久性。
事务的分类:显示、隐式、自动提交。
事务的创建:开始事务:begin transcation、
提交事务:commit transaction、
回滚事务:rollback transaction。
希望能帮到您!