hibernate基礎

1.Hibernate基本使用


2.Hibernate核心的API類(6個)
Configuration
SessionFactory
Session
Transaction
Query

Cirteria


3.增刪查改
openSession()  事務自動處理
問題:  插入,查詢,正常的,刪除和更新(update,delete,saveOrUpdate有問題)
getCurrentSession()    事務自己處理
插入,查詢,刪除,更新全部正常
前提條件:必須配置<property name="current_session_context_class">thread</property>
Transaction  t =  session.beginTransaction();
t.commit();
t.rollback();

4.hibernate.cfg.xml中
<!-- hibernate.hbm2ddl.auto:
      5.2.11 
create-drop:不管有沒有數據庫表,先刪除後創建表,在執行操作 ,一般做測試調試用
create:不管有沒有數據庫表,先刪除後創建表,在執行操作 ,一般做測試調試用
update:沒有數據庫表就創建,如果有直接進行插入,刪除,修改,查詢更新。
validate:校驗 表必須已經存在,而且表中的字段必須按照指定策略或者要求生成。
                 校驗 sql語句語法是否正常(校驗方言)
 -->
<property name="hibernate.hbm2ddl.auto">update</property> 


5.元數據配置文件:xx.hbm.xml
     5.1  實體類映射到數據庫表的類型指定: 通過type屬性指定,但是值必須是包裝類型 (包名+類名)
    示例:<id name="id" type="java.lang.Integer">
       <property name="name" type="java.lang.String"></property>
      備註: 建議大家實體類中的基本類型寫成包裝類型。 
    5.2  測試主鍵生成策略:
          自然主鍵:Hibernate不管理主鍵,開發者自己維護,而且必須手動插入。
          代理主鍵:hibernate管理主鍵。按照指定策略生成主鍵         
          推薦的主鍵生成策略是uuid。          
  native: 本地策略。根據數據平臺不同,根據當前數據庫的特性會自動選擇生成的主鍵策略
             mysql: 生成的id特點:主鍵,不爲null,自動增長  ,identity
            orcale:sequence  
  increment:適用於int,short,long作爲主鍵。
           生成方式:
             1.先去查詢數據庫的最大id,
             2.再最大的id值上增加1,
             3.把增加後的id值作爲新的id值進行插入
      控制檯:select  max(id)  from stu;      
          insert into .....   
  identity:只能用在支持自動增長的數據庫中。mysql支持,Oracle不支持。 
  uuid:字符串類型(char,varchar),長度32位,佔用空間大,跨數據庫平臺(移植性好)。  
  sequence:Orcale數據庫策略

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章