Hibernate的核心API
Configuration:負責管理Hibernate的配置信息
1.加載核心配置文件
核心配置有兩種:
hibernate.properties
加載:Configuration configuration = new Configuration();
hibernate.cfg.xml:
加載:Configuration configuration = new Configuration().configure();
2.加載映射文件
第一種寫法:
configuration.addResource("cn/yzu/hibernate3/demo1/Customer.hbm.xml");
第二種寫法:(要求:映射文件名稱要規范,類與映射在同一個包下)
configuration.addClass(Customer.class);
SessionFactory:Session工廠
Configuration對象根據當前的配置信息生成 SessionFactory對象,SessionFactory 對象中保存了當前的數據庫配置信息和所有映射關系以及預定義的SQL語句
SessionFactory 對象是線程安全的,SessionFactory還負責維護Hibernate的二級緩存,SessionFactory對象根據數據庫信息,維護連接池,創建Session(相當于Connection)對象
抽取工具類
?
在Hibernate中使用c3p0連接池
引入c3p0的jar包:c3p0-0.9.1.jar
在核心配置中添加一段配置:
?
Session(相當于 JDBC的 Connection)
Session 是應用程序與數據庫之間交互操作的一個單線程對象,是 Hibernate 運作的中心,是線程不安全的,所有持久化對象必須在 session 的管理下才可以進行持久化操作,Session 對象有一個一級緩存,顯式執行 flush 之前,所有的持久化操作的數據都緩存在 session 對象處,持久化類與 Session 關聯起來后就具有了持久化的能力,Session維護了Hiberante一級緩存.
方法:
save()/persist() :添加
update() ? :修改
saveOrUpdate() ? :增加和修改對象
delete() ??:刪除對象
get()/load() :根據主鍵查詢
createQuery() ? :創建一個Query接口,編寫HQL語句
createSQLQuery() ?:創建一個SQLQuery接口,編寫SQL語句數據庫操作對象
createCriteria() ?:返回一個Criteria接口.條件查詢
Transaction
獲得:Transaction tx = session.beginTransaction();
常用方法:
commit() :提交相關聯的session實例
rollback() :撤銷事務操作
wasCommitted() :檢查事務是否提交
如果沒有開啟事務,那么每個Session的操作,都相當于一個獨立的事務
Query
Query代表面向對象的一個Hibernate查詢操作
session.createQuery 接收一個HQL語句
HQL是Hibernate Query Language縮寫, 語法很像SQL語法,但是完全面向對象的
例子:
// 1.簡單查詢 List<Customer> list = session.createQuery("from Customer").list();// 2.條件查詢: List<Customer> list = session.createQuery("from Customer where name = ?").setParameter(0, "芙蓉").list();// 3.分頁查詢:select * from customer limit a,b; a:從哪開始 b:每頁顯示記錄數. Query query = session.createQuery("from Customer"); query.setFirstResult(3); query.setMaxResults(3); List<Customer> list = query.list();?
Criteria(條件查詢接口)
// 1.簡單查詢 List<Customer> list = session.createCriteria(Customer.class).list();// 2.條件查詢: Criteria criteria = session.createCriteria(Customer.class); criteria.add(Restrictions.eq("name","芙蓉")); List<Customer> list = criteria.list();// 3.分頁查詢: Criteria criteria = session.createCriteria(Customer.class); criteria.setFirstResult(3); criteria.setMaxResults(3); List<Customer> list = criteria.list();轉載于:https://www.cnblogs.com/fengmingyue/p/6166329.html
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的Hibernate的核心API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 围绕央行系统升级所产生的常见问题
- 下一篇: native2ascii命令