HIbernate配置文件的配置和映射文件的配置

hibernate配置文件的配置

1.hibernate配置文件
  <!-- hibernate头文件 在hibernate-core-5.2.10.Final.jar包中的org.hibernate包
    下的hibernate-configuration-3.0.dtd文件中可以找到 -->
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<!-- hibernate配置的跟标签 -->
<hibernate-configuration>
    <!-- sessionFactory(会话工厂) 相当于 数据库连接池 -->
    <session-factory>
        <!-- 加载数据库的驱动类 基础设置-->
        <!-- 在连接数据库的jar包中 com.mysql.jdbc包下找Driver类(驱动类) 
            写入它的全限定类名-->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/数据库名</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">123456</property>
        <!-- hibernate方言 mysql方言 limit-->
        <!-- 配置使用哪个类 全类名 -->
        <!-- 在hibernate-core-5.2.10.Final.jar包中的org.hibernate.dialect包下
        找使用的mysql方言包-->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
        <!-- 在控制台输出sql语句 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 美化sql语句 -->
        <property name="hibernate.format_sql">true</property>
        <!-- hbm2ddl.auto 是否自动生成表结构 -->
        <property name="hibernate.hbm2ddl.auto">update</property>

        <!--
            设置事物的隔离级别(去etc里面找)
            hibernate.connection.isolation 1|2|4|8
            隔离级别是用一个字节存储的
          -->
        <property name="hibernate.connection.isolation">4</property>

        <!-- 使用getCurrentSession 必须配置一下 
             注意:当你使用getCurrentSession时
             不需要你手动关闭session 系统会帮你关闭
        -->
        <property name="hibernate.current_session_context_class">thread</property>


        <!-- 注意:映射实体类 全文件名 从包名开始-->
        <!-- 让配置文件知道有你这个实体类 -->
        <mapping resource="com/xxx/bean/Customer.hbm.xml"/>
        <mapping resource="com/xxx/bean/LinkMan.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

hibernate映射文件的配置

2.hibernate映射文件的配置
  <?xml version="1.0" encoding="UTF-8"?>
  <!-- 头文件 在hibernate-core-5.2.10.Final.jar包中的org.hibernate包
    下的hibernate-
mapping-3.0.dtd文件中可以找到-->
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.xxx.bean">
    <class name="Role" table="sys_role">
        <id name="user_id" column="user_id">
            <generator class="native"></generator>
        </id>
    <property name="user_code" column="user_code"></property>
    <property name="user_name" column="user_name"></property>
    <property name="user_password" column="user_password"></property>
    <property name="user_state" column="user_state"></property>
    </class>
    <!-- 一对多表关系的配置 -->
    <!-- 
        name: 实体类中容器的属性名 
        column: 表中的外键名
        class: 表示一对多中 多表的类(全类名)

        inverse 控制是否维护外键关系
        inverse 默认维护外键的关系 默认值false
        结语:inverse可以减少无 用的操作 提高效率

        cascade 级联操作
        save-update 
        delete
        all == save-update + delete
        建议:如果要用级联的话 就用save-update 慎用delete
    -->
    <set name="linkMans" cascade="delete">
        <key column="lkm_cust_id"></key>
        <one-to-many class="LinkMan"/>
    </set>
    <!--  
        name:表示关系对象的属性名
        column: 表中外键名
        class: 多对一关系中 对应的实体类名
        注意: 外键的属性 不要重复配置
    -->
    <many-to-one name="customer" column="lkm_cust_id" class="Customer"></many-to-one>

    <!-- 多对多表关系的配置 -->
    <!-- 
        name:对应容器的名
        table:中间表的名字
        column:被引用的外键
        _________________
        class: 与之对应的表的名(全类名)
        column: 前面class中被引用的外键
     -->
    <set name="roles" table="sys_user_role" inverse="true">
        <key column="user_id"></key>
        <many-to-many class="Role" column="role_id"></many-to-many>
    </set>
    <set name="users" table="sys_user_role" cascade="delete">
        <key column="role_id"></key>
        <many-to-many class="User" column="user_id"></many-to-many>
    </set>
</hibernate-mapping>
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/X18621144576/article/details/79951669
个人分类: JavaWeb
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭