hibernate入门笔记(2)

day2


hibernate的配置文件hibernate.cfg.xml用于配置数据库的连接的信息,以及需要持久化的对象的xml映射文件的位置
在hibernate.cfg.xml中使用<mapping resource="xml/Student.hbm.xml">这种方式来指名要持久化对象的映射文件。
Configuration是用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并产生SessionFactory对象。

SessionFactory是和一个数据库一一对应的,他只能对应一个hibernate.cfg.xml文件,一个hibernate.cfg.xml中只能配置一个数据库的连接信息。

POJO(普通的java类)

持久化对象和临时对象,持久化对象,即对象的信息在数据库中存在,在内存中也有。临时对象也就是新对象,没有同步到数据库。

Session,持久化管理器。

Hibernate的核心接口

Configuration,用于解析hibernate.cfg.xml文件和XXXXX.hbm.xml文件,并创建SessionFactory对象。
SessionFactory,用于创建Session对象。
Session,持久化管理器,对象级数据库操作
Query,对对象作持久化操作或查询操作
Transaction ,用于管理操作事务。

hibernate.cfg.xml中的标签
<!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="show_sql">true</property><!--显示sql语句-->
 <property name="format_sql">true</property><!--使显示的sql语句格式化-->
 <property name="dialect">....</property><!--使用的数据库方言信息-->
        <property name="connection.driver_class">....</property>
 <!--使用的数据库的驱动-->
 <property name="connection.url">....</property><!--连接数据库使用的url-->
        <property name="connection.username">...</property>
 <!--连接数据库的用户名-->
 <property name="connection.password">...</property>
 <!--连接数据库的密码-->

 <mapping resource="xxx/xxxx/Xxxxxx.hbm.xml"/>
 <!--引入的映射对象的xml文件的全路径及文件名-->
 </session-factory>
</hibernate-configuration>

对象映射文件
<hibernate-mapping package="XXX.XXX.XXX" auto-import="false"><!--映射类所在的包-->
 <class name="Xxxxxx" table="Xxxxx"><!--将类和数据库的表联系起来-->
  <id name="studentId" column="studentId"><!--主键生成策略-->
   <generator class="assigned"/>
   <!--指定主键生成策略为用户指定-->
  </id>
  <property name="XXX" column="XXXX" type="string"/>
  <!--类中的书性和字段之间建立联系-->
  <property name="homeAddress" column="homeAddress"/>
  <property name="schoolAddress" column="schoolAddress"/>
  <property name="brithday" column="brithday" type="data"/>
                <!--在hibernate中其他类型可以自动识别只有Data类型必须指名-->
     </class>   
</hibernate-mapping>

id生成方式
1,序列sequence 只适用于Oracle 
<id name="id" column="id">
 <generator class="sequence">
  <param name="sequence">person_seq</param><!--指定sequence名-->
 </generator>
</id>

2,自增列,适用于SQLServer,MySql
<id name="id" column="id">
 <generator class="identity"/>
</id>

3,取最大值加一
<id name="id" column="id" type="integer">
 <generator class="increment"/>
</id>


4,根据底层数据库指定生成方法

 <id name="id" column="id">
  <generator class="native"/>
 </id>
针对Oracle数据库的生成方式还是sequence,只不过需要一个特定名字的sequence,"hibernate_sequence"。

5,高低位算法

<id name="id" column="id">
  <generator class="hilo">
   <param name="table">high_value</param>
   <!--设置高位值取值的表-->
   <param name="column">next_value</param>
   <!--设置高位值取值的字段-->
   <param name="max_lo">50</param>
   <!--指定低位最大值,当取道最大值是会再取一个高位值再运算-->
  </generator>
</id>

类关联关系映射

一对一关系实现

建表策略
1,共享主键,也就是一方引用另一方的主键,作为自身的主键,也是外键。
2,外键引用,也就是一方引用另一方的主键,作为外键,并且对引用的外键加唯一约束。

一对多

建表策略,多方引用一方的主键当作外键
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangyabin_520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值