標籤:
在實際開發中,一般都是表結構先設計好,再實現代碼,所以根據表結構產生資料庫實體類比較常見。說不如做,行動吧。
建立表
CREATE TABLE [dbo].[Classes](
[class_id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) NULL,
[create_time] [datetime] NULL,
CONSTRAINT [PK_Classes] PRIMARY KEY CLUSTERED
(
[class_id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON
建立Console Configuration
New->選擇Console Configuration->Next:
檢查下Hibernate版本,項目,資料庫,設定檔。點確定後就是:
可能有些人沒有這個視圖,開啟Window->Show View->Other->Hibernate->Hibernate Configuration就可以看到那個視圖了。
建立反向工程設定檔
這個檔案也可以在啟動產生代碼的時候選擇建立。但是我還是先建立好放心些。
next
next
選擇console configuration,refresh,選擇要產生代碼的表。
至此hibernate.reveng.xml檔案已經建立,但是我們需要做些配置,預設的可能不太合適。
開啟reveng.xml檔案,切換到:
如果順利的話,點擊“Add”會彈出資料庫庫讓你選擇。如果有多個console configuration會先提示讓選擇一個。
可是可是我不順利啊,選擇了console configuration之後什麼反應都沒有。於是我開始各種折騰:
折騰1:修改console configuration的hibernate版本為5.0以下。居然可以產生代碼了,激動,可是代碼報錯。折騰2:升級eclipse版本,這個是我靈光一閃覺得可能是我的hibernate版本太高了,hibernate tools不支援,可是hibernate tools可是跟著eclipse走的。下載中。。。。下載了Mar2版本不可以安裝Jboss tools 4.4.0,下載了Neon版本,天啊嚕,看到Jboss tools 4.4.0了,心裡又是一陣激動。可惜安裝不成功,反覆了幾次,姐不幹了,準備第二天再試(ps:之前就碰到過當天安裝不成功的,改天就行了,懷疑網路問題)。第二天一早我就開始重新安裝Jboss tools,good,成功了,成功了,不僅安裝成功,也可以添加Tables,可以見證我的成功:
我又開始激動的準備產生代碼了。
看不到這個按鈕,沒關係,沒關係,從window->Perspetive開啟,如:
回到正題,開始配置運行產生代碼的相關配置:
Run起來,代碼出來了:
配置cfg.xml
代碼是產生了,跟資料庫的映射關係也有了,可是hibernate不知道對應檔在哪啊,有必要告訴一聲,修改cg.xml,添加下面配置,當然用工具添加更簡單:
<mapping resource="Classes.hbm.xml"/>
我把Classes.hbm.xml拉倒resources檔案下,所以跟cfg.xml是一個目錄,實際情況檔案在哪就配置相應的路徑即可。
修改LoginAction
public String execute() throws Exception {
Session ss = getSession();
ss.beginTransaction();
/*ss.save(PersonShana);
ss.getTransaction().commit();*/
Classes classes = new Classes();
classes.setName("語文");
classes.setCreateTime(new Date());
ss.save(classes);
ss.getTransaction().commit();
ss.close();
return "success";
}
static Session getSession() {
if (sessionFactory == null) {
final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure().build();
sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
}
return sessionFactory.openSession();
}
運行
開啟http://localhost:8080/webtest/login
資料庫有資料啦。
demo
下載
使用Maven Hibernate5 之反向工程