文章目錄
- 前言
- 一、hibernate入門和基本操作
- 1.orm思想
- 2.配置物體類和資料庫表一一對應關系<映射關系>
- 2.1創建xml格式的組態檔
- 2.2配置是xml格式,在組態檔中首先引入xml的dtd約束
- 2.3配置映射關系
- 3.創建hibernate的核心組態檔
- 3.1核心組態檔格式xml,但是核心組態檔名稱和位置是固定的
- 3.2引入dtd約束
- 3.3hibernate操作程序中,只會加載核心組態檔,其他組態檔不會加載
- 4.物體類操作
- 5.SessionFactory
- hibernate概念和api使用
- 1.物體類撰寫規則
- 2.Hibernate主鍵生成策略
- 3.物體類狀態
- 總結
前言
hibernate是開源的輕量級框架
開源:獲取免費原始碼
輕量級:jar包不存在依賴關系
一、hibernate入門和基本操作
1.orm思想
orm思想為物件關系映射*
1>讓物體類和資料庫表進行一一對應關系
物體類與資料庫表對應
物體類屬性和表里欄位對應
2>不需要直接操作資料庫表,而操作表對應物體類物件
2.配置物體類和資料庫表一一對應關系<映射關系>
使用組態檔實作映射關系
2.1創建xml格式的組態檔
建議:在物體類所在包里面創建,物體類名稱.hbm.xml
2.2配置是xml格式,在組態檔中首先引入xml的dtd約束

2.3配置映射關系
<hibernate-mapping>
<!-- 1 配置類和表對應
class標簽
name屬性:物體類全路徑
table屬性:資料庫表名稱-->
<class name="cn.itcast.entity.User" table="t_user">
<!-- 2 配置物體類id和表id對應
hibernate要求物體類有一個屬性唯一值
hibernate要求表有欄位作為唯一值
-->
<!-- id標簽
name屬性:物體類里面id屬性名稱
column屬性:生成的表欄位名稱
-->
<id name="uid" column="uid">
<!-- 設定資料庫表id增長策略
native:生成表id值就是主鍵自動增長
-->
<generator class="native"></generator>
</id>
<!-- 配置其他屬性和表欄位對應
name屬性:物體類屬性名稱
column屬性:生成表欄位名稱
-->
<property name="username" column="username"></property>
<property name="password" </property>
</class>
</hibernate-mapping>
3.創建hibernate的核心組態檔
3.1核心組態檔格式xml,但是核心組態檔名稱和位置是固定的
位置:必須在src下面
名稱:必須hibernate.cfg.zml
3.2引入dtd約束

3.3hibernate操作程序中,只會加載核心組態檔,其他組態檔不會加載
第一部分:配置資料庫資訊<必須的>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:// /資料庫名</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
第二部分:配置Hibernate資訊<可選的>

第三部分:把映射檔案放到核心組態檔中
<mapping resource="cn/zzuli/entity/User.hbm.xml"/>
4.物體類操作
第一步 加載hibernate核心組態檔
//到src下面找到組態檔hibernate.cfg.xml并封裝成物件
Configuration cfg = new Configuration();
cfg.configure();
第二步 創建SessionFactory物件
//讀取hibernate核心組態檔內容,創建sessionFactory
//在程序中,根據映射關系,在配置資料庫里面把表創建
SessionFactory sessionFactory = cfg.buildSessionFactory();
第三步 使用SessionFactory創建session物件
Session session = sessionFactory.openSession();
第四步 開啟事務
Transaction tx = session.beginTransaction();
第五步 寫具體邏輯 crud操作
//添加操作
User user = new User();
user.setUsername("lhy");
user.setPassword("20");
session.save(user);
//根據id查詢
//呼叫session里的get方法實作
User user=session.get(user.class,1);
//修改操作
//先查詢,后修改
User user=session.get(user.class,2);
user.setUsername("lww");
session.update(user);
//洗掉操作
//先查詢,后洗掉
User user=session.get(user.class,2);
user.delete(user);
第六步 提交事務
tx.commit();
第七步 關閉資源
session.close();
sessionFactory.close();
5.SessionFactory
1>根據核心組態檔中,有資料庫配置,有映射檔案部分,到資料庫里面根據映射關系把表創建
<property name="hibernate.hbm1ddl.auto">update</property>
2>在hibernate操作中,一個專案一般創建一個sessionFactory物件
3>具體實作
static Configuration cfg=null;
static SessionFactory sessionFactory=null;
static{
cfg=new Configuration();
cfg.configure();
sessionFactory=cfg.buildSessionFactory();
}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
hibernate概念和api使用
1.物體類撰寫規則
表示學生的分數,假如 int score;
- 比如學生得了0分 ,int score = 0;
- 如果表示學生沒有參加考試,int score = 0;不能準確表示學生是否參加考試
解決:使用包裝類可以了, Integer score = 0,表示學生得了0分,
表示學生沒有參加考試,Integer score = null;
2.Hibernate主鍵生成策略
native:主鍵自增長
uuid:hibernate幫我們生成uuid值
<generator class="uuid"></generator>
3.物體類狀態
三種
1>瞬時態:物件里面沒有id值,物件與session沒有關聯
User u=new User();
u.setUsername("lhy");
u.setPassword("123");
2>持久態:物件里面有id值,物件與session關聯
User user=session.get(user.class,1);
3>托管態:物件有id值,物件與session沒有關聯
User user=new User();
user.setUid(3);
saveOrUpdate方法:實作添加、實作修改



總結
提示:這里對文章進行總結:
例如:以上就是今天要講的內容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理資料的函式和方法,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/181002.html
標籤:其他
下一篇:Oracle與MySQL的學習
