随笔: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
风林
阅读(257)
评论(0)
编辑
收藏
引用
所属分类:
JAVA
、
Hibernate
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
[转]java编程中'为了性能'一些尽量做到的地方
JAVAC命令行错误
Java基础_Collection接口下的子类存储特性
Android_常用控件使用
Android_Activity&Intent&Layout
Integer自动装箱、拆箱问题
自定义比较器、排序
JDBC操作实例
常用数据库的JDBC连接代码
[转]J2SE_内部类
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
CALENDER
<
2024年11月
>
日
一
二
三
四
五
六
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
1
2
3
4
5
6
7
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
给我留言
查看公开留言
查看私人留言
随笔分类
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开发类工作了(472)
2. 给一家公司的软件做加密方案(437)
3. 周一到周五都得出差,周末才能回(408)
4. 一流、二流、三流(381)
5. 从WIN32开发转型到WEB开发(361)
评论排行榜
1. 周一到周五都得出差,周末才能回(2)
2. 给力2011(2)
3. 最近工作有点忙(0)
4. 生活(0)
5. 在博客园开博了(0)
Powered By:
博客园
模板提供
:
沪江博客