隨筆:15 文章:206 評論:35 引用:0
fenglin
創新、創意、挑戰
C++博客
首頁
發新隨筆
發新文章
聯系
聚合
管理
hibernate 學習筆記之三 Annotation環境配置、開發
如果你覺得Hibernate開發,數據庫表映射關系的XML不想寫,那就可以使用Annotation來開發,它的配置很簡單,由于Hibernate3.5以上版本將Annotation直接集成到Hibernate Core里了,因此,你只需要在Build Path將hibernate-distribution-3.5.6-Final\lib\jpa\hibernate-jpa-2.0-api-1.0.0.Final.jar包加入,即可使用Annotation(Annotation是基于JPA標準的一個框架項目)。
下面是一個實例:
Teacher.java
1
package
com.bebig.hibernate.model;
2
3
import
java.util.Date;
4
5
import
javax.persistence.Entity;
6
import
javax.persistence.EnumType;
7
import
javax.persistence.Enumerated;
8
import
javax.persistence.Id;
9
import
javax.persistence.Temporal;
10
import
javax.persistence.TemporalType;
11
12
//
注解為實體類
13
@Entity
14
public
class
Teacher
{
15
16
private
int
id;
17
private
String name;
18
private
String title;
19
private
Date birthDate;
20
private
Status status;
21
22
//
指定主鍵
23
@Id
24
public
int
getId()
{
25
return
id;
26
}
27
28
public
void
setId(
int
id)
{
29
this
.id
=
id;
30
}
31
32
public
String getName()
{
33
return
name;
34
}
35
36
public
void
setName(String name)
{
37
this
.name
=
name;
38
}
39
40
public
String getTitle()
{
41
return
title;
42
}
43
44
public
void
setTitle(String title)
{
45
this
.title
=
title;
46
}
47
48
public
void
setBirthDate(Date birthDate)
{
49
this
.birthDate
=
birthDate;
50
}
51
52
@Temporal(TemporalType.DATE)
53
public
Date getBirthDate()
{
54
return
birthDate;
55
}
56
57
public
void
setStatus(Status status)
{
58
this
.status
=
status;
59
}
60
61
@Enumerated(EnumType.ORDINAL)
62
public
Status getStatus()
{
63
return
status;
64
}
65
66
}
67
Status.java,以上最后一個字段用到的枚舉類型數據:
1
package
com.bebig.hibernate.model;
2
3
public
enum
Status
{
4
sNormal,sAbnormal
5
}
6
hibernate.cfg.xml
1
<!--
filename:hibernate.cfg.xml
-->
2
<?
xml version='1.0' encoding='utf-8'
?>
3
<!
DOCTYPE hibernate-configuration PUBLIC
4
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
5
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
6
7
<
hibernate-configuration
>
8
9
<
session-factory
>
10
11
<!--
Database connection settings
-->
12
<
property
name
="connection.driver_class"
>
com.microsoft.sqlserver.jdbc.SQLServerDriver
</
property
>
13
<
property
name
="connection.url"
>
jdbc:sqlserver://localhost:1433;DatabaseName=hibernate
</
property
>
14
<
property
name
="connection.username"
>
sa
</
property
>
15
<
property
name
="connection.password"
>
********
</
property
>
16
17
<!--
JDBC connection pool (use the built-in)
-->
18
<!--
<property name="connection.pool_size">1</property>
-->
19
20
<!--
SQL dialect
-->
21
<
property
name
="dialect"
>
org.hibernate.dialect.SQLServerDialect
</
property
>
22
23
<!--
Enable Hibernate's automatic session context management
-->
24
<!--
<property name="current_session_context_class">thread</property>
-->
25
26
<!--
Disable the second-level cache
-->
27
<
property
name
="cache.provider_class"
>
org.hibernate.cache.NoCacheProvider
</
property
>
28
29
<!--
Echo all executed SQL to stdout
-->
30
<
property
name
="show_sql"
>
true
</
property
>
31
<
property
name
="format_sql"
>
true
</
property
>
32
33
<!--
Drop and re-create the database schema on startup
-->
34
<
property
name
="hbm2ddl.auto"
>
create
</
property
>
35
<
mapping
class
="com.bebig.hibernate.model.Teacher"
/>
36
37
</
session-factory
>
38
39
</
hibernate-configuration
>
用JUnit創建的測試用例,TeacherTest.java
1
package
com.bebig.hibernate.model;
2
3
import
java.util.Date;
4
5
import
org.hibernate.HibernateException;
6
import
org.hibernate.Session;
7
import
org.hibernate.SessionFactory;
8
import
org.hibernate.cfg.AnnotationConfiguration;
9
import
org.junit.AfterClass;
10
import
org.junit.BeforeClass;
11
import
org.junit.Test;
12
13
public
class
TeacherTest
{
14
private
static
SessionFactory sf
=
null
;
15
16
@BeforeClass
17
public
static
void
beforeClass()
{
18
try
{
19
sf
=
new
AnnotationConfiguration().configure().buildSessionFactory();
20
}
catch
(HibernateException e)
{
21
//
TODO Auto-generated catch block
22
e.printStackTrace();
23
}
24
}
25
26
@Test
27
public
void
TestTeacherSave()
{
28
Teacher t
=
new
Teacher();
29
t.setId(
2
);
30
t.setName(
"
Scan
"
);
31
t.setTitle(
"
高級
"
);
32
t.setBirthDate(
new
Date());
33
t.setStatus(Status.sNormal);
34
35
Session session
=
sf.openSession();
36
session.beginTransaction();
37
session.save(t);
38
session.getTransaction().commit();
39
40
session.close();
41
42
}
43
44
public
static
void
main(String[] args)
45
{
46
beforeClass();
47
}
48
49
@AfterClass
50
public
static
void
afterClass()
{
51
sf.close();
52
}
53
}
54
發表于 2010-09-22 16:33
風林
閱讀(263)
評論(0)
編輯
收藏
引用
所屬分類:
JAVA
、
Hibernate
只有注冊用戶
登錄
后才能發表評論。
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
相關文章:
[轉]java編程中'為了性能'一些盡量做到的地方
JAVAC命令行錯誤
Java基礎_Collection接口下的子類存儲特性
Android_常用控件使用
Android_Activity&Intent&Layout
Integer自動裝箱、拆箱問題
自定義比較器、排序
JDBC操作實例
常用數據庫的JDBC連接代碼
[轉]J2SE_內部類
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
CALENDER
<
2025年7月
>
日
一
二
三
四
五
六
29
30
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
5
6
7
8
9
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
給我留言
查看公開留言
查看私人留言
隨筆分類
jBPM
(rss)
隨筆檔案
2011年7月 (1)
2011年4月 (1)
2011年2月 (1)
2010年11月 (1)
2010年10月 (2)
2010年9月 (3)
2010年8月 (4)
2010年7月 (2)
文章分類
AJAX(2)
(rss)
Android(2)
(rss)
C#(20)
(rss)
C++(6)
(rss)
ckeditor&ckfinder(1)
(rss)
CSS
(rss)
Delphi(2)
(rss)
Hibernate(39)
(rss)
JAVA(95)
(rss)
jQuery(1)
(rss)
JSP(9)
(rss)
Maven(1)
(rss)
MySQL(4)
(rss)
OOP(1)
(rss)
Python(42)
(rss)
Spring(31)
(rss)
SQL Server(4)
(rss)
Struts2(35)
(rss)
SVN(1)
(rss)
Tomcat(1)
(rss)
Ubuntu(1)
(rss)
軟件加解密技術
(rss)
雜文(1)
(rss)
文章檔案
2011年8月 (1)
2011年7月 (3)
2011年6月 (19)
2011年5月 (2)
2011年4月 (1)
2011年2月 (1)
2010年12月 (2)
2010年11月 (21)
2010年10月 (67)
2010年9月 (48)
2010年8月 (37)
2010年7月 (4)
新聞檔案
2010年7月 (1)
相冊
CSS
Hibernate
搜索
最新評論
1.?re: Struts2_三種傳參數方法
方式的發生
--阿飛史蒂夫
2.?re: 在Win7上搭建JSP開發環境
評論內容較長,點擊標題查看
--鄒
3.?re: ckeditor&ckfinder&s2sh集成
評論內容較長,點擊標題查看
--庸幾何
4.?re: 在Win7上搭建JSP開發環境
下個 myeclipse@lou
--孫毅
5.?re: 在Win7上搭建JSP開發環境
@lou
運行 -cmd 找到startup.bat 在java 環境中運行
--孫毅
閱讀排行榜
1.?開始找Java開發類工作了(510)
2.?給一家公司的軟件做加密方案(443)
3.?一流、二流、三流(422)
4.?周一到周五都得出差,周末才能回(420)
5.?從WIN32開發轉型到WEB開發(381)
評論排行榜
1.?周一到周五都得出差,周末才能回(2)
2.?給力2011(2)
3.?最近工作有點忙(0)
4.?生活(0)
5.?在博客園開博了(0)
Powered By:
博客園
模板提供
:
滬江博客
久久综合久久综合久久综合
|
亚洲中文字幕无码久久2017
|
亚洲人成伊人成综合网久久久
|
国产精品一区二区久久
|
久久久久女人精品毛片
|
久久久噜噜噜久久中文字幕色伊伊
|
久久久久久A亚洲欧洲AV冫
|
国产叼嘿久久精品久久
|
天天久久狠狠色综合
|
精品久久人人做人人爽综合
|
99久久99久久精品国产
|
久久国产精品免费
|
久久亚洲2019中文字幕
|
亚洲欧洲久久av
|
久久香蕉国产线看观看精品yw
|
久久精品国产亚洲AV无码娇色
|
久久亚洲国产欧洲精品一
|
久久久久久久尹人综合网亚洲
|
亚洲伊人久久大香线蕉苏妲己
|
国产免费福利体检区久久
|
久久嫩草影院免费看夜色
|
7777精品久久久大香线蕉
|
精品国产一区二区三区久久久狼
|
欧美久久综合性欧美
|
久久香蕉国产线看观看猫咪?v
|
亚洲AV无一区二区三区久久
|
久久精品国产亚洲AV麻豆网站
|
国产高清国内精品福利99久久
|
亚洲欧洲久久久精品
|
.精品久久久麻豆国产精品
|
久久久精品国产
|
久久午夜羞羞影院免费观看
|
欧美一区二区精品久久
|
久久亚洲AV成人无码
|
久久国产乱子伦精品免费强
|
天堂无码久久综合东京热
|
精品久久久久久亚洲精品
|
一级做a爰片久久毛片人呢
|
久久久国产99久久国产一
|
人人狠狠综合久久亚洲婷婷
|
久久人妻少妇嫩草AV蜜桃
|