天才第一步,雀氏紙尿褲,Hibernate第一步,連接數據庫。
Hibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 所以說,Hibernate講白了就是簡化了與數據庫之間的操作,那麼要玩轉它自然就得連接上數據庫咯。(與Hibernate對應的orm框架還有Mybatis,只不過Mybatis是半自動的,但是個人感覺更喜歡Mybatis,更自由,擴展性更強)。
今天就給大家分享一下Hibernate怎麼連接mysql數據庫並自動創建表,至於其他數據庫的連接其實是同理的,大家自己學會舉一反三。
第一步:隨便創建一個java項目,麻痺的項目的都沒有怎麼玩對吧?New》Other...,輸入java Project,如圖:

點擊Next,然後輸入項目名稱,選擇使用的JDK版本等等,然後點擊Finish,如圖:

這樣一個java項目就創建好了。
第二步:在項目的根目錄創建一個lib目錄用來存放項目所需的jar包,這裡需要用到的有Hibernate的核心jar包、mysql jdbc的jar包以及Junit的jar包,這裡會用Junit進行測試(哥們不用我教怎麼去獲取這些包吧?如果要,那哥們你還是放棄這個行業吧,作為職業IT屌絲,一定要從基層就學會獲取資源,利用資源),如圖:

然後,在項目中引入這些jar包,鼠標右鍵點擊項目,選擇Properties,彈出如圖所示窗口:

點擊Java Build Path,點擊Libraries,點擊Add JARs,彈出:

將lib目錄下的jar包全部選中點擊ok按鈕就成了,如圖:

第三步:創建Hibernate的配置文件,在src上點擊鼠標右鍵選擇New》Other...輸入Hibernate,彈出Hibernate Tools插件相關的內容,然後選中配置文件,點擊Next,如圖:

點擊Next,Next,Finish就好了。
第四步:在src路徑下按照包命名規范創建包,並在entity包下創建一個實體類,這裡我創建的是一個Student學生類,然後隨便給上幾個字段,用getter/setter封裝一下就好,如圖:

第五步:創建實體類的映射文件,New》Other...輸入Hibernate,彈出Hibernate Tools插件相關的內容,然後選中映射文件,點擊Next,如圖:

彈出如圖所示窗口,點擊Add Class:

選擇要映射的實體類,點擊OK按鈕,如圖:

然後又是Next或者Finish啥的,不用多說,然後映射文件就創建成功了,Hibernate會幫我們自動寫好映射文件,如圖:

第六步:進行Hibernate配置文件的詳細配置,包括連接數據庫需要的配置,是否輸出sql語句,導入映射文件等等,(各個配置的含義請自行了解,培養個人學習能力)如圖:

Hibernate常用配置理解:

第七步:創建數據庫,配置文件中我用的是hibernate數據庫,記得打開mysql服務,然後通過可視化工具創建一個hibernate數據庫就好,如圖:

最後一步:使用Junit進行測試,新建一個test包,在包下新建一個Junit測試類,如圖:

然後敲上相應的代碼:
1 package com.alanlee.test;
2
3 import java.util.Date;
4
5 import org.hibernate.Session;
6 import org.hibernate.SessionFactory;
7 import org.hibernate.Transaction;
8 import org.hibernate.cfg.Configuration;
9 import org.hibernate.service.ServiceRegistry;
10 import org.hibernate.service.ServiceRegistryBuilder;
11 import org.junit.After;
12 import org.junit.Before;
13 import org.junit.Test;
14
15 import com.alanlee.entity.Student;
16
17 /**
18 * 測試類
19 * @author AlanLee
20 *
21 */
22 public class StudentTest
23 {
24 /**
25 * 會話工廠
26 */
27 private SessionFactory sessionFactory;
28 /**
29 * 會話對象
30 */
31 private Session session;
32 /**
33 * 事務對象
34 */
35 private Transaction transaction;
36
37 /**
38 * 初始化
39 * @throws Exception
40 */
41 @Before
42 public void setUp() throws Exception
43 {
44 // 創建配置鍍錫
45 Configuration config = new Configuration().configure();
46 // 創建服務注冊對象
47 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties())
48 .buildServiceRegistry();
49 // 創建會話工廠對象
50 sessionFactory = config.buildSessionFactory(serviceRegistry);
51 // 創建會話對象
52 session = sessionFactory.openSession();
53 // 開啟事務
54 transaction = session.beginTransaction();
55 }
56
57 /**
58 * 釋放資源
59 * @throws Exception
60 */
61 @After
62 public void tearDown() throws Exception
63 {
64 // 提交事務
65 transaction.commit();
66 // 關閉會話
67 session.close();
68 // 關閉會話工廠
69 sessionFactory.close();
70 }
71
72 /**
73 * 測試方法
74 */
75 @Test
76 public void testSaveStudent()
77 {
78 //生成學生對象
79 Student student = new Student();
80 student.setSid(1);
81 student.setName("AlanLee");
82 student.setSex("男");
83 student.setBirthday(new Date());
84 student.setAddress("湖南郴州");
85 //保存對象進入數據庫
86 session.save(student);
87 }
88
89 }
通過Junit運行這個類進行測試,運行成功,如圖:

然後我們看一下數據庫,刷新一下表,如圖:

這樣,通過Hibernate連接mysql數據庫並自動創建表就完美實現了。
小Alan之前有寫關於eclipse安裝Hibernate Tools的隨筆,關於Hibernate Tools沒弄明白的自己翻出來看看,小Alan都是盡量用圖片展示就是喜歡大家能夠盡量自己動手敲敲,別還沒理解就是一個copy,那樣子是很難把技術變成自己腦海裡的東西的。
爸媽又在催吃飯了,下回見。