1. 程式人生 > >建立簡單hibernate專案步驟

建立簡單hibernate專案步驟

1new -- javaproject--輸入專案名稱  (與web沒有關係,只與jdbc有關係的)


(2)新增資料庫。首先顯示, windows--show views--other--

選擇DB Browser


(3)可以看到顯示,右鍵空白處


(4)可以看到顯示,右鍵空白處new

如果是mysql:選擇MYSQL Connector/J


如果是oracle:選擇Oracle(Thin driver)


(5)彈出classname,點選finish。可以看到已經完成。


(6)右鍵資料庫,選擇對應的庫,表,右鍵--Hibernate reverse engineering--


(7)選擇包,選擇對應的選項--next


(8)選擇native--next


(9)先別急著點選finish,點選表--輸入  entity.Car。意思是entity包下建立Car類,然後選擇native--點選finish



(10)生成下邊的,再建立一個sql--new file--輸入名字:dosql.sql檔案。


(11)建立sql檔案後,輸入語句:select * from emp;sql results中可以檢視。


在自動生成emp實體類,自動生成Emp.hbm.xml 。這些是根據資料庫生成的java程式碼和配置檔案。接著來寫測試類


在自動生成

emp類中sourse--new一個toString方法。


(12)建立HibernateTest類。

import java.util.List;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.SessionFactory;

import org.hibernate.cfg.Configuration;

import entity.Emp;

public class HibernateTest {

public static void main(String[] args) {

//Hibernate的配置類物件,用於建立SessionFactory.

Configuration conf = new Configuration().configure();

//會話(session)工廠, 用於建立Session的. 等價於jdbcConnection

SessionFactory factory = conf.buildSessionFactory();

//開啟會話

Session session = factory.openSession();

//通過會話 curd操作.

//儲存一個物件,通過測試

saveEmpTest(session);

//修改物件,通過測試

//updateEmpTest(session);

//刪除一個,通過測試

//removeEmpTest(session);

//查詢一個物件,通過測試

queryEmpById(session, 7900);

//查詢列表

queryEmpList(session);

queryEmpListByDeptno(session, 10);

//會話完畢之後要關閉

session.close();

//關閉工廠

factory.close();

}

static void saveEmpTest(Session session){

Emp emp = new Emp();

emp.setEmpno(1); //由於hbm重配置的主鍵生成策略是native, 所以指定的工號無效..

emp.setEname("新建的名字");

session.beginTransaction(); //開啟事務

session.save(emp);

session.getTransaction().commit();//提交事務

}

static void updateEmpTest(Session session){

/*Empemp = new Emp();

emp.setEmpno(1);

//emp.setEname("DEF");

emp.setSal(1000.0);

session.update(emp);*/

//先查出物件(持久化狀態的).

Emp emp = (Emp)session.get(entity.Emp.class, 7938);//類名,後邊引數是寫編號,修改名字。

//修改物件屬性

emp.setEname("Sam");

session.beginTransaction(); //開啟事務

session.getTransaction().commit();//提交事務

}

//刪除表格,成功刪除

static void removeEmpTest(Session session){

Emp emp = new Emp();

emp.setEmpno(7938);

session.delete(emp);

session.beginTransaction(); //開啟事務

session.getTransaction().commit();//提交事務

}

static void queryEmpById(Session session , Integer empno){

Emp emp = null;

emp = (Emp)session.get(entity.Emp.class, empno);

//emp = (Emp)session.load(entity.Emp.class,empno);

//---get / load 有區別

System.out.println(emp);

}

//HQL查詢

static void queryEmpList(Session session){

Query query = session.createQuery("from Emp");

List<Emp> empList = query.list();

System.out.println(empList);

}

static void queryEmpListByDeptno(Session session, Integer deptno){

Query query = session.createQuery("from Emp where deptno = :deptno");

query.setParameter("deptno", deptno);

List<Emp> empList = query.list();

System.out.println(empList);

}

}

(13)執行程式,可以看到下邊打印出資料庫的資訊。



(14)一個簡單的hibernate程式建立成功了,接著就可以寫程式啦。

錯誤提示:原因是伺服器沒開。