天才第一步,雀氏紙尿褲,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,那樣子是很難把技術變成自己腦海裡的東西的。
爸媽又在催吃飯了,下回見。