懶載入例項--hibernate
其實在預設的時候不寫 就是懶載入的呢,只是些了更明確一些 laze=true/false 只有這兩個值,如果設定為false的話,就是load方法仍然會執行sql語句的,load和 lazy配合使用的
例項
1 設定為true
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.lyq.model.Medicine" table="tb_medicine_cache" lazy="true">
<id name="id">
<generator class="native"/>
</id>
<property name="name" not-null="true" length="200" />
<property name="price" not-null="true"/>
<property name="factoryAdd" length="200"/>
<property name="description" type="text"/>
</class>
</hibernate-mapping>
2 測試
package com.lyq.util;
import org.hibernate.Session;
import com.lyq.model.Medicine;
/**
* Lazy測試
* @author Li Yong Qiang
*/
public class Test {
public static void main(String[] args) {
Session session = null;
//宣告Session物件
//開啟第一個session
try {
//獲取Session
session = HibernateUtil.getSession();
//開啟事物
session.beginTransaction();
System.out.println("第一次查詢:");
//查詢藥品
Medicine medicine = (Medicine)session.load(Medicine.class, new Integer(1));
//提交事物
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
//出錯將回滾事物
session.getTransaction().rollback();
}finally{
//關閉Session物件
HibernateUtil.closeSession(session);
}
//開啟第二個session
try {
//獲取Session
session = HibernateUtil.getSession();
//開啟事物
session.beginTransaction();
System.out.println("============================================");
System.out.println("第二次查詢:");
//查詢藥品
Medicine medicine = (Medicine)session.load(Medicine.class, new Integer(1));
//輸出藥品名稱
System.out.println("藥品名稱:" + medicine.getName());
//提交事物
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
//出錯將回滾事物
session.getTransaction().rollback();
}finally{
//關閉Session物件
HibernateUtil.closeSession(session);
}
}
}
結果
第一次查詢:
============================================
第二次查詢:
Hibernate:
select
medicine0_.id as id0_0_,
medicine0_.name as name0_0_,
medicine0_.price as price0_0_,
medicine0_.factoryAdd as factoryAdd0_0_,
medicine0_.description as descript5_0_0_
from
tb_medicine_cache medicine0_
where
medicine0_.id=?
藥品名稱:2
相關文章
- hibernate懶載入
- Hibernate 之 懶載入
- 什麼是hibernate懶載入?什麼時候用懶載入?為什麼要用懶載入?(轉)
- Hibernate 基本操作、懶載入以及快取快取
- DCL懶載入單例模式單例模式
- Hibernate 懶載入 Unable to evaluate the expression Method threw ‘org.hibernate.LazyInitializationExceptExpress
- 【Hibernate】—Hibernate+mysql 環境搭建+入門例項MySql
- 懶載入
- hibernate懶載入導致多表聯合查詢失敗
- 懶載入和預載入
- iOS: 懶載入iOS
- longing載入中例項
- 【譯】懶載入元件元件
- 圖片懶載入
- Vue元件懶載入Vue元件
- Ribbon - 懶載入
- vue路由懶載入Vue路由
- Vue 的懶載入Vue
- Swift中懶載入Swift
- spring 懶載入Spring
- Vue 路由按需載入(路由懶載入)Vue路由
- 圖片預載入和懶載入
- Hibernate基於Maven入門例項,與MyBatis比對MavenMyBatis
- canvas載入效果程式碼例項Canvas
- Flutter 例項 - 載入更多的ListViewFlutterView
- 前端效能優化 --- 懶載入&預載入前端優化
- 單張圖片懶載入
- 圖片懶載入(IntersectionObserver)Server
- vue(18)路由懶載入Vue路由
- 關於懶載入原理
- 懶載入之intersection observerServer
- 圖片懶載入原理
- Fragment 懶載入實踐Fragment
- 談談IntersectionObserver懶載入Server
- TabLayout+ViewPager 懶載入TabLayoutViewpager
- 不要濫用懶載入
- 手把手實現圖片懶載入+封裝vue懶載入元件封裝Vue元件
- js ajax惰性載入程式碼例項JS