Hibernate3配置文件

数据库配置文件 *.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="自定义名称">
        <property name="hibernate.connection.driver_class">驱动类</property>
        <property name="hibernate.connection.url">数据库地址</property>
        <property name="hibernate.connection.username">用户名</property>
        <property name="hibernate.connection.password">密码</property>
        <property name="hibernate.dialect">方言</property>
        <property name="show_sql">true/false</property> <!-- 打印sql语句 -->
        <!--
        hbm2ddl.auto
create:启动时先drop,再create
create-drop: 创建表,系统关闭前会将表drop掉
update:自动更新表结构
validate:验证表结构,如表结构不一致抛出异常
-->
<property name="hbm2ddl.auto">update</property>
<!-- 
配置使用getCurrentSession
如果是本地事务用thread
如果是全局事务用jta
-->
<property name="current_session_context_class">thread</property>

        <mapping resource="包路径/../../*.hbm.xml" />
        
    </session-factory>
</hibernate-configuration>


-------------------------------------------------------------------
映射配置文件 *.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="类名" table="表名">
    <!-- 主键 -->
        <id name="属性名" type="java数据类型">
            <column name="字段名" />
            <!-- 主键生成策略
            assigned(常用) 由程序生成,在调用save方法前指定,没有指定会抛异常
            hilo  主键字段必须整形,新建一张表做支持,默认表名hibernate_unique_key 默认字段next_hi,
                                    字段也必须是整形,需要初始值,字段值不能修改,需要添加
                  <param name="table">添加的表名</param>
                  <param name="column">字段名</param>
                  <param name="max_lo">每条数据的间隔</param>
            increment 自增长方式创建主键,底层数据库必须支持sequence,
                                            不适合多进程更新数据库,不能用于集群环境
            identity(常用) 根据底层数据库来自增长,使用与支持自增涨的数据库,主键字段自身需要支持自增涨
                                                     可移植性比较差,不支持oracle
            sequence(常用) 需要底层数据库支持sequence,如oracle,需要添加
                           <param name="sequence">seq_name</param>
            native(常用) 根据不同底层数据库选择identity,sequence,hilo其中之一的生成方法,便于移植
            uuid.hex 使用128位UUID算法生成主键,保证同一网络环境下的主键唯一,字段需要字符串类型
            -->
            <generator class="" />
        </id>
        <property name="属性名" type="java数据类型">
            <column name="字段名" />
        </property>
    </class>
</hibernate-mapping>


--------------------------------------------
Annotation注解方式


1. SessionFactory用AnnotationConfiguration创建
2. 配置文件中注册类
<mapping class="xx.xxx.xx" />


@Entity 在类体上加注解,使用javax.persistence.Entity
@id 在get方法上加注解,标识主键,使用javax.persistence.Id
@GeneratedValue(strategy=GenerationType.AUTO) 自动判断主键自增方式


hibernate提供主键生成方式
@GeneratedValue(generator="generatorName", strategy=GenerationType.AUTO)
@GenericGenerator(name="自定义name", strategy="[uuid,hilo...]")



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值