students0_.studentno as studentn1_1_1_
1、类级别盘问:
get要领和load要领:
(1)get要领:
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); Student student=session.get(Student.class,201811); System.out.println(student); transaction.commit(); session.close(); }
特点:执行get要领时,当即发送盘问语句盘问功效。
(2)load要领(延迟加载,即:只有在使用的时候才会进行盘问):
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); Student student=session.load(Student.class,201811); System.out.println(student); transaction.commit(); session.close(); }
特点:在执行load要领时,不会发送任何sql语句,不会孕育产生任何盘问功效,但是会孕育产生一个东西,在使用该东西时才会孕育产生盘问功效。
延迟加载与配置文件的关系:
延迟加载(默认):
<class name="Student" table="student" lazy="true">
不延迟加载:
<class name="Student" table="student" lazy="false">
延迟加载可以提高效率(东西取出来可以不用,到真正需要的时候才进行盘问)。
2、关联级别延迟加载和抓取计谋:
调集级另外关联:
lazy属性:决定是否延迟加载 true(默认值):延迟加载,懒惰加载 false:当即加载 extra:极其懒惰 fetch属性:决定加载计谋,,使用什么类型的sql语句加载调集数据 select(默认值):单表盘问加载 join:多表盘问加载调集 subselect:使用子盘问加载调集
(1)lazy=true,fetch=select
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); Student student=session.load(Student.class,201811);//不执行盘问 Clas clas= student.getaClas(); System.out.println(clas);//执行盘问 transaction.commit(); session.close(); }
<hibernate-mapping package="pers.zhb.domain"> <class name="Clas" table="class"> <id name="classno" column="classno"> <generator class="native"></generator> </id><!--主键--> <property name="department" column="department"></property> <property name="monitor" column="monitor"></property> <property name="classname" column="classname"></property> <set name="students" table="student" lazy="true" fetch="select"><!--一对多关系配置--> <key column="classno" update="false" ></key><!--指定了调集表的外键--> <one-to-many class="Student"></one-to-many> </set> </class> </hibernate-mapping>
表中的数据:
class表:
student表:
(2)lazy=false,fetch=select
public static void testSel() { Session session = HibernateUtils.openSession(); Transaction transaction = session.beginTransaction(); Student student=session.load(Student.class,201811);//没有使用即开始执行盘问 Clas clas= student.getaClas(); System.out.println(clas); transaction.commit(); session.close(); }
(3)lazy=extra,fetch=select
极其懒惰与懒加载几乎一致。
获取盘问功效的size:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31743.html
- 上一篇:圆角边框、边框暗影
- 下一篇:XMLHTTPRequest状态status完整列表