zoukankan      html  css  js  c++  java
  • 第二讲 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修改语句)
    好处:方便级联操作。

     

     

     

     

  • 相关阅读:
    如何自定义iOS中的控件
    NSArray中的对象进行排序
    微信摇动代码
    思考面向对象
    网络编程 socket编程
    iOS RUN LOOP 是个什么东西?
    iOS runloop 自定义输入源
    iPhone开发资源汇总
    UISearchBar
    重学STM32---(八)----SDIO
  • 原文地址:https://www.cnblogs.com/lljj/p/Hibernate02.html
Copyright © 2011-2022 走看看