Hibernate學(xué)習(xí)筆記:IDEA下Maven工程使用Hibernate示例

開發(fā)步驟

1炼蹦、使用IDEA創(chuàng)建Maven工程掀虎;
2凌盯、添加MySQL和Hibernate依賴,并通過IDEA生成Hibernate配置文件hibernate.cfg.xml烹玉;
3驰怎、通過IDEA生成持久化類和對象-關(guān)系映射文件*.hbm.xml;
4二打、通過Hibernate API編寫訪問MySQL數(shù)據(jù)庫的代碼县忌。

創(chuàng)建Maven工程

創(chuàng)建步驟如圖所示:


選擇Create New Project.png
選擇Maven.png
填寫坐標(biāo).png
單擊Finish.png
Maven工程創(chuàng)建完成.png

添加依賴,并生成hibernate.cfg.xml配置文件

在pom.xml文件中添加Hibernate继效、MySQL症杏、Junit三個依賴:

    <dependencies>
        <!-- Hibernate依賴 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.1.1.Final</version>
        </dependency>

        <!-- MySQL數(shù)據(jù)庫依賴 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.15</version>
        </dependency>

        <!-- Junit依賴 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
        </dependency>
    </dependencies>

通過IDEA生成Hibernate.cfg.xml配置文件步驟如圖:

選擇Project Structure....png
選擇Facets、Hibernate.png
選擇HibernateProject.png
選擇配置文件.png
選擇配置文件路徑在resources下.png
配置文件完成.png

此時要在hibernate.cfg.xml配置文件中寫入配置信息:

寫入配置信息.png

代碼如下瑞信,其中connection.username是MySQL的登錄賬戶名厉颤,connection.password是密碼,我這里賬戶名是root凡简,密碼是123逼友。

<session-factory>
    <!-- MySQL登錄賬戶名 -->
    <property name="connection.username">root</property>
    <!-- 賬戶密碼 -->
    <property name="connection.password">123</property>
    <!-- 一些屬性信息 -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost:3306</property>
    <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
    <!-- 指定在程序運行時在控制臺輸出SQL語句 -->
    <property name="show_sql">true</property>
    <!-- 輸出的SQL語句格式化 -->
    <property name="format_sql">true</property>
    <!-- 運行時在數(shù)據(jù)庫自動生成數(shù)據(jù)表,這里選擇update -->
    <property name="hbm2ddl.auto">update</property>
  </session-factory>

使用IDEA生成持久化類及*.hbm.xml文件

在MySQL數(shù)據(jù)庫中建立students數(shù)據(jù)庫并新建student表秤涩,如圖:

在MySQL中建數(shù)據(jù)庫帜乞、建表.png

將id列的自增勾選上:

勾選id的自增.png

在IDEA中生成持久化類、*.hbm.xml文件:

IDEA連接數(shù)據(jù)庫.png
填寫用戶名和密碼測試連接成功后確定.png
選擇Persistence.png
選擇By Database Schema.png

進(jìn)入Import Database Schema界面溉仑,Choose Data Source項選擇@localhost后可以看到MySQL中的數(shù)據(jù)庫以及其中的表信息,勾選student状植、age浊竟、id怨喘、lastName。Package是存放持久化類StudentEntity和映射文件StudentEntity.hbm.xml的包振定,需要提前建好必怜,我這里在java下建的包名是test。勾選Add to Session Factory和Generate Separ...后單擊OK即可生成持久化類和映射文件后频。

生成映射類及hbm文件.png
生成的持久化類和映射文件.png

此時需要:

  • 將StudentEntity.hbm.xml文件移至resources文件夾下梳庆,否則配置文件hibernate.cfg.xml會找不到它,運行時會報錯卑惜;
  • 更改StudentEntity.hbm.xml文件中id的generator膏执,填寫class為native。
修改一些東西.png

再回到hibernate.cfg.xml文件中可以看到IDEA已經(jīng)幫我們填寫好了映射文件的地址:


IDEA填寫映射文件地址.png

通過Hibernate API編寫訪問數(shù)據(jù)庫代碼

新建HibernateTest類進(jìn)行測試:

public class HibernateTest {
    @Test
    public void Test(){
        //SessionFactory是生成Session的工廠
        SessionFactory sessionFactory=null;
        //Configuration類負(fù)責(zé)管理Hibernate的配置信息
        Configuration configuration=new Configuration().configure();
        //Hibernate4之后新增ServiceRegistry接口露久,所有基于Hibernate 的配置都必須統(tǒng)一向這個ServiceRegistry注冊后才能生效
        ServiceRegistry serviceRegistry=new ServiceRegistryBuilder()
                .applySettings(configuration.getProperties())
                .buildServiceRegistry();
        //生成SessionFactory類
        sessionFactory=configuration.buildSessionFactory(serviceRegistry);
        //生成Session類
        Session session=sessionFactory.openSession();
        //事務(wù)
        Transaction transaction=session.beginTransaction();
        //新建一個StudentEntity實例更米,將它插入數(shù)據(jù)庫
        StudentEntity studentEntity=new StudentEntity();
        studentEntity.setId(1);
        studentEntity.setAge(20);
        studentEntity.setLastName("喬峰");
        //Session的save操作將這個實例從臨時狀態(tài)變?yōu)槌志没癄顟B(tài)
        session.save(studentEntity);
        //提交事務(wù)
        transaction.commit();
        //關(guān)閉操作
        session.close();
        sessionFactory.close();
    }
}

運行結(jié)果后如圖,輸出了一條SQL的插入語句毫痕。

運行成功.png

查看數(shù)據(jù)庫征峦,已經(jīng)將剛才的實例成功插入了數(shù)據(jù)庫。

數(shù)據(jù)庫插入成功.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末消请,一起剝皮案震驚了整個濱河市栏笆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌臊泰,老刑警劉巖蛉加,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異因宇,居然都是意外死亡七婴,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門察滑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來打厘,“玉大人,你說我怎么就攤上這事贺辰』Фⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵饲化,是天一觀的道長莽鸭。 經(jīng)常有香客問我,道長吃靠,這世上最難降的妖魔是什么硫眨? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮巢块,結(jié)果婚禮上礁阁,老公的妹妹穿的比我還像新娘巧号。我一直安慰自己,他們只是感情好姥闭,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布丹鸿。 她就那樣靜靜地躺著,像睡著了一般棚品。 火紅的嫁衣襯著肌膚如雪靠欢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天铜跑,我揣著相機(jī)與錄音门怪,去河邊找鬼。 笑死疼进,一個胖子當(dāng)著我的面吹牛薪缆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伞广,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼拣帽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嚼锄?” 一聲冷哼從身側(cè)響起减拭,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎区丑,沒想到半個月后拧粪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡沧侥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年可霎,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宴杀。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡癣朗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旺罢,到底是詐尸還是另有隱情旷余,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布扁达,位于F島的核電站正卧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏跪解。R本人自食惡果不足惜炉旷,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窘行,春花似錦骏啰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽透绩。三九已至翘骂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帚豪,已是汗流浹背碳竟。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留狸臣,地道東北人莹桅。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像烛亦,于是被迫代替她去往敵國和親诈泼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容