1 配置MyEclipse開發環境
MyEclipse在進行框架開發的操作上還是非常好用的,所以在MyEclipse裏面如果要想進行Hibernate程序的編寫,那麼必須要配置數據庫的相關內容。
1、打開數據庫的連接窗口試圖;
打開這個窗口的目的是爲了可以在MyEclipse裏面配置MySQL數據庫的連接。
2、隨後在數據庫瀏覽器窗口裏麪點鼠標右鍵,進行新的連接創建。
3、在出現的對話框之中選擇要使用的數據庫,本次使用的是MySQL數據庫。
(1)同時在本處操作的時候還需要配置數據庫的驅動程序;
配置完成之後可以直接選擇右鍵就可以打開mysql的數據庫了。
4、一切準備就緒之後創建第一個Hibernate項目,這個項目的名稱爲“HibernateProject-01”,是一個WEB項目(所有的開發包都可以保存在lib目錄中);
5、而後爲該項目添加Hibernate開發支持。
6、在MyEclipse裏面最新支持的Hibernate版本是5.1。
隨後會詢問用戶是否需要創建一些文件:
(1)Hibernate的配置文件:hibernate.cfg.xml
(2)Hibernate工廠類:HibernateSessionFactory
隨後會詢問用戶要使用的數據庫是哪一個?選擇好之前配置的“mysql”數據庫。
接着會詢問用戶是否要添加一些Hibernate的開發支持包。
2 開發第一個程序
既然Hibernate屬於數據層的工具類,那麼工具類的特徵就是固定的操作模式,而且如果要進行數據庫操作,需要給出數據表,那麼下面首先創建一個數據庫腳本;
範例:數據庫腳本
-- 刪除數據庫
DROP DATABASE IF EXISTS hedb;
-- 創建數據庫
CREATE DATABASE hedb;
-- 使用數據庫
USE hedb;
-- 刪除數據表
DROP TABLE IF EXISTS `member`;
-- 創建數據表
CREATE TABLE `member`(
mid VARCHAR(50),
mname VARCHAR(50),
mage INT,
msalary DOUBLE,
mbirthday DATE,
mnote TEXT,
CONSTRAINT pk_mid PRIMARY KEY(mid)
);
2、Hibernate是基於簡單Java類的應用,所以在Hibernate裏面一切的數據操作都要以類爲主。所有的類不需要由用戶創建,可以通過工具自動完成。
生成的時候是找到數據庫的所在位置,並且定位到數據表上。
3、隨後會出現一個轉換的處理界面,這個界面上首先要選擇程序生成的位置(只有添加過Hibernate項目支持的才能夠被選擇)
Hibernate中的簡單Java類稱爲POJO(簡單古老的Java對象)。
其中Java的數據對象是根據表結構的描述動態生成的。
4、隨後要選擇主鍵生成模式,此時的mid字段應該是由用戶自己輸入的,既然是自己輸入的,那麼表示指派模式。
在最早的時候此步完成後就可以自動生成了,但是後來從MyEclipse 6.3開始。
之後會在org.lks.pojo
包中生成兩個文件:Member.java這個與表的映射類,還有一個Member.hbm.xml文件的配置。
5、編寫程序保存數據;
package org.lks.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.lks.pojo.Member;
public class TestMemberInsertDemo {
public static void main(String[] args) throws ParseException {
Member pojo = new Member();
pojo.setMid("3161301220");
pojo.setMname("lks");
pojo.setMage(23);
pojo.setMsalary(2000.0);
pojo.setMnote("hhy big fool!");
pojo.setMbirthday(new SimpleDateFormat("yyyy-MM-dd").parse("1996-10-15"));
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
SessionFactory sessionFactory = new MetadataSources(serviceRegistry).buildMetadata().buildSessionFactory();
Session session = sessionFactory.openSession();
session.save(pojo);
session.beginTransaction().commit(); //事務提交
System.out.println("success!");
session.close();
}
}
Hibernate裏面在更新的時候必須由用戶自己手工的進行事務的處理。
如果在Hibernate裏面假設都是session.save(pojo)
方式來保存數據的話,那麼這種操作就會顯得很容易編寫了,沒有再去編寫INSERT語句了,也沒有再出現PreparedStatement了,所有的JDBC操作都被Hibernate封裝了。