zoukankan      html  css  js  c++  java
  • java之hibernate之配置讲解

    1.映射文件:User.hbm.xml

    <!-- 
        package 指向class中所有类的包名,可以直接在指定类名时同时指定包名
     -->
    <hibernate-mapping package="cn.vincent.pojo">
        <!-- 
            class 表示类的映射
                name表示类名,如果hibernate-mapping中没有指定包名,在这里必须指定。
                table 指定类所对应的表名  如果不写 默认和类名一致
         -->
        <class name="User" table="t_user">
            <!-- 
                id表示主键映射,在hibernate中,类所对应的表必须有主键
                name表示 类中对应数据库表中主键属性名  
                column 表示字段名称 不写和属性名一致
                type 表示属性的类型  如果不写 会自动根据类的属性信息查找
             -->
            <id name="id" column="id" type="int">
                <!-- 
                    generator表示主键生成策略-为保存数据时指定其id
                    increment 
                        用于为long, short或者int类型生成 唯一标识。
                        只有在没有其他进程往同一张表中插入数据时才能使用。 在集群下不要使用。 
                        select max(id) from table;
                    identity 
                        对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL
                        的内置标识字段提供支持。 返回的标识符是long, short 或者int类型的。
                    sequence 
                        在DB2,PostgreSQL, Oracle, SAP DB, McKoi中使用序列(sequence), 
                        而在Interbase中使用生成器(generator)。返回的标识符是long, short或者 int类型的。
                    <generator class="sequence">
                         <param name="sequence">sequence_name</param>
                     </generator>
                     hilo 
                        使用一个高/低位算法高效的生成long, short 或者 int类型的标识符。给定一个表和
                        字段(默认分别是 hibernate_unique_key 和next_hi)作为高位值的来源。 
                        高/低位算法生成的标识符只在一个特定的数据库中是唯一的。
                    uuid-开发中使用最多
                        用一个128-bit的UUID算法生成字符串类型的标识符, 这在一个网络中是唯一的(使用
                        了IP地址)。UUID被编码为一个32位16进制数字的字符串。 
                    native 
                        根据底层数据库的能力选择identity, sequence 或者hilo中的一个。 
                    assigned   手动指定id
                        让应用程序在save()之前为对象分配一个标示符。这是 <generator>元素
                        没有指定时的默认生成策略。 
                    foreign 
                        使用另外一个相关联的对象的标识符。通常和<one-to-one>联合起来使用。 
                 -->
                 
                <generator class="native"></generator>
            </id>
            <!-- 
                property 表示属性的映射 
                    name 属性名 区分大小写,属性提供get/set方法
                    column 字段名 不写时 默认和属性名一致
                    type 属性的类型 可以不写
             -->
            <property name="name" column="name" type="java.lang.String"/>
            <property name="age" column="age" type="int"/>
        </class>
    </hibernate-mapping>

    2.配置文件讲解:hibernate.cfg.xml

    <hibernate-configuration>
        <session-factory>
            <!-- 数据库连接信息 -->
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <!-- 默认 localhost:3306 -->
            <property name="connection.url">jdbc:mysql:///test</property>
            <property name="connection.username">root</property>
            <property name="connection.password">root</property>
            
            <!-- 通用配置 -->
            <!-- 方言:hibernate要支持多种数据库,根据不同数据库生成对应的sql语句
                告诉hibernate使用的什么数据库,以便生成对应数据库的sql
             -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
            <!-- 打印sql语句 -->
            <property name="show_sql">true</property>
            <!-- 格式化sql -->
            <property name="format_sql">true</property>
            <!-- 映射信息  注意映射文件存放的是文档路径 需要用/ -->
            <mapping resource="cn/vincent/pojo/User.hbm.xml"/>
        </session-factory>
    </hibernate-configuration>
  • 相关阅读:
    一篇图看清Java中的各种Queue
    使用尾递归计算阶乘
    使用 Sonar 检测代码质量
    jsessionid 导致重定向404的问题
    Java8之——简洁优雅的Lambda表达式
    支付宝手机网站支付开发指引
    Intellij Idea 编辑器使用之 安装、破解 版本15.0.1
    虚拟机启动linux系统报错,此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
    META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗
    一道Integer面试题引发的对Integer的探究
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/11197245.html
Copyright © 2011-2022 走看看