Hibernate学习(3)- *.hbm.xml详解

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<!-- 
    package用于定义包的,那么class就不用写包名路径了 
    schema指数据库模式,一个模式下能够有多张表
-->
<hibernate-mapping package="com.demo.pojo" >
    <!-- 
        class映射一个实体类
        提供了公共的无参构造方法  - 经过反射产生对象
        属性用private修饰,而且生成对应的get、set方法
        类不能用final修饰  - hibernate会产生代理类(cglib)
        类须要指定标识 - 主键
        name表示实体类的类名
        table表示数据库对应的表名,若是不写默认是类名
     -->
    <class name="User" table="user">
        <!-- 
            id表示实体类的标识(OID) - 对应数据库表中的主键
            name实体类的标识属性名
            column表示数据库表中的列名,若是不写则数据库列名与属性名一致
            length 表示数据库表中对应数据类型的长度,若是不写有默认长度
            type表示类型,若是不写,hibernate自动根据实体类的字段类型肯定
         -->
        <id name="id" column="id">
            <!-- 
                主键生成策略
                increment: 由hibernate管理主键,自动以递增的方式生成标识符,每次增量为1(id+1做为主键);
                用于long,short,int类型生成自增主键(注意:集群下不能使用;缘由:每次生成前,会去查询最大的id) identity: 由底层数据库生成主键。identity是由数据库本身生成的,但这个主键必须设置为自增加,前提条件是底层数据库支持自动增加字段类型,
                通常来讲像SQL Server,MYSQL这类的数据库都是选择identity sequence:采用数据库提供的sequence机制生成主键。如oralce中的sequence hilo: 经过hi/lo算法实现的主键生成机制,须要额外的数据库表或字段提供高位值来源 native: hibernate根据使用的数据库自行判断采用identity、hilo、sequence其中一种做为主键生成方式。
              在hibernate配置中native是默认的,泛指的自增,
              也就是说除了oracle数据库外(oracle下用native须要用到一个叫hibernate_sequence的sequence),
              大部分数据库你均可以使用默认的native来表明自增。 assigned:主键由外部程序负责生成,在save()以前手动指定一个
--> <generator class="native"/> <!-- 自增 --> </id> <!-- 实体类属性 name:指明实体类属性名(区分大小写) 另外:<property name="name"><column name="name"></column></property>,经过column指定数据库列名 --> <property name="name"/> <property name="pwd"/> </class> </hibernate-mapping>

 

PS:源码地址   https://github.com/JsonShare/hibernate-demohtml

 

PS:原文地址  http://www.cnblogs.com/JsonShare/p/8681786.htmlgit

相关文章
相关标签/搜索