花看半开,酒饮微醉
::
首页
::
新随笔
::
联系
::
聚合
::
管理
公告
<
2006年7月
>
日
一
二
三
四
五
六
25
26
27
28
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
常用链接
我的随笔
我的评论
我的参与
最新评论
随笔分类
Framework(5)
Java基础知识(5)
ORM:Hibernate及其他(20)
Other(7)
数据库(5)
服务器配置(1)
随笔档案
2006年9月 (2)
2006年8月 (4)
2006年7月 (36)
文章分类
Life(2)
Tech(1)
文章档案
2006年7月 (3)
搜索
最新评论
1. re: 小窗幽记
不知哪可下载全文
--一片云
2. re: 小窗幽记
早就听闻此书,今日得以相见,甚是欢喜,谢谢楼主,我收了,回去细细品味……
--枫叶蓝
3. re: 小窗幽记
很高兴看见这本书
--武宝珍
4. re: 小窗幽记
安得一服清凉散,人人解醒(酲)。
--luoting
5. re: 小窗幽记
@佛笑四海
我很喜欢
--款冬
阅读排行榜
1. Spring:Bean基本管理(5139)
2. Hibernate一对一数据关联(一) (3402)
3. HQL(2502)
4. hibernate事务处理和锁(1327)
5. Linux的find命令和windows echo语句(1234)
使用HibernateTool:一个简单的Hibernate程序(二)
一.生成后的文件结构如下图
各文件内容如下:
二.配置文件
1.
hibernate.cfg.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>
<
hibernate-configuration
>
<
session-factory
>
<
property
name
="hibernate.connection.driver_class"
>
com.mysql.jdbc.Driver
</
property
>
<
property
name
="hibernate.connection.password"
>
1234
</
property
>
<
property
name
="hibernate.connection.url"
>
jdbc:mysql://localhost:3306/sample
</
property
>
<
property
name
="hibernate.connection.username"
>
root
</
property
>
<
property
name
="hibernate.dialect"
>
org.hibernate.dialect.MySQLDialect
</
property
>
<
mapping
resource
="cn/blogjava/start/TUser.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
2.
hibernate.reveng.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<!
DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd"
>
<
hibernate-reverse-engineering
>
<
table-filter
match-catalog
="sample"
match-name
="t_user"
/>
</
hibernate-reverse-engineering
>
3.
GeneralHbmSettings.hbm.xml
<?
xml version="1.0"
?>
<!
DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<
hibernate-mapping
>
<!--
Auto-generated mapping file from
the hibernate.org cfg2hbm engine
for General Global Setttings
-->
<
import
class
="cn.blogjava.start.TUser"
rename
="cn.blogjava.start.TUser"
/>
</
hibernate-mapping
>
4.TUser.hbm.xml
<?
xml version="1.0"
?>
<!
DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<
hibernate-mapping
>
<!--
Auto-generated mapping file from
the hibernate.org cfg2hbm engine
-->
<
class
name
="cn.blogjava.start.TUser"
table
="t_user"
catalog
="sample"
>
<
id
name
="id"
type
="integer"
>
<
column
name
="id"
/>
<
generator
class
="native"
/>
</
id
>
<
property
name
="name"
type
="string"
>
<
column
name
="name"
length
="100"
not-null
="true"
/>
</
property
>
</
class
>
</
hibernate-mapping
>
5.
log4j.properties
### direct log messages to stdout ###
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target
=
System.out
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=
%d{ABSOLUTE} %5p %c{
1
}:%L - %m%n
### direct messages to file hibernate.log ###
#log4j.appender.file
=
org.apache.log4j.FileAppender
#log4j.appender.file.File
=
hibernate.log
#log4j.appender.file.layout
=
org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern
=
%d{ABSOLUTE} %5p %c{
1
}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger
=
info
,
stdout
log4j.logger.org.hibernate
=
error
#log4j.logger.org.hibernate
=
debug
### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST
=
debug
### log just the SQL
#log4j.logger.org.hibernate.SQL
=
debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type
=
info
#log4j.logger.org.hibernate.type
=
debug
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl
=
debug
### log HQL parse trees
#log4j.logger.org.hibernate.hql
=
debug
### log cache activity ###
#log4j.logger.org.hibernate.cache
=
debug
### log transaction activity
#log4j.logger.org.hibernate.transaction
=
debug
### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc
=
debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider
=
trace
三.Java类
1.POJO类TUser.java
1
package
cn.blogjava.start;
2
3
4
5
/** */
/**
6
* TUser generated by hbm2java
7
*/
8
9
public
class
TUser
implements
java.io.Serializable
{
10
11
12
//
Fields
13
14
private
Integer id;
15
private
String name;
16
17
18
//
Constructors
19
20
/** */
/**
default constructor
*/
21
public
TUser()
{
22
}
23
24
/** */
/**
constructor with id
*/
25
public
TUser(Integer id)
{
26
this
.id
=
id;
27
}
28
29
30
31
32
//
Property accessors
33
34
public
Integer getId()
{
35
return
this
.id;
36
}
37
38
public
void
setId(Integer id)
{
39
this
.id
=
id;
40
}
41
42
public
String getName()
{
43
return
this
.name;
44
}
45
46
public
void
setName(String name)
{
47
this
.name
=
name;
48
}
49
50
51
52
53
54
55
56
57
58
}
2.测试类HibernateTest.java
1
package
cn.blogjava.start;
2
3
import
java.util.List;
4
5
import
junit.framework.Assert;
6
import
junit.framework.TestCase;
7
8
import
org.hibernate.HibernateException;
9
import
org.hibernate.Session;
10
import
org.hibernate.SessionFactory;
11
import
org.hibernate.Transaction;
12
import
org.hibernate.cfg.Configuration;
13
14
15
public
class
HibernateTest
extends
TestCase
{
16
17
Session session
=
null
;
18
/** */
/**
19
* JUnit中的setUp方法在TestCase初始化的时候会自动调用
20
* 一般用于初始化公用资源
21
*/
22
protected
void
setUp()
{
23
try
{
24
/** */
/**
25
* 可以采用hibernate.properties或者hibernate.cfg.xml
26
* 配置文件的初始化代码
27
*
28
* 采用hibernate.properties
29
* Configuration config = new Configuration();
30
* config.addClass(TUser.class);
31
*/
32
33
//
采用hibernate.cfg.xml配置文件,与上面的方法对比,两个差异
34
//
1.Configuration的初始化方式
35
//
2.xml
36
Configuration config
=
new
Configuration().configure();
37
SessionFactory sessionFactory
=
config.buildSessionFactory();
38
session
=
sessionFactory.openSession();
39
40
}
catch
(HibernateException e)
{
41
//
TODO: handle exception
42
e.printStackTrace();
43
}
44
}
45
46
/** */
/**
47
* JUnit中的tearDown方法在TestCase执行完毕的时候会自动调用
48
* 一般用于释放资源
49
*/
50
protected
void
tearDown()
{
51
try
{
52
session.close();
53
}
catch
(HibernateException e)
{
54
//
TODO: handle exception
55
e.printStackTrace();
56
}
57
}
58
59
/** */
/**
60
* 对象持久化测试(Insert方法)
61
*/
62
public
void
testInsert()
{
63
Transaction tran
=
null
;
64
try
{
65
tran
=
session.beginTransaction();
66
TUser user
=
new
TUser();
67
user.setName(
"
byf
"
);
68
session.save(user);
69
session.flush();
70
tran.commit();
71
Assert.assertEquals(user.getId().intValue()
>
0
,
true
);
72
}
catch
(HibernateException e)
{
73
//
TODO: handle exception
74
e.printStackTrace();
75
Assert.fail(e.getMessage());
76
if
(tran
!=
null
)
{
77
try
{
78
tran.rollback();
79
}
catch
(Exception e1)
{
80
//
TODO: handle exception
81
e1.printStackTrace();
82
}
83
}
84
}
85
}
86
87
/** */
/**
88
* 对象读取测试(Select方法)
89
*/
90
public
void
testSelect()
{
91
String hql
=
"
from TUser where name='byf'
"
;
92
try
{
93
List userList
=
session.createQuery(hql).list();
94
TUser user
=
(TUser)userList.get(
0
);
95
Assert.assertEquals(user.getName(),
"
byf
"
);
96
}
catch
(Exception e)
{
97
//
TODO: handle exception
98
e.printStackTrace();
99
Assert.fail(e.getMessage());
100
}
101
}
102
}
103
posted on 2006-07-05 14:37
knowhow
阅读(780)
评论(0)
编辑
收藏
所属分类:
ORM:Hibernate及其他
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
iBatis
hibernate延迟加载
hibernate数据加载
hibernate事务处理和锁
Hibernate 数据缓存
HQL
Hibernate一对多数据关联
Hibernate一对一数据关联(二)
Hibernate一对一数据关联(一)
Hibernate实体层次设计(四)