hibernate---核心API-get-load方法

1:如图:

注意,1是表中的主键的值,它会自动转换成类类型。

运行之后如图:

2:load是从数据库中拿一条记录并将之转换成一条对象,get也可以,将下面程序中的load改成get也是可以的。

但是他们之间有一条重要的区别:

将system.out.print(t.getName);放在commit之后,get不报错可以拿出来,但是load报错(延迟初始化有异常)。

get是直接发出sql语句从数据库中拿,但是load是拿一个代理,这个代理并没有生成sql语句。sql语句是在你拿它里面的属性的时候才会发出select。

如图,如果把sys...注释掉,就不会报错。

3:如何区分是否是代理类?

打印名字(t.getC,lass)如果是真实的类名,则不是代理类。

posted @ 2013-04-12 09:39  歌颂者  阅读(182)  评论(0编辑  收藏  举报