本篇文章介紹內容:
(1)如何在 PRoject 新建 Hibernate Module。
(2)如何添加 jar 包到 Module 下。
(3)如何添加 hibernate.cfg.xml,以及如何自定義模板。
(4)如何添加 Entity.hbm.xml 文件,以及自動生成實體。
3.在最開始前,添加 Hibernate 的插件。
文章鏈接(一篇非常詳細的建立hibernate項目的介紹)http://www.mobile-open.com/2016/977339.html以及這篇文章http://blog.csdn.net/QQ_15096707/article/details/51419304Hibernate學習:Intellij IDEA下新建Hibernate HelloWorld:Hibernate是java領域的一款輕量級ORM(對象關系模型)框架,它對JDBC進行了封裝,實現了從關系型數據庫到面向對象的領域模型的映射,可以將對象自動映射成數據庫中的信息。它還提供了面向對象的數據查詢檢索機制,這樣我們就不用關心繁瑣的JDBC,從而極大縮短了手動處理SQL和JDBC上的開發時間。
既然Hibernate是一款ORM框架,那就涉及到數據庫操作。這里我們用最常見的開源關系型數據庫mysql,具體安裝辦法我這里不細說,不懂的可以百度谷歌。這里我主要說說在Intellij IDEA下搭建Hibernate開發環境。
相比于eclipse,JetBrains公司的Intellij IDEA更智能,操作方便,還可以兼容eclipse的項目。Google的Android Studio也是在Intellij IDEA的基礎上開發的。
(一)新建maven項目,通過maven管理依賴
(二)填寫項目GroupId和ArtifactId,點擊next
(三)填寫項目名稱,選擇項目存放位置,點擊finish
項目目錄結構如圖所示:
這里我說一下文件夾的主要功能:
java:存放代碼 resources:存放配置文件 test:存放測試代碼 pom.xml:maven的依賴文件,以來都在這里添加(四)添加依賴
建好項目以后,接下來就是要添加hibernate依賴了。由于Hibernate要連接mysql,所以還要添加mysql驅動。這樣maven會自動下載jar包到本地倉庫。
pom.xml
?
123456789101112131415161718192021222324252627282930313233 <!--?xml version=
"1.0"
encoding=
"UTF-8"
?-->
<project xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemalocation=
"http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelversion>
4.0
.
0
</modelversion>
<groupid>com.doubecharli</groupid>
hibernate</artifactid>
<version>
1.0
-SNAPSHOT</version>
<dependencies>
<!--junit-->
<dependency>
<groupid>junit</groupid>
junit</artifactid>
<version>
4.12
</version>
</dependency>
<!--hibernate-->
<dependency>
<groupid>org.hibernate</groupid>
hibernate-core</artifactid>
<version>
5.1
.
0
.Final</version>
</dependency>
<!--mysql driver-->
<dependency>
<groupid>mysql</groupid>
mysql-connector-java</artifactid>
<version>
5.1
.
40
</version>
</dependency>
</dependencies>
</project>
Hibernate第一個實例
上面我們把開發環境搭好了,到這里我們就可以開擼了。使用Hibernate一共有四步,分別是:
創建Hibernate配置文件 創建持久化類 創建映射文件 通過Hibernate API訪問數據庫創建Hibernate配置文件
配置文件主要是配置數據庫的一些信息,包括用戶名和密碼等。它可以是properties文件,也可以是xml文件,比較常用的是xml文件。這里我用的是xml文件,默認名為hibernate.cfg.xml,放在resources文件夾下。當然你也可以另起名字,不過要在代碼中顯式聲明,后面我會說到。
hibernate.cfg.xml
?
12345678910111213141516171819202122232425262728 <!--?xml version=
'1.0'
encoding=
'utf-8'
?-->
<hibernate-configuration>
<session-factory>
<!-- 指定連接數據庫所用的驅動 -->
<property name=
"connection.driver_class"
>com.mysql.jdbc.Driver</property>
<!-- 指定連接數據庫的url,hibernate連接的數據庫名 -->
<property name=
"connection.url"
>jdbc:mysql:
//localhost:3306/hibernate</property>
<!-- 指定連接數據庫的用戶名 -->
<property name=
"hibernate.connection.username"
>root</property>
<!-- 數據庫的登陸密碼 -->
<property name=
"hibernate.connection.passWord"
>199498xy</property>
<!-- 指定連接數據庫的編碼 -->
<property name=
"connection.characterEncoding"
>utf8</property>
<!-- 指定數據庫方言 -->
<property name=
"hibernate.dialect"
>org.hibernate.dialect.MySQLDialect</property>
<!-- 顯示Hibernate持久化操作所生成的SQL -->
<property name=
"show_sql"
>
true
</property>
<!-- 將SQL腳本進行格式化后再輸出 -->
<property name=
"format_sql"
>
true
</property>
<!-- 指定自動生成數據表的策略 -->
<property name=
"hbm2ddl.auto"
>update</property>
<!-- 羅列所有的映射文件 -->
<mapping resource=
"mapping/User.hbm.xml"
>
</mapping></session-factory>
</hibernate-configuration>
代碼我不多說,重要的都寫了注釋,相信都看得明白。這里要說的是mapping節點,它用來指明映射文件的位置,一個映射文件對應一張表,每個映射文件都要在這里列出來。映射文件的內容就是我們后面第三步要說的。
創建持久化類
持久化類就是一個簡單的java bean,bean的屬性對應表的字段,一個類對應一張表
User.java
?
12345678910111213141516171819202122232425262728293031323334 package
com.doubecharli.bean;
/**
* Created by Administrator on 2016/12/15.
*/
public
class
User {
private
String id;
private
String username;
private
int
password;
public
String getId() {
return
id;
}
public
void
setId(String id) {
this
.id = id;
}
public
String getUsername() {
return
username;
}
public
void
setUsername(String username) {
this
.username = username;
}
public
int
getPassword() {
return
password;
}
public
void
setPassword(
int
password) {
this
.password = password;
}
}
創建映射文件
映射文件是根據持久化類來寫的,還要在配置文件hibernate.cfg.xml中聲明。它就相當于持久化類和數據庫中表的一座橋梁,Hibernate就是通過它找到數據庫的對應字段,從而進行增刪查改操作的
User.hbm.xml
?
12345678910 <!--?xml version=
'1.0'
encoding=
'utf-8'
?-->
<hibernate-mapping>
<
class
name=
"com.doubecharli.bean.User"
schema=
"hibernate"
table=
"user"
>
<id column=
"id"
name=
"id"
>
<property column=
"username"
name=
"username"
>
<property column=
"password"
name=
"password"
>
</property></property></id></
class
>
</hibernate-mapping>
class節點的name屬性指明映射文件對應的類,tabel指明數據庫中對應的表;id節點對應數據庫的主鍵;property 節點的name屬性指明持久化類的屬性,column指明表的字段
通過Hibernate API訪問數據庫
到這里我們已經完成了Hibernate的基本搭建,最后一步就是要通過Hibernate的各種API來操作數據庫,這也是我們要達到的目的。由于篇幅有限,我這里主要是向數據庫中插入一條數據,其他的API我會在后面的文章講。話不多少,上代碼!
?
1234567891011121314151617181920212223242526272829303132333435 package
com.doubecharli;
import
org.hibernate.Session;
import
org.hibernate.SessionFactory;
import
org.hibernate.Transaction;
import
org.hibernate.cfg.Configuration;
/**
* Created by Administrator on 2016/12/15.
*/
public
class
HibernateTest {
public
static
void
main(String[] args) {
// 加載Hibernate默認配置文件
Configuration configuration =
new
Configuration().configure();
// 用Configuration創建SessionFactory
SessionFactory factory = configuration.buildSessionFactory();
// 創建Session
Session session = factory.openSession();
// 開啟事務
Transaction transaction = session.beginTransaction();
// 實例化持久化類
User user =
new
User();
user.setId(
"1"
);
user.setUsername(
"doubecharli"
);
user.setPassword(
123456
);
// 保存
session.save(user);
// 提交事務
transaction.commit();
// 關閉Session,釋放資源
session.close();
factory.close();
}
}
執行以后,我們可以到數據庫中看看,已經插入了一條記錄!說明我們已經通過Hibernate的API來操作數據庫,是不是很方便?再也不用寫去復雜繁瑣的JDBC了
注意:如果你的配置文件命名不是默認的hibernate.cfg.xml,你就要在代碼中顯式聲明配置文件
?
1 Configuration configuration =
new
Configuration().configure(
"hibernate.xml"
新聞熱點
疑難解答