• hibernate如何配置自动生成表


    hibernate自动生成表有两种方法:

    1.直接写代码,通过方法来创建数据库表。

    2.通过 hibernate.cfg.xml配置标签来创建数据表。

    下面依次实现:

    1.直接写代码,通过方法来创建数据库表。

    建立一个测试类,来测试是否能够生成表。不过在执行该类之前,需要手动在数据库中建立相应的数据库,数据库的名称需要和配置文件保持一致。hibernate只会自动建表,不会自动建库。

    代码如下:
    package org.test.demo;

    import java.util.EnumSet;
    import org.hibernate.boot.Metadata;
    import org.hibernate.boot.MetadataSources;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.service.ServiceRegistry;
    import org.hibernate.tool.hbm2ddl.SchemaExport;
    import org.hibernate.tool.schema.TargetType;

    public class ExportDB {

        public static void main(String[] args){  
            ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();
               Metadata metadata = new MetadataSources(serviceRegistry).buildMetadata();
              
            //工具类  
            SchemaExport export=new SchemaExport();  
            //打到控制台,输出到数据库  
            //第一个参数 输出DDL到控制台
            //第二个参数 执行DDL语言创建表
            export.create(EnumSet.of(TargetType.DATABASE), metadata);
        }  

    }

    运行后控制台输出为建表语句:


    数据库执行sql语句为:


    2.通过 hibernate.cfg.xml配置标签来创建数据表。

    只需要在hibernate.cfg.xml里加上如下代码:

    <property name="hbm2ddl.auto">update</property>

    首次创建项目时用,项目稳定后一般注释这里有4个值:

    update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里缺少列,则自动添加列。

    还有其他的参数:

    create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失。

    create-drop:启动hibernate时,自动创建表,程序关闭时,自动把相应的表都删除。所以程序结束时,表和数据也不会再存在。

    validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

    要注意的是:数据库要预先建立好,因为hibernate只会建表,不会建库!

    测试insert()方法后控制台输出如下:

    先建表,再执行sql语句

    数据库执行sql语句为:

  • 相关阅读:
    Union用法及说明:
    SQL用了Union后的排序问题
    10条PHP编程习惯助你找工作
    PHP性能分析工具xhprof的安装使用与注意事项
    11款数据分析工具(附体验网址)
    Linux下的库操作工具-nm、ar、ldd、ldconfig和ld.so
    ldd显示可执行模块的dependenc
    计算机图形学,三维框架设计
    dnat,snat
    百度识图API
  • 原文地址:https://www.cnblogs.com/qianzf/p/11497805.html
Copyright © 2020-2023  润新知