精通Hibernate:Java对象持久化技术详解--学习心得--入门(1)

 
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属性,用来惟一标识类的每个对象。在面向对象术语中,这个属性被称为对象标识符(OIDObject Identifier)
3. Hibernate
要求持久化类必须提供一个不带参数的默认构造方法,在程序运行时,Hibernate运用Java反射机制,调用java.lang.reflect.Constructor.newInstance()方法来构造持久化类的实例。
4. 持久化类的默认构造方法的访问级别必须是public protected 类型。不能为defaultprivate类型
三、创建数据库
四、创建对象-关系映射文件
Hibernate
采用XML格式的文件来指定对象和关系数据之间的映射。在运行时,Hibernate将根据这个映射文件来生成各种SQL语句。
hbm.xml
文件应把它入在映射class类同一个目录下。
1.         映射文件的文档类型定义(DTDDocument 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
符号
含义
无符号
该元素在父元素内必须存在且只能存在一次
+
该元素在父元素内必须存在,可以存在一次或者多次
*
该元素在父元素内可以不存在,或者存在一次或者多次
该元素在父元素内可以不存在,或者只存在一次
在映射文件中,父元素中的各种子元素的定义必须符合特定的顺序。
必须先定义<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,columnnot-null属性。
name
:持久化类的属性的名字;type:指定Hibernate映射类型。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值