學無止境
BlogJava
首頁
新文章
新隨筆
聚合
管理
posts - 37, comments - 9, trackbacks - 0
Hibernate筆記系列01——搭建Hibernate開發(fā)環(huán)境以及第一個Hibernate項目(根據傳智播客相關視頻整理)
使用的是Hibernate3.2.x版本。數據庫采用的是MySQL5.1。實現保存用戶的功能。由于主要是搭建開發(fā)環(huán)境以及寫第一個測試的小應用,因此里面的代碼只是簡單的實現功能。
1.下載Hibernate3.2。
www.hibernate.org
現在可能很難找到該版本,所以可以在百度搜索一下。下載后將壓縮文件解壓到本地硬盤,例如,我解壓到F:\hibernate-3.2目錄。
2.安裝MySQL數據庫,創(chuàng)建一個叫hibernatefirst的數據庫,然后use該數據庫(關于MySQL安裝以及MySQL如何創(chuàng)建數據庫等這里就不詳細說了。)
3.在MyEclipse中新建一個Java項目(不用是Web項目,Java項目即可),取名為hibernate。在項目下新建一個Folder,取名為lib,將hibernate解壓路徑下的hibernate3.jar文件,以及hibernate解壓路徑下的lib目錄下的所有jar文件一并拷貝到該lib目錄下。此外,hibernate作為一個持久層框架,其底層使用的依然是JDBC,因此,需要將MySQL的JDBC驅動加入該lib目錄下。這樣hibernate需要的jar文件就齊了。但是這些jar文件并沒有加入該項目的classpath中,因此是無法在項目中引用的。因此,選中項目下lib目錄下的所有jar文件,右鍵—>buildpath—>Add to Buildpath。
4.環(huán)境已經搭建好了,開始第一個簡單的hibernate項目吧。在src目錄下新建包:com.xiaobai.hibernate.domain,在其下創(chuàng)建類User,代碼如下:
1
package
com.xiaobai.hibernate.domain;
2
3
import
java.util.Date;
4
5
public
class
User
{
6
7
private
int
id;
8
private
String name;
9
private
Date birthday;
10
public
int
getId()
{
11
return
id;
12
}
13
public
void
setId(
int
id)
{
14
this
.id
=
id;
15
}
16
public
String getName()
{
17
return
name;
18
}
19
public
void
setName(String name)
{
20
this
.name
=
name;
21
}
22
public
Date getBirthday()
{
23
return
birthday;
24
}
25
public
void
setBirthday(Date birthday)
{
26
this
.birthday
=
birthday;
27
}
28
}
29
5.為User類編寫映射文件User.hbm.xml。在com.xiaobai.hibetnate.domain包下創(chuàng)建該文件,作為新手肯定不知道該文件中到底應該寫點什么,沒關系,hibernate為我們提供的示例中有,copy過來再進行修改就好。到hibernate解壓路徑下的eg\org\hibernate\auction路徑下,拷貝一個User.hbm.xml文件過來,將<hibernate-mapping>標簽內的內容全部刪除,將<hibernate-mapping>標簽的package改成User類所在的包,也就是該映射文件所在的包。然后在<hibernate-mapping>標簽對中添加如下內容:
1
<
class
name
="User"
>
2
<
id
name
="id"
>
3
<
generator
class
="native"
/>
4
</
id
>
5
<
property
name
="name"
/>
6
<
property
name
="birthday"
/>
7
</
class
>
差點忘了說明,映射文件的命名是XXX.hbm.xml,其中的XXX是你所要映射的domain對象的名稱,例如這里是User。
6.編寫hibernate配置文件hibernate.cfg.xml。到hibernate解壓路徑下的etc目錄下拷貝一份到src目錄下,注意不在包下,而是在src目錄下。將以下代碼覆蓋copy過來的版本:
1
<!
DOCTYPE hibernate-configuration PUBLIC
2
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
3
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
4
5
<
hibernate-configuration
>
6
<
session-factory
>
7
<
property
name
="hibernate.connection.driver_class"
>
com.mysql.jdbc.Driver
</
property
>
8
<
property
name
="hibernate.connection.url"
>
jdbc:mysql:///hibernate
</
property
>
9
<
property
name
="hibernate.connection.username"
>
root
</
property
>
10
<
property
name
="hibernate.connection.password"
>******
</
property
>
11
<
property
name
="hibernate.dialect"
>
org.hibernate.dialect.MySQLDialect
</
property
>
12
<
property
name
="hibernate.hbm2ddl.auto"
>
create
</
property
>
13
14
<
property
name
="show_sql"
>
true
</
property
>
15
<
mapping
resource
="com/xiaobai/hibernate/domain/User.hbm.xml"
/>
16
</
session-factory
>
17
</
hibernate-configuration
>
前面數過,hibernate底層也是通過JDBC實現的,因此也需要提供連接數據庫的信息,所以前面四條屬性就不難理解了。由于hibernate能支持很多關系型數據庫,那么生成sql語句時,會根據數據庫不同而作一定的調整,所以,需要配置數據庫方言的信息,這就是第五條所配置的。默認情況下,我們只創(chuàng)建了數據庫,數據庫中并沒有User對應的表,因此,保存User對象前需要先創(chuàng)建表,那么第六條配置的就是這個內容。另外,第七條配置讓hibernate在打印生成的sql語句。最后,不要忘了將映射文件以資源的形式加入配置文件,這就是<mapping>標簽中配置的內容。這么多的屬性name是不用記住的,進入hibernate解壓路徑,etc目錄下有一個hibernate.properties文件,里面包含了所有的屬性的示例。在配置的時候照貓畫虎拷貝需要的過來進行修改即可。
7.配置搞定,下面編寫一個測試類,代碼如下:
1
package
com.xiaobai.hibernate;
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
10
import
com.xiaobai.hibernate.domain.User;
11
12
public
class
Base
{
13
public
static
void
main(String[] args)
{
14
Configuration cfg
=
new
Configuration().configure();
15
16
SessionFactory factory
=
cfg.buildSessionFactory();
17
18
Session session
=
factory.openSession();
19
20
Transaction tx
=
session.beginTransaction();
21
22
User user
=
new
User();
23
user.setName(
"
張三
"
);
24
user.setBirthday(
new
Date());
25
26
session.save(user);
27
tx.commit();
28
29
session.close();
30
factory.close();
31
32
33
}
34
}
35
這段代碼僅僅是為了實現功能,實際上是很不完善的,后面的文章會討論如何寫完善的合理的代碼。運行該類。進入數據庫,發(fā)現數據庫中多了一張user表,查看里面的數據,已經添加了一條name為“張三”的數據。OK,第一個hibernate小示例完成了。
posted on 2010-08-28 18:56
wawlian
閱讀(1296)
評論(0)
編輯
收藏
所屬分類:
Hibernate
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
<
2010年8月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
Ajax(2)
Android
ArcGIS Desktop
ArcGIS Engine
ArcGIS Server
CentOS
CSS(1)
CVS Eclipse(1)
Dorado
Flex(3)
GIS概念(1)
Hibernate(1)
Java(3)
JavaScript(1)
jBPM
JDBC(1)
jQuery(3)
Servlet JSP(2)
Struts2(5)
云計算(1)
數據庫
雜(10)
算法導論(1)
隨筆檔案
2011年10月 (2)
2011年6月 (4)
2011年5月 (1)
2011年4月 (5)
2011年3月 (4)
2011年2月 (1)
2011年1月 (4)
2010年12月 (2)
2010年9月 (3)
2010年8月 (9)
搜索
最新評論
1.?re: 為何無法訪問微軟網站--解決方案(轉)
nice work,thx
--y.x.
2.?re: 為何無法訪問微軟網站--解決方案(轉)[未登錄]
為什么可以呢?有什么影響嗎?
--虎子
3.?re: Windows 7 SP1無法安裝oracle10g 11g的解決辦法(轉)
樓主說得真好,頂!
--catalpapril
4.?re: PowerDesigner的一些常用設置及技巧(轉帖)
mark
--asdf
5.?re: 使用jQuery判斷獲取到的頁面元素是否為空
帥哥,那個if ($("#tt").lenght > 0) 。。。。
這里貌似寫錯了
--yyq745201
閱讀排行榜
1.?PowerDesigner的一些常用設置及技巧(轉帖)(9160)
2.?使用jQuery判斷獲取到的頁面元素是否為空(7641)
3.?Flex4 滾動條沉底[轉](2619)
4.?PowerDesigner中如何添加約束(1685)
5.?為何無法訪問微軟網站--解決方案(轉)(1308)
評論排行榜
1.?為何無法訪問微軟網站--解決方案(轉)(4)
2.?Struts2對Action名稱的搜索順序(2)
3.?PowerDesigner的一些常用設置及技巧(轉帖)(1)
4.?Windows 7 SP1無法安裝oracle10g 11g的解決辦法(轉)(1)
5.?使用jQuery判斷獲取到的頁面元素是否為空(1)
Copyright ©2025 wawlian Powered By
博客園
模板提供:
滬江博客
主站蜘蛛池模板:
又硬又粗又长又爽免费看
|
亚洲乱妇老熟女爽到高潮的片
|
高潮毛片无遮挡高清免费视频
|
免费h成人黄漫画嘿咻破解版
|
亚洲中文字幕日本无线码
|
99久久综合国产精品免费
|
亚洲夂夂婷婷色拍WW47
|
全免费a级毛片免费看不卡
|
亚洲色大情网站www
|
免费日韩在线视频
|
免费激情网站国产高清第一页
|
亚洲男人的天堂在线va拉文
|
国产免费区在线观看十分钟
|
亚洲美免无码中文字幕在线
|
亚洲精品在线免费看
|
色偷偷亚洲女人天堂观看欧
|
无人在线直播免费观看
|
日韩色日韩视频亚洲网站
|
67194成手机免费观看
|
亚洲成人高清在线观看
|
成人免费午夜视频
|
手机永久免费的AV在线电影网
|
亚洲精品乱码久久久久久按摩
|
久9这里精品免费视频
|
欧洲 亚洲 国产图片综合
|
亚洲AV日韩精品一区二区三区
|
两性色午夜免费视频
|
777亚洲精品乱码久久久久久
|
成年女人18级毛片毛片免费
|
免费看又黄又爽又猛的视频软件
|
亚洲精品高清国产一线久久
|
久久精品人成免费
|
亚洲AV成人无码网站
|
亚洲成AV人片在线观看
|
成年人免费网站在线观看
|
国产区在线免费观看
|
亚洲日本人成中文字幕
|
亚洲一区二区女搞男
|
无码国产精品久久一区免费
|
男女一边桶一边摸一边脱视频免费
|
亚洲狠狠ady亚洲精品大秀
|