Hibernate學習筆記(一)之——根據配置檔案自動建立表的兩種方式(註解方式和配置檔案方式)
環境準備:jdk eclipse hibernate、mysql jar包
專案截圖:
Student是根據配置檔案建立表,Teacher是根據註解建立表
Student.java
package com.java1234.model; public class Student { private long id; private String name; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Student.hbm.xml
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.java1234.model"> <class name="Student" table="t_student"><!-- table="t_student" 對應資料庫的表明 --> <!-- 主鍵 --> <id name="id" column="stuId"> <generator class="native"></generator> </id> <property name="name"></property> </class> </hibernate-mapping>
Teacher.java
package com.java1234.model; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator; @Entity @Table(name="t_teacher")//對映表名 public class Teacher { private long id; private String name; //主鍵 @Id @GeneratedValue(generator="_native") @GenericGenerator(name="_native",strategy="native") public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Teacher [id=" + id + ", name=" + name + "]"; } }
hibernate.cfg.xml 配置檔名稱寫死
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--資料庫連線設定 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 方言 -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- 控制檯顯示SQL -->
<property name="show_sql">true</property>
<!-- 自動更新表結構 -->
<property name="hbm2ddl.auto">update</property>
<mapping resource="com/java1234/model/Student.hbm.xml"/><!- 根據配置檔案自動建表 ->
<mapping class="com.java1234.model.Teacher"></mapping><!- 根據註解自動動建表 ->
</session-factory>
</hibernate-configuration>
HibernateUtil.java
package com.java1234.util;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
Configuration configuration = new Configuration().configure();//底層預設載入配置src目錄下的hibernate.cfg.xml配置檔案,所以配置檔名稱寫死
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();//例項化服務登記
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);//獲取Session工廠
return sessionFactory;
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
測試類:執行測試類就自動建立了
package com.java1234.service;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import com.java1234.model.Student;
public class StudentTest {
private SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
public static void main(String[] args) {
Session session = sessionFactory.openSession();
session.beginTransaction();//開啟事務
/*Student s = new Student();
s.setName("張三");*/
session.getTransaction().commit();//提交事務
session.close();//關閉session
sessionFactory.close();
}
}
相關推薦
Hibernate學習筆記(一)之——根據配置檔案自動建立表的兩種方式(註解方式和配置檔案方式)
環境準備:jdk eclipse hibernate、mysql jar包 專案截圖: Student是根據配置檔案建立表,Teacher是根據註解建立表 Student.java package com.java1234.model; publi
深度學習筆記——理論與推導之概念,成本函式與梯度下降演算法初識(一)
前情提要 一、神經網路介紹 概念:Learning ≈ Looking for a Function 框架(Framework): What is Deep Learning? 深度學習其實就是一個定義方法、判斷方法優劣、挑選最佳的方法的過程:
單鏈表整表建立的兩種方法(頭插法和尾插法)
線性表可分為順序儲存結構和鏈式儲存結構順序儲存結構的建立,其實就是一個數組的初始化,即宣告一個型別和大小的陣列並賦值的過程。而單鏈表和順序儲存結構就不一樣,它的每個資料的儲存位置不需要像陣列那樣集中,它可以很散,是一種動態結構。對於每個連結串列來說,它所佔用的空間大小和位置並
使用Spring整合Hibernate配置,根據實體類自動建立表
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan
Spring Data JPA 配置資料庫表根據實體屬性自動建立表結構
一、實體屬性 @Entity(name = "recommend_lottery") public class Student{@Id@Column(name = "id", nullable = false)private String id; // id@Column(
Hibernate學習筆記(一) --- 使用Hibernate連接數據庫
比較 得到 對象 urn stack close logs mysql .org Hibernate用來操作數據庫,它對開發人員隱藏了底層JDBC的操作及不同數據庫的差異,通過它,開發人員基本上只用關心自己的對象就可以了 構建一個最基本的Hibernate應
[學習筆記] 《程式碼整潔之道》(一)
[學習筆記] 《程式碼整潔之道》—第1章 整潔程式碼 程式設計:將需求明確到機器可以執行的細節程度 —> 程式碼 保持程式碼整潔:讓營地比你來時更乾淨! [學習筆記]《程式碼整潔之道》—第2章 有意義的命名 名副其實 說起來簡單,但這是很嚴肅的事!
Hibernate學習筆記---通過load和get方法來查詢物件(只能根據主鍵來查詢)
下面的例子是說明如何來查詢一個物件。 get方法(get方法一經呼叫,會立即發出get方法) package com.ahuzl.hibernate; import java.util.Date;import org.hibernate.Session;import org
Java學習筆記——排序算法之進階排序(堆排序與分治並歸排序)
進行 技術分享 ring http 沒有 oid 有序 重復 調整 春蠶到死絲方盡,蠟炬成灰淚始幹 ——無題 這裏介紹兩個比較難的算法: 1、堆排序 2、分治並歸排序 先說堆。 這裏請大家先自行了解完全二叉樹的數據結構。 堆是完全二叉樹。
[知了堂學習筆記]_JS小遊戲之打飛機(3)-飛機之間的互相撞擊,boss的出現,以及控制boss死亡
時間 i++ score console function sss 間隔 app tint 我的小飛機和敵軍小飛機撞擊的效果的實現: 1 /** 2 * 定義我的飛機與敵機碰撞的方法: 3 */ 4 function destoryMyPlane(){ 5
Hibernate學習筆記(1)---hibernate快速上手與準備工作
成了 -- 開源 工作 快速 tar ref orm 磁盤 持久層介紹 持久化:將內存中的數據保存在磁盤等存儲設備中。 持久化對象:指已經存儲在數據庫護著磁盤的業務對象 經典的軟件應用體系結構(三層結構) 在三層結構中,由於業務邏輯除了負責業務邏輯以外,還要負責相關的數據
Hibernate學習筆記(3)---hibernate關聯關系映射
gen -m type foreign out eas ner 機制 路徑 一對一關聯 假設有兩個持久化類(實體類)User與Address,它們之間存在一對一的關系 1,通過主鍵關聯(個人偏向另外一種) User.hbm.xml文件配置 <id name="u
Hibernate學習筆記(5)---Query接口
center 結束 mce factory rst lis 聚集 數據庫 ber Hibernate中具有三種檢索方式(HQL,QBC,SQL) Query接口 一個查詢接口,用於向數據庫中查詢對象。並控制執行查詢的過程。Query接口內封裝了一個HQL查詢語句。 舉個栗子
Hibernate學習筆記(二) --- 使用註解定義ORM配置
www. 可能 hibernate spa cut 數據 mysq provide 維護成本 ORM配置的定義,除了用XML文件之外,還可以使用註解的方式。使用XML的優點是如果配置有變更,在僅更改配置的情況下,不需要重新編譯(作為數據庫表的映射類,除了表字段類型變
Hibernate學習筆記(三) --- 映射枚舉類型
enume rto 希望 enum 類名 賦值 rom cart org 對於枚舉類型,不能通過org.hibernate.annotations.Type註解來簡單的映射對應的數據庫字段類型(除非自定義類型)。對此,Hibernate提供了javax.persis
Hibernate學習筆記(四) --- 映射基本數據類型的List集合
varchar prim drop n) 進行 lis auth pos 方案 集合按其內元素的數據類型分為兩種:基本數據類型集合及復雜對象類型集合,Hibernate對於兩類集合提供不同的映射方式。(在類上以@Embeddable註解的復雜對象數據類型處理方式同基本數據類
Hibernate學習筆記(五) --- 創建基於中間關聯表的多對多映射關系
mys 兩個 override pac tid 一對多 main ber different 多對多映射是在實際數據庫表關系之間比較常見的一種,仍然以電影為例,一部電影可以有多個演員,一個演員也可以參演多部電影,電影表和演員表之間就是“多對多”的關系 針對多對多的映射關系,
Go語言學習筆記十一: 切片(slice)
操作 容量 方括號 一個 組類型 學習 中學 slice 修改 Go語言學習筆記十一: 切片(slice) 切片這個概念我是從python語言中學到的,當時感覺這個東西真的比較好用。不像java語言寫起來就比較繁瑣。不過我覺得未來java語法也會支持的。 定義切片 切片可以
Hibernate學習筆記2.4(Hibernate核心開發接口和三種狀態)
thread rsa 分享 action let 能力 ima 方法 如果 1.configuration(配置信息管理,產生sessionfactory) sessionfactory管理一系列的連接池 opensession 永遠打開新的,需要手動close get
Hibernate學習筆記一之註解
date out 語句 數據庫 sca 進制 sum default tab 1、@Entiy 實體類註解 2、@Table 映射表 (name=“”)表名 3、@Coulmn @Column( name