我們所要建的應用非常簡單只是利用hibernate對一張表進行操作
軟件環境
Eclipse
MyEclipse
MySql Server
MySql Java Connector J
hibernate Core Libraries
hibernate Advanced Libraries
參考書籍及文檔
<<深入淺出Hibernate>>夏昕唐勇曹曉剛
MyEclipse Help Content
整個應用的創建依以下步驟完成
()新建一個名為hibernatetest的mysql schema
()創建一張名為User的表格其語句如下
CREATE TABLE `hibernatetest``User` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT
`name` VARCHAR() NOT NULL
`sex` CHAR NOT NULL
`age` TINYINT UNSIGNED NOT NULL
PRIMARY KEY (`id`)
)
ENGINE = InnoDB;
()打開MyEclipse的DB Browser視圖在右擊選項菜單(Context Menu)上選擇New……彈出Database
Profile對話框用於新建一個Profile填入以下信息
<>Profile Name localhost_mysql_profile
<>Driver 打開Configure database driver鏈接配置jdbc驅動我們只需加入MySql
Connector J的JDBC驅動即可
<>URL jdbc mysql:///hibernatetest
<>User Name 用戶名
<>Password 密碼
創建完profile後嘗試一下連接至數據庫成功即可
()在Eclipse中新建一個名為HibernateSample的Java項目
<>創建一個名為config的目錄用於放置hibernatecfgxml
<>創建一個名為mappings的目錄用於放置映射文件
()在HibernateSample項目的右擊選項菜單中選擇MyEclipse>Add Hibernate Capabilities……這
樣會彈出一個Hibernate Support for MyEclipse的對話框
<>第一步是選擇要添加到工程的包我們把Hibernate的Core及Advanced包都勾上
<>第二步是否創建hibernatecfgxml我們把configuration folder設定為src\config
<>第三步是指定數據庫連接細節(specify database connection details)我們只需名為
localhost_mysql_profile即可因為我們之前已經進行了設置
<>第四步問你是否創建SessionFactory這個SessionFactory其實是Hibernate提供的一個用於
管理Session的類它可以確保在每個獨立的線程中Session是唯一的我們創建名為
testhibernatesamplefactoryHibernateSessionFactory的類
通過上述的四步現在的工程裡面已經擁有了hibernate所需的包及配置文件
()在src目錄下創建一個名為logjproperties的文件內容如下
### direct log messages to stdout ###
logjappenderstdout=orgapachelogjConsoleAppender
logjappenderstdoutTarget=Systemout
logjappenderstdoutlayout=orgapachelogjPatternLayout
logjappenderstdoutlayoutConversionPattern=%d{ABSOLUTE}
%p %c{}:%L %m%n
logjrootLogger=warn stdout
hibernate=error
因為hibernate是通過logj進行日志管理的所以加上這個會比較好不加會在運行時出錯
()創建testhibernatesamplemodelUser類篇幅所限大致如下
package testhibernatesamplemodel;
public class User {
private Integer id;
private String name;
private char sex;
private byte age;
//後面是一堆的settergetter用於set及get各個屬性
}
()在工程的mappings(在第步創建的目錄)目錄下創建一個名為Userhbmxml內容如下
mappingdtd>
()在HibernateSample項目的右擊選項菜單中選擇New > JUnit Test Case……彈出新建JUnit
Test Case的對話框
<>package上輸入testhibernatesampletest
<>type上輸入UserTest
<>在which method stubs whould you like to create中勾上setUp()tearDown()
整個UserTest類的代碼如下
package testhibernatesampletest;
import orghibernateHibernateException;
import orghibernateSession;
import orghibernateTransaction;
import testhibernatesamplefactoryHibernateSessionFactory;
import testhibernatesamplemodelUser;
import junitframeworkAssert;
import junitframeworkTestCase;
public class UserTest extends TestCase {
//hibenate的session對象
private Session session = null;
protected void setUp() throws Exception {
supersetUp();
session = HibernateSessionFactorycurrentSession();
}
public void testUserInsert() {
Transaction tran = null;
try {
tran = sessionbeginTransaction();
User user = new User();
usersetName(suhaoyuan);
usersetSex(M);
usersetAge(ByteparseByte());
sessionsave(user);
mit();
AssertassertEquals(getId()intValue() > true);
}
catch(HibernateException ex) {
exprintStackTrace();
Assertfail(exgetMessage());
if(tran != null) {
try {
tranrollback();
}
catch(HibernateException tranEx) {
tranExprintStackTrace();
}
}
}
}
protected void tearDown() throws Exception {
supertearDown();
HibernateSessionFactorycloseSession();
}
}
()運行剛創建的UserTest測試用例即完成該應用
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28761.html