Hibernate学习-5-配置文件详解

自动建表的配置建完表后,最好关掉配置<property name="hibernate.hbm2ddl.auto">create</property>每次都重新建表,如果表已经存在就先删除再创建。<property name="hibernate.hbm2ddl.auto">create-drop</property>每次在创建sessionFactory时执行创建表当调用sessionFactory的close方法的时候,再删除。<property name="hibernate.hbm2ddl.auto">update</property>如果不存在就创建;存在就不创建。<property name="hibernate.hbm2ddl.auto">validate</property>执行验证,当映射文件与表结构不一样,报错

通过代码自动建表,执行代码后会根据class.hbm.xml文件中的内容自动建表
package com.cx.hello;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
import org.junit.Test;

/**
 * Created by cxspace on 16-7-23.
 */
public class App_ddl {

    //自动建表
    @Test

    public void testCreate() throws Exception{

        //创建配置管理对象
        Configuration config = new Configuration();

        //加载主配置文件
        config.configure();

        //创建工具类对象
        SchemaExport export = new SchemaExport(config);

        //建表,这两个参数一个在控制台显示脚本,一个执行脚本
        export.create(true,true);

    }

}

对象映射配置文件详解

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

<!--
   映射文件作用,映射一个实体类对象,描述一个对象最终实现可以直接保存对象数据到数据库
-->

<!--
    package 要映射的对象所在的包
   (可选)如果不指定,下面的所有的类都需要指定全路径

    auto-import 默认为true,在写hql的时候自动导入
    包名,如果指定为false,再写hql的时候要写上类的全名

    如:
    session.createQuery("from cn.cxspace.Employee").list();

-->

<hibernate-mapping package="com.cx.hello" >

    <!--
       class 映射某一个对象的(一般情况,一个对象写一个映射文件,小写一个class节点)
         name 指定要映射的对象类型
         table 对象对应的表(如果没有指定表名,默认和对象名一样)

    -->

    <class name="Employee" table="employee">

        <!--对象与表,字段与属性-->
        <!--主键,映射-->
        <id name="empId" column="id">
            <!--

                主键的生成策略

                  identity 自增长 (mysql , db2)

                  native 自增长

                   [会根据数据库自增长的方式选择identity或sequence]

                   如果是mysql数据库,那么使用identity实现自增长

                   如果是oracle,那么使用sequence实现自增长

                   sequence 自增长(序列),oracle中自增长是以序列方式实现的

                   increment 自增长(会有并发问题,一般在服务器集群环境使用会存在并发问题)

                   assigned 指定主键生成策略为手动指定主键的值

                   uuid 指定uuid随机生成的惟一的值

                   foreign  (外键方式)
            -->

            <generator class="native"/>
        </id>

        <!--非主键,映射-->

        <!--

                普通字段映射

                property

                name     指定对象的属性名称

                column 指定对象属性对象表的字段名称,如果不写默认与对象的属性一致。

                       (列名为关键字,需要加单引号或者改列名)

                length 指定字符类型的长度,默认为255

                type 指定表字段的类型

                     java类型 : 必须写类全名

                     hibernate类型 : 直接写类型,都是小写

        -->

        <property name="empName" column="empName" length="20"></property>

        <property name="workDate" column="workDate" ></property>

    </class>

</hibernate-mapping>

关于主键的一些问题

一个表能否有多个主键 ?   不能

为什么要设置主键  ? 数据库存储的数据都是有效的,必须保持唯一。

为什么把id作为主键 ?   id保证了记录的唯一性。

联合主键

[如果找不到合适的列作为主键,除了用id列已外,一般用联合主键,即多列的值作为一个主键,从而保证记录的唯一性]

复合主键的表建立(t1,t1联合主键)

CREATE TABLE t(

     t1 int,

     t2 int,

     msg VARCHAR(20),

    PRIMARY KEY(t1 , t2)

);
				
时间: 2024-10-12 09:50:02

Hibernate学习-5-配置文件详解的相关文章

Hibernate复习(三)配置文件详解

1.hibernate.cfg.xml 2.映射文件Person.hbm.xml Java的实体类是通过配置文件与数据表中的字段相关联.Hibernate在运行时解析配置文件,根据其中的字段名生成相应的SQL语句 a.id属性 <generator>子元素用来设定标识符生成器.Hibernate提供了多种内置的实现. b.property属性 ? name属性:指定持久化类的属性的名字. ? type属性:指定Hibernate或Java映射类型.Hibernate映射类型是Java类型与SQ

【Hibernate】Hibernate.cfg.xml配置文件详解

Hibernate配置文件主要用于配置数据库连接和Hibernate运行时所需的各种属性,这个配置文件应该位于应用程序或Web程序的类文件夹 classes中.Hibernate配置文件支持两种形式,一种是xml格式的配置文件,另一种是Java属性文件格式的配置文件,采用"键=值"的形式.建议采用xml格式的配置文件.xml配置文件可以直接对映射文件进行配置,并由Hibernate自动加载,而properties文件则必须在程序中通过编码加载映射文件. 注意:hibernate的前缀可

Mybatis学习--XML配置文件详解

在配置的Mybatis的时候,我们可以通过一个XML来配置,也可以嵌入到其他配置文件中, 比如Spring的applicationContext.xml中. MyBatis 的 XML 配置文件包含了影响 MyBatis 行为甚深的设置和属性信息. XML 文档 的高层级结构如下: configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHandlers 类型处理器 objectFactory 对象工厂 plugins 插件

Elasticsearch 学习之配置文件详解

Elasticsearch配置文件##################### Elasticsearch Configuration Example ##################### # # 只是挑些重要的配置选项进行注释,其实自带的已经有非常细致的英文注释了! # https://www.elastic.co/guide/en/elasticsearch/reference/current/modules.html # ################################

【JAVAEE学习笔记】hibernate01:简介、搭建、配置文件详解、API详解和CRM练习:保存客户

今日学习:hibernate是什么 一.hibernate是什么 框架是什么: 1.框架是用来提高开发效率的 2.封装了好了一些功能.我们需要使用这些功能时,调用即可.不需要再手动实现. 3.所以框架可以理解成是一个半成品的项目.只要懂得如何驾驭这些功能即可. hibernate框架是什么: hibernate的好处: 操作数据库的时候,可以以面向对象的方式来完成.不需要书写SQL语句 hibernate是一款orm框架: orm:object relationg mapping. 对象关系映射

Java学习-007-Log4J 日志记录配置文件详解及实例源代码

此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-1-30 13:54:02,请知悉. 所需的 jar 包下载链接为:http://yunpan.cn/cKE56sxqtQCfP  访问密码 63d8 有关 Log4J 日志文件中日志级别及文件配置的详细情况,在 Log4J 的配置文件(xml.properties)中有详细的介绍,敬请参阅!

Hibernate入门核心配置文件和orm元数据配置文件详解

框架是什么? 框架是用来提高开发效率的 封装了一些功能,我们需要使用这些功能时,调用即可,不用手动实现 所以框架可以理解为一个半成品的项目,只要懂得如何使用这些功能即可 Hibernate是完全面向对象的顶级框架 Hibernate框架的搭建 导包 书写配置文件 upgrade:升级改善 Hibernate配置文件详解 orm元数据配置文件 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hiber

Hibernate3 Api,配置文件详解

1 api详解[多练] 1.1 体系结构 PO:persistent object ,用于与数据库交互数据.--dao层  (JavaBean + hbm ) BO:Business object 业务数据对象.--service层 VO:Value Object 值对象.--web层 开发中:直接使用JavaBean 描述三个对象. 1.2 Configuration 配置对象 l hibernate 核心配置文件种类 hibernate.cfg.xml 通常使用xml配置文件,可以配置内容更

[转]hibernate缓存机制所有详解

以下文章来自http://www.blogjava.net/tbwshc/articles/380013.html Hibernate 所有缓存机制详解 hibernate提供的一级缓存 hibernate是一个线程对应一个session,一个线程可以看成一个用户.也就是说session级缓存(一级缓存)只能给一个线程用,别的线程用不了,一级缓存就是和线程绑定了. hibernate一级缓存生命周期很短,和session生命周期一样,一级缓存也称session级的缓存或事务级缓存.如果tb事务提

配置文件详解和核心api讲解

一.配置文件详解 1.映射文件详解 1.映射配置文件的位置和名称没有限制. -建议:位置:和实体类放在统一目录下.  名称:实体类名称.hbm.xml.    2.在映射配置文件中,标签内的name属性的值要和实体内的属性对应. (1)class标签内的name的值为实体类的全路径. (2)property标签内的name的值为实体类的属性. (3)id标签内的name的值为实体类的属性. (4)id和property标签内的column属性可以不写. (5)id和property标签内有一个t