hibernate 笔记(2)





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


<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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值