hibernate學習筆記(2)
主要內容:
1.hibernate中 單向一對多關聯關係
題外話:
多對一和一對多,本質是一回事。不同的角度而已
一、在資料庫裡建表
1.建立student表,專案有,id,name,sex,gid。其中把id設為主鍵,但不設立自增長
2.建立grade表,專案有,gid,gname,gdesc。其中把gid設為主鍵,但不設立自增長
3.在多方,也就是student表裡,建立與grade表的gid的外來鍵關係
二、寫持久化類
新建grade.java和student.java兩個類
1.序列化
implements Serializable介面,獲取序列號
2.新增私有化的id、name等變數,並實現setget方法
三、給各持久化類生成對映檔案
用hibernate工具生成下面兩個對映檔案
Grade.hbm.xml
Student.hbm.xml
具體如下,注意配置:
Grade.hbm.xml
<!-- 在一方配置一對多關聯關係-->
Student.hbm.xml
四、配置hibernate.cfg.xml
這個檔案在第二步配置也可以。最重要的是配置上面建好的兩個對映檔案
<!-- 資料庫使用者名稱-->root <!-- 資料庫密碼-->root <!--mysql的驅動下載 -->com.mysql.jdbc.Driver <!--指定資料庫名。我建立的是testmysql。後面指定了字元編碼,防止資料出現亂碼 -->jdbc:mysql:///one2many?userUnicode=true&characterEncoding=UTF-8 <!-- 資料庫方言-->org.hibernate.dialect.MySQLDialect <!-- 在控制檯顯示sql語句-->true <!-- 指定自動更新資料表。也可以配置create:這是自動生成,會覆蓋原來資料-->update <!--
true
--><!-- 配置對映檔案 -->
五、寫個測試類來驗證一下
寫測試類之前,因為session會經常被呼叫,為了以後呼叫方便,所以先寫個工具類。
HibernateUtil.java
public class HibernateUtil {
private static SessionFactory sessionFactory;
private static Session session;
static{
// 建立配置物件
Configuration configure = new Configuration().configure();
// 建立服務註冊物件
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configure.getProperties())
.buildServiceRegistry();
// 建立會話工廠
sessionFactory = configure.buildSessionFactory(serviceRegistry);
}
public static Session getSession(){
// 會話物件
session = sessionFactory.openSession();
return session;
}
public static void closeSession(){
if (session.isOpen() || session!=null) {
session.close();
}
}
}
然後寫測試類
建立一個班級和兩個學生,看看能不能插入到資料庫中。結果OK
Test.java
public class Test {
public static void main(String[] args) {
Test t=new Test();
t.add();
}
public void add(){
Grade grade=new Grade("java一班","優秀班級");
Student stu1=new Student("楊洋","男");
Student stu2=new Student("李麗","女");
grade.getStudent().add(stu1);
grade.getStudent().add(stu2);
Session session = HibernateUtil.getSession();
Transaction transaction = session.beginTransaction();
session.save(grade);
session.save(stu1);
session.save(stu2);
transaction.commit();
HibernateUtil.closeSession();
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2041/viewspace-2799536/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- hibernate學習筆記(1)筆記
- Hibernate學習筆記二筆記
- hibernate學習筆記 1筆記
- Vue學習筆記2Vue筆記
- MySQL學習筆記2MySql筆記
- RocketMQ學習筆記 2MQ筆記
- Oracle學習筆記2Oracle筆記
- react學習筆記2React筆記
- mysql學習筆記-2MySql筆記
- jQuery學習筆記(2)jQuery筆記
- Scala學習筆記2筆記
- TestNG—學習筆記2筆記
- autolayout學習筆記_2筆記
- vue學習筆記-2Vue筆記
- 學習筆記2(下)筆記
- koa2學習筆記筆記
- Python學習筆記(2)Python筆記
- Android學習筆記(2)Android筆記
- koa@2學習筆記筆記
- C#學習筆記2C#筆記
- db2學習筆記DB2筆記
- 藍芽學習筆記2藍芽筆記
- PL/SQL學習筆記-2SQL筆記
- iproute2學習筆記筆記
- Flex學習筆記(Day 2)Flex筆記
- Grub2 學習筆記筆記
- 2-SAT 學習筆記筆記
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- ASP.NET學習筆記2ASP.NET筆記
- Ext2.x學習筆記筆記
- 學習筆記(2)IPC機制筆記
- LevelDB 學習筆記2:合併筆記
- G01學習筆記-2筆記
- CryptoZombies學習筆記——Lesson2筆記
- <node.js學習筆記(2)>Node.js筆記
- docker學習筆記(2)- 倉庫Docker筆記
- 人工智慧學習筆記(2)人工智慧筆記
- angular學習筆記(十四)-$watch(2)Angular筆記