1首先在數據庫中建立一個用戶表User(我推薦剛起步的時候這樣起名字,因爲它會和你接下來的類名相同,減少出錯誤的可能性)
2我這裏用的是idea,但是你用其他IDE也一樣,沒有關係。建立一個User類。
public class User {
private int userId;
private String userName;
private String password;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
3然後開始建立hibernate的配置文件。
首先建立orm文件(就是把你建立的User類和數據庫中的User表關聯起來)
這個文件可以隨便起名字,但爲了規範(也就是別人看的懂)一般都是 類名+hbm.xml.
所以我們這裏User的映射文件名爲: User-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的重點不是配置文件)
<?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="model">
<!-- 配置信息-->
</hibernate-mapping>
我擔心不能把顏色顯示出來所以我把圖片上傳了。
<hibernate-mapping package="model">
<!-- 配置信息-->
</hibernate-mapping>
model就是根標籤(沒有爲什麼,規定就是這樣),裏面有一個package屬性,就是寫你類的包名(這個包名可以寫在這裏,接下來寫全類名的時候,你就寫類名就可以了,不用加包名)。如果你這裏沒寫package這個屬性也沒事,在下面寫包名的時候寫全類名就可以了。
class
hibernate-mapping的下一個標籤就是class標籤,看名字就可以猜到,接下來我們要寫類的一些信息了。
類的第一個屬性當然就是類名了,因爲我們前面已經指定來包名,所以這裏直接寫User就可以了。當然也需要下這個類所映射的表名,當然也是User了。
每一張表中都有主鍵,也就是id。所以id這個標籤是用來指定id的。
name屬性是類中的字段的名稱。也就是User 中的private int userId這個變量。
所以name=”userId”
cloumn屬性User表中對應的字段,當然也是userId(當時我們爲了減少出錯的可能性全部用來相同的名字,其實在實際開發中也是儘量用相同的名字)
type類型:就是###類###中數據的類型
因爲我們這裏id是int類型,爲了方便我們希望id以自增的方式,所以又加了一個 generator 標籤,它的class值爲increment。
除了id之外其他字段全部用property標籤,它和id大同小異,也是寫column,name,type這三個屬性值。
這裏我就不再重複講了.
好了,orm文件寫完來,接下來就是hibernate的配置文件。
建議大家起的名字爲 hibernate-cfg.xml 很直觀,就是hibernate config的縮寫嘛。
<?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>
<!-- Database connection settings -->
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">jdbc:hsqldb:hsql://localhost</property>
<property name="connection.username">sa</property>
<property name="connection.password"></property>
<mapping resource="mapping/User-hbm.xml"/>
</session-factory>
</hibernate-configuration>
開始標籤就是hibernate-configuration這沒什麼可以講的。
接下來就是session-factory:如何理解session-facotry呢,其實它就是一個連接工廠,在jdbc裏面連接是Connection,在hibernate裏面連接時Session。
在yongjdbc連接的時候,我們需要加載jdbc驅動,用戶名,密碼,url同樣在這裏也需要這些的加載。
當然加載完這些之後,我們需要將映射文件也配置進去。
也就是mapping標籤,我們這裏只有一個映射文件,因此只寫一個mapping。
好了,現在貌似基本都完了,我們來實踐一下吧。
Configuration configuration=new Configuration();
configuration.configure("hibernate-cfg.xml");
SessionFactory sessionFactory=configuration.buildSessionFactory();
User user=new User();
user.setUserName("liu");
Session session=sessionFactory.openSession();
Transaction transaction=session.beginTransaction();
session.save(user);
transaction.commit();
解釋一下這段代碼,Configuration就是配置,SessionFactory就是鏈接工廠,Session就是連接,Transaction就是事物,學過數據庫事物有一個特點就是要麼全部執行成功,要麼全部都不成功。