好好学习,好好工作,好好生活
终身学习,努力赚钱,健康愉快 注意:转发本blog文章请注明文章出处(http://www.blogjava.net/lusm)谢谢支持!
首页
新随笔
联系
聚合
管理
随笔 - 303 文章 - 883 trackbacks - 0
<
2007年4月
>
日
一
二
三
四
五
六
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
1
2
3
4
5
欢迎光临!
闲聊
QQ:
1074961813
随笔分类
(357)
Ajax、Flex(6)
Blog公告(3)
c/c++/C#/pasic/vb/php/asp(.net)/win-cgi/xml...(53)
database(13)
j2se/j2ee/j2me(142)
kernel (16)
linux configuration(6)
Listening 所有的声音都是音乐(1)
matlab~~~值得一学的工具(2)
network(5)
SUN OS(8)
unix program(10)
书法(欲罢不能,神魂颠倒的美)(4)
入侵反入侵(4)
关于搜索引擎
哲学世界(8)
多媒体开发(4)
嵌入式开发(14)
常用资源(19)
汇编 *asm/at&t ....(1)
科学百科(4)
算法(2)
编程问题(4)
计算机病毒反病毒学(4)
身体锻炼(5)
软件 & 书籍 推荐(19)
我管理的群
j2ee
struts Hibernate spring等学习 基础不扎实 可以跳到j2se学习群 37486623 请先退出该群
j2se(37486623)
j2se学习 若人满请加到12999758 学完的可以跳到j2ee学习群 37486483 请先退出该群
java || .net(50982019)
java & .net都是热门的web技术 当然可以一起学啦 欢迎前来探讨技术 解决问题
java 2(35917927)~~~请加这个
该群在发展中,踢人是经常的事情
java(12999758)
学完的可以跳到j2ee学习群 37486483 请先退出该群
Java应用(14821632)
学无止境 好好努力! 讨论 web 技术 、 Java (j2se j2ee) 、C/S编程 、 数据库 。。。。
Linux C、C++(33318370)
将 Linux 和 C、C++ 编程进行到底!
Think in java(16705375)~~~请加这个
《Think in java》 我们的最爱
国学(111230500)
历史、宗教、哲学、气功、传统技艺,欢迎加入,知无不言,言无不尽!
文祠实习群(32644370)
07年文祠实习群
驱动开发群(27054589)
arm || intel ...platform Windows || Linux device driver development 有一定基础方可加入
公共blog
n维空间
Email : java3d@126.com 群 : 12999758
参与管理的论坛
ineedyou
ourlinux
好友的blog
lyforever
Resplendent技术blog
java、VC和嵌入开发
一梦如是
c/c++/windows/mfc
三驾马车
仙人指路
弄VC和汇编的家伙
吕鑫磊
吴卫-3D工作室
好好学习,天天向上,态度决定一切
同学的blog
廖益花
琦琦
北京的朋友,和我一起创建了不少群 呵呵!
菜菜C++
VC++
陈敏师兄
霍霍
一个和我差不多大的北京女孩
我的其他blog
kernel world(csdn)
寻寻觅觅—— C语言
我的世界 不被打扰
虚拟世界-自由自在
音乐在身边
朋友的网站
china1996.cn
ourlinux.org
ourlinux.org
笑话大全
累了的时候啦 可以寻下开心
搜索
最新评论
1. re: Windows Embedded CE 6.0 下载地址和序列号
评论内容较长,点击标题查看
--码无止茎
2. re: Caused by: java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
评论内容较长,点击标题查看
--一
3. re: linux0.11内核编程入门全集视频下载
博主,看不了啊,方便的话发一份到ren1198997229@163.com 谢谢( ̄▽ ̄)"
--renchunhui
4. re: JVM 、JDK(c/c++)源代码下载[未登录]
还可以吧
--刘勇
5. re: linux0.11内核编程入门全集视频下载
视频怎么下不了啊
--MSM
Hibernate Quickly--读书笔记(2)
Hibernate Quickly英文版下载
Hibernate Quickly
--读书笔记
上个笔记介绍了配置文件的简要介绍,本想这个文来探讨一下实例,但经过思考之后,还是要再澄清一些知识点。这里我们主要了解什么是Session和Sessionfactory,再拿上次的图出来:、
好了,继续解释这个图先:
这个图是hibernate给我们这些开发人员的全貌图,
下面的三个配置文件负责hibernate服务的基本配置。通过对这些文件的配置实现数据库的访问和数据库内部关系与程序间的协调;从而实现数据库的智能化操作,提高效率和数据安全性。
例子:
hibernate.cfg.xml(jdbc)
<?
xml version="1.0"
?>
<!
DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-
3.0.dtd"
>
<
hibernate-configuration
>
<!
--
定义Sessionfactory--
>
<
session-factory
>
<!
--
要连接的数据库帐号和密码--
>
<
property
name
="connection.username"
>
uid
</
property
>
<
property
name
="connection.password"
>
pwd
</
property
>
<!
--
数据库路径--
>
<
property
name
="connection.url"
>
jdbc:mysql://localhost/db
</
property
>
<!
--
加载驱动--
>
<
property
name
="connection.driver_class"
>
com.mysql.jdbc.Driver
</
property
>
<
property
name
="dialect"
>
org.hibernate.dialect.MySQLDialect
</
property
>
<!
--
影射到的数据库中的表--
>
<!
--
这里我们的每个表用一个影射文件表示--
>
<!
--
这里总共有四个表,我们会在这些影射文件中记录一些必要的信息--
>
<
mapping
resource
="com/manning/hq/ch03/Event.hbm.xml"
/>
<
mapping
resource
="com/manning/hq/ch03/Location.hbm.xml"
/>
<
mapping
resource
="com/manning/hq/ch03/Speaker.hbm.xml"
/>
<
mapping
resource
="com/manning/hq/ch03/Attendee.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
另一中数据库连接方式,比较少见,贴给大家看看
hibernate.cfg.xml(JNDI)
<?
xml version="1.0"
?>
<!
DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-
3.0.dtd"
>
<
hibernate-configuration
>
<
session-factory
name
="java:comp/env/hibernate/SessionFactory"
>
<
property
name
="connection.datasource"
>
jdbc/myDataSource
</
property
>
<!
--dialect
属性告诉Hibernate使用什么sql方言--
>
<!
--
不同的数据库使用的sql会有所不同--
>
<
property
name
="dialect"
>
org.hibernate.dialect.MySQLDialect
</
property
>
<
mapping
resource
="com/manning/hq/ch03/Event.hbm.xml"
/>
<
mapping
resource
="com/manning/hq/ch03/Location.hbm.xml"
/>
<
mapping
resource
="com/manning/hq/ch03/Speaker.hbm.xml"
/>
<
mapping
resource
="com/manning/hq/ch03/Attendee.hbm.xml"
/>
</
session-factory
>
</
hibernate-configuration
>
影射文件:
Event.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
package
="com.manning.hq.ch03"
>
<!
--
为改类取名,并声明它所对应的表--
>
<
class
name
="Event"
table
="events"
>
<!
--
定义内部的数据字段属性--
>
<
id
name
="id"
column
="uid"
type
="long"
unsavedvalue
="null"
>
<
generator
class
="native"
/>
</
id
>
<
property
name
="name"
type
="string"
length
="100"
/>
<
property
name
="startDate"
column
="start_date"
type
="date"
/>
<
property
name
="duration"
type
="integer"
/>
<!
--
定义多对一的表关系--
>
<
many-to-one
name
="location"
column
="location_id"
class
="Location"
/>
<
set
name
="speakers"
>
<
key
column
="event_id"
/>
<!
--
定义一对多的表关系--
>
<
one-to-many
class
="Speaker"
/>
</
set
>
<
set
name
="attendees"
>
<
key
column
="event_id"
/>
<!
--
定义一对多的表关系--
>
<
one-to-many
class
="Attendee"
/>
</
set
>
</
class
>
</
hibernate-mapping
>
这里我们发,对于表间的关系,只定义于多个影射文件中的一个,其他的只定义自己的基本字段属性;
这样做不但简单,而且便于管理。
Location.hbm.xml
<?
xml version="1.0"
?>
<
hibernate-mapping
package
="com.manning.hq.ch03"
>
<
class
name
="Location"
table
="locations"
>
<!
--
定义locations表中的字段属性--
>
<
id
name
="id"
column
="uid"
type
="long"
>
<
generator
class
="native"
/>
</
id
>
<
property
name
="name"
type
="string"
/>
<
property
name
="address"
type
="string"
/>
</
class
>
</
hibernate-mapping
>
接下来看看图中的sessionfactory和session怎么使用
//
创建一个Configuration实例
Configuration cfg
=
new
Configuration();
//
创建一个SessionFactory实例
SessionFactory factory
=
cfg.buildSessionFactory();
//
实例化表对象,这与前面影射文件是对应的
Event event
=
new
Event();
//
通过SessionFactory实例创建我
//
们的编程接口session
Session session
=
factory.openSession();
//
执行HQL语句,改语句会自动判定目前的情况下是
//
执行sare(event)还是Update(event)
session.saveOrUpdate(event);
//
刷新session缓存,将updata数据写入数据库
session.flush();
//
关闭该session对象
session.close();
不早了,
睡觉觉去了,先写到这里了,本想给大家个code example直接搞定,可惜hibernate实在是有点复杂有些问题不讲清就会似懂不懂,实在是违背我的本意;
下个文章,将学习session的缓存技术,建议大家找这本书先看看,上面给了个英文版的下载地址。
不明之处,还请留言;
地震让大伙知道:居安思危,才是生存之道。
posted on 2007-04-05 23:27
小寻
阅读(321)
评论(2)
编辑
收藏
所属分类:
j2se/j2ee/j2me
FeedBack:
#
re: Hibernate Quickly--读书笔记(2) 2007-04-27 18:45
Aliang
问一下,你有这本书的代码么?有的话麻烦发一个
brinews@126.com
先谢了
回复
更多评论
#
re: Hibernate Quickly--读书笔记(2)
2007-04-29 11:46
幻想~@@~
哦你好 谢谢你的支持!!
《Hibernate Quickly》
源代码,网上找不到
但我提供一个方法:你可以装
Adobe Reader
,
用它打开上面下载的的电子书,然后你就可以
使用里面提供的
文本选择工具
选取自己想要的代码,
并将它复制下来使用,改方法我试过可行!
祝你学习愉快~~~
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
[原创]浅析JACOB
Struts && Spring 登陆实验
[分页]之 servlet分页
一个通用的Hibernate DAO
JSF下拉列表简单实现视频及代码
在 arm920T 上使用 java 杂杂
spring整合hibernate提供代码下载
小小hibernate3.1代码
小小spring2.0代码扩充
小小的spring2.0例子