• 第二讲 Hibernate中配置文件详解 (常用)


    1. hibernate.cfg.xml配置详解?

    hibernate.cfg.xml Hibernate中最重要的配置文件。

    作用:用来初始化hibernate,配置全局参数。

     

    <property name="dialect">
        org.hibernate.dialect.SQLServerDialect
    </property>
    dialect 方言:用来切换不同的数据
    <property name="connection.url">
                jdbc:sqlserver://localhost:1433;databaseName=testdb
    </property>
    <property name="connection.username">sa</property>
    <property name="connection.password">123456</property>
    <property name="connection.driver_class">
        com.microsoft.sqlserver.jdbc.SQLServerDriver
    </property>
    配置连接字符串。
    <property name="属性名"></property>
    配置Hibernate的全局属性。
    show_sql  —— 显示执行的SQL语句。
    connection.autocommit —— 事务自动提交
    <mapping resource="com/zuxia/entity/Userinfo.hbm.xml" />
    用于加载Hibernate中类与表之间的关联关系。

     

    2. 持久化类的属性与配置文件?

     

    <class name="com.zuxia.entity.Userinfo" table="userinfo" schema="dbo" catalog="testdb">
    配置实体类与表之间的关联关系
    <id name="uid" type="java.lang.Integer">
          <column name="uid" />
          <generator class="native" />
    </id>
    配置表中的主键管理。
    <generator class="native" />表示主键的管理策略。
    native —— 由数据库自行管理。
    identity —— 启用数据库自动增长
    sequence —— 提供给Oracle、DB2等大型数据库中到序列。
    increment —— 由Hibernate来完成自动增长功能。
    foreign —— 引用另外一张表的主键
    uuid —— 自动生成一组序列号,作为主键(尽量少使用)。
    assigned —— 表示在程序中由Java代码负责管理(默认管理方式)。
    注意:Hibernate要求所有的表,必须具有主键。
    <property name="uname" type="java.lang.String" insert="true" update="true" not-null="true" >
    <column name="uname" length="20" default="getdate()" />
    </property>

     

    多表之间的关系操作:

     

    一对一关系:<one-to-one>

     

    一对多\多对一关系:<many-to-one>

     

    多这一端:
    <set name="emps" inverse="true">
            <key>
                <column name="did" />
            </key>
           <one-to-many class="com.zuxia.entity.Emp" />
    </set>
    一这一端:
    <many-to-one name="dept" class="com.zuxia.entity.Dept" fetch="select">
        <column name="did" />
    </many-to-one>
    fetch="select | join" —— 关联关系的时候,select会启动新的查询,join会使用联合查询
    select 与 join对比:
    select:如果用户需要使用时,才执行查询;否则不查询。
    join:始终使用连接查询
    lazy="false" :(懒惰)立即查询数据。
    cascade="delete" :级联操作(delete,删除关联的数据;放在set端使用,表示级联删除相关数据)
    inverse="true" :表示有从表来维护关系(不会多产生不必要的update修改语句)
    好处:方便级联操作。

     

     

     

     

  • 相关阅读:
    golang 实现生产者消费者模式(转)
    ssh设置免密登录后登录仍需密码可能的原因,以及 ssh 出问题或的调试方法
    http 请求 Cros 跨域问题记录(转)
    问题解决——SSH时出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!(转)
    Git撤销本地commit(转)
    golang project 不显示文件夹 或者某个包明明能 import 但就是 import 不进来,提示Unresolved reference
    Qt6.2.4 qml 实现登录注册及显示详情demo
    Qt6.2.4 qml 实现文件选择与内容读取
    【转载】Qt6.2.4 qml ChartView 实现饼状图与问题解决
    【转载】AntvX6 流程图 demo 基于原生 js 支持导入与导出数据
  • 原文地址:https://www.cnblogs.com/lljj/p/Hibernate02.html
Copyright © 2020-2023  润新知