精通Hibernate:Java对象持久化技术详解--学习心得--入门(1)
2006-12-26 22:00
260 查看
在Java应用中使用Hibernate包含以下步骤:
1. 创建Hibernate的配置文件。
2. 创建持久化类。
3. 创建对象-关系映射文件。
4. 通过Hibernate API编写访问数据库的代码。
一、创建Hibernate的配置文件
两种方式:XML格式 & Java属性文件--:“键=值”形式。
以下为Java属性方式的示范,这种配置文件的默认文件名为:hibernate.properties
hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.driver_name=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/SAMPLEDS
hibernate.connection.username=root
hibernate.connection.password=1234
hibernate.show_sql=true
二、创建持久化类
持久化类通常都是域模型中的实体域类。符合JavaBean的规范。
PS:
1. Hibernate并不要求持久化类必须实现java.io.Serializable接口;
2. 一般而言,持久化类有一个id属性,用来惟一标识类的每个对象。在面向对象术语中,这个属性被称为对象标识符(OID,Object Identifier);
3. Hibernate要求持久化类必须提供一个不带参数的默认构造方法,在程序运行时,Hibernate运用Java反射机制,调用java.lang.reflect.Constructor.newInstance()方法来构造持久化类的实例。
4. 持久化类的默认构造方法的访问级别必须是public 或 protected 类型。不能为default或private类型
三、创建数据库
四、创建对象-关系映射文件
Hibernate采用XML格式的文件来指定对象和关系数据之间的映射。在运行时,Hibernate将根据这个映射文件来生成各种SQL语句。
hbm.xml文件应把它入在映射class类同一个目录下。
1. 映射文件的文档类型定义(DTD,Document Type Definition)
<!ELEMENT hibernate-mapping(
meta*,
import*,
(class|subclasss|joined-subclass)*,
query*,
sql-query*)>
<!ELEMENT class(
meta*,
(cache|jcs-chche)?,
(id|composite-id),
discriminator?,
(version|timestamp)?
(property|many-to-one|one-to-one|component|dynamic-component|any|map|list| bag|idbag|array|primitive-array)*,
((subclass*)|(joined-subclass*))
)>
<hibernate-mapping>元素是对象-关系映射文件的根元素,其他元素必须嵌入在该元素内。
PS:
[align=center]符号[/align] | [align=center]含义[/align] |
无符号 | 该元素在父元素内必须存在且只能存在一次 |
+ | 该元素在父元素内必须存在,可以存在一次或者多次 |
* | 该元素在父元素内可以不存在,或者存在一次或者多次 |
? | 该元素在父元素内可以不存在,或者只存在一次 |
必须先定义<id>子元素,再定义<property>子元素
把Customer持久化类映射到CUSTOMERS表
例程的Customer.hbm.xml文件用于映射Customer类。如果需要映射多个持久化类,那么既可以在同一个映射文件中映射所有的类,也可以为每个类创建单独的映射文件,映射文件和类同名,扩展名为“hbm.xml”。后一种做法更值得推荐,因为在团队开发中,这有利于管理和维护映射文件。
<class>元素指定类和表的映射,它的name属性设定类名,table属性设定表名。以下代码表明和Customer类对应的表为CUSTOMERS表:
<class name=”mypack.Customer” table=”CUSTOMERS”>
如果没有设置<class>元素的table属性,Hibernate将直接以类名作为表名,也就是说在默认情况下,与mypack.Customer类对应的表为Customer表。
<id>子元素设定持久化类的OID和表的主键的映射。
例:<id name=”id” column=”ID” type=”long”>
<generator class=”increment” /> // generator子元素指定对象标识符生成器
</id>
<property>子元素主要包括name,type,column和not-null属性。
name:持久化类的属性的名字;type:指定Hibernate映射类型。
相关文章推荐
- Java入门--eclipse,J2EE入门学习心得
- ios入门学习建议和方法,心得
- Cocoa Touch 入门记——《精通 iOS 开发》学习心得(3) [标签栏实现多视图的方法(运用 xib)]
- eclipse,J2EE入门学习心得
- JavaWeb学习心得之JDBC入门
- [置顶] 安卓学习心得,学习步骤 入门书籍推荐
- C++入门学习心得 1
- Spring入门学习 心得
- [转]php5入门学习心得
- mysql部分学习心得(入门级别)
- Python源码入门学习心得-初始化(一)
- eclipse,J2EE入门学习心得
- MapReduce入门学习心得
- [7]深度学习和Keras---- 快速入门心得
- Spring学习心得(12)-- aop入门前内容:静态代理
- Java入门123:一个老鸟的Java学习心得(二维码版)
- Cocoa Touch 入门记——《精通 iOS 开发》学习心得(2) [iOS 7(Xcode 5)中的屏幕旋转与自动布局]
- DIV+CSS—菜鸟分享学习心得!入门篇
- 【Monkeyrunner 小白入门示例】算是新秀的学习心得吧
- mysql部分学习心得(入门级别)