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)如果是真实的类名,则不是代理类。