返回顶部
首页 > 资讯 > 精选 >如何使用Hibernate根据实体类自动生成表
  • 833
分享到

如何使用Hibernate根据实体类自动生成表

2023-07-05 17:07:15 833人浏览 八月长安
摘要

本篇内容介绍了“如何使用Hibernate根据实体类自动生成表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一种方法这种方法需要配置 hi

本篇内容介绍了“如何使用Hibernate根据实体类自动生成表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

第一种方法

这种方法需要配置 hibernate.cfg.xml 的属性 hibernate.hbm2ddl.auto,该属性值的具体说明如下:

说明
update实体对应的表如果不存在则会创建。如果实体中新增加了字段,会在相应的表中增加一列
create每次启动 Hibernate 都会创建表。在 Hiberante 启动时,会先删除实体对应的表,然后再创建实体对应的表
create-drop每次启动 Hibernate 都会创建表,并执行完后删除表。在 Hibernate 启动时,先删除实体对应的表,然后创建实体对应的数据表。SessionFactory执行close()时删除表。
validate检查hbm的文件,如果和数据库的字段不一致会抛异常
create-only在Hibernate启动时,对实体仅会执行建表语句,即使实体对应的表已经存在了,也会重复执行建表语句
drop在Hiberante启动时,对实体对应的表执行删除语句,即使实体不存在对应的表,都会执行表删除语句
none在Hiberante启动时,不会执行任何操作

先写好实体类 Ticket

package priv.lwx.hibernate.basic.entity;import java.io.ByteArrayInputStream;public class Ticket {  private Integer id;  private Integer number;  private Byte version;  public Integer getId() {    return id;  }  public void setId(Integer id) {    this.id = id;  }  public Integer getNumber() {    return number;  }  public void setNumber(Integer number) {    this.number = number;  }  public Byte getVersion() {    return version;  }  public void setVersion(Byte version) {    this.version = version;  }}

第二步:写好映射配置文件 Ticket.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"><hibernate-mapping package="priv.lwx.hibernate.basic.entity">    <class name="Ticket" table="ticket" schema="test">        <id name="id" type="integer">            <column name="id" unique="true"/>            <!--主键值的生成方式-->            <generator class="native"/>        </id>        <property name="number" type="integer">            <column name="number" not-null="true"/>        </property>        <property name="version" type="byte">            <column name="version" not-null="true"/>        </property>    </class></hibernate-mapping>

第三步:配置 hibernate.cfg.xml

配置属性 hibernate.hbm2ddl.auto

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

引入映射配置文件:

<mapping resource="priv/lwx/hibernate/basic/entity/Ticket.hbm.xml"/>

第四步:执行Hibernate的查询代码

public class TicketTest {  @Test  public void testSaveTicket() {    Session session = HibernateUtils.getSession();    Transaction tx = session.beginTransaction();    Ticket ticket = new Ticket();    ticket.setNumber(100);    ticket.setVersion((byte) 1);    session.save(ticket);    HibernateUtils.closeSession();  }}

执行上述的 session.save(ticket);,会去解析 hibernate.cfg.xml 和 Ticket.hbm.xml,解析到属性 hibernate.hbm2ddl.auto 的值为 update,就会去获取数据表的结构,如果获取不到则会生成建表语句,如果获取到了,则会逐个字段与映射文件进行比对,如果发现数据表字段缺少、字段名不同、数据类型不同等情况,则会生成相应的DDL语句对数据表的结构进行更新。如果数据表的字段比映射文件中的字段多,并不会把数据表中多出的字段删除掉。DDL语句生成好之后,save() 方法会根据传入的实体对象的属性、hbm 文件生成 DML 语句,再结合JDBC的api访问数据库,完成数据表结构的更新以及数据的存储。

第二种方法

 public void testAutoCreateTable() {    ServiceReGIStry serviceRegistry = new StandardServiceRegistryBuilder().configure().build();    Metadata metadata = new MetadataSources(serviceRegistry).buildMetadata();    //工具类    SchemaExport export = new SchemaExport();    // 会根据hbm文件将实体类对应的数据表全部删除再创建表    export.create(EnumSet.of(TargetType.STDOUT), metadata);  }}

“如何使用Hibernate根据实体类自动生成表”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何使用Hibernate根据实体类自动生成表

本文链接: https://lsjlt.com/news/353519.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用Hibernate根据实体类自动生成表
    本篇内容介绍了“如何使用Hibernate根据实体类自动生成表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!第一种方法这种方法需要配置 hi...
    99+
    2023-07-05
  • idea如何根据表生成实体类
    您可以按照以下步骤根据表生成实体类: 分析表结构:仔细研究表的字段、数据类型、约束等信息,以便准确地生成实体类。 创建实体类...
    99+
    2023-10-24
    idea
  • 如何让java只根据数据库表名自动生成实体类
    根据数据库表名生成实体类 公司用的jpa,没有用mybatis。所以也没有用mybatis自动生成。但有些数据库表字段太多,就想着一劳永逸了,连数据库注释都搞上去 第一种 这里使用的...
    99+
    2024-04-02
  • IDEA中如何根据数据库自动生成实体类
    这篇文章主要介绍“IDEA中如何根据数据库自动生成实体类”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“IDEA中如何根据数据库自动生成实体类”文章能帮助大家解决问题。1. IDEA连接数据库点击右侧...
    99+
    2023-07-05
  • Springboot如何根据实体类生成数据库表
    目录Springboot 实体类生成数据库表第一步:添加springboot-data-jpa和数据库的依赖关系第二步:编写yml文件的配置第三步:实体类中使用的注解第四步:启动项目...
    99+
    2024-04-02
  • 怎么让java只根据数据库表名自动生成实体类
    这篇文章将为大家详细讲解有关怎么让java只根据数据库表名自动生成实体类,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。根据数据库表名生成实体类公司用的jpa,没有用mybatis。所以也没有用mybati...
    99+
    2023-06-15
  • Mybatis如何自动生成数据库表的实体类
    第一步引入jar 第二步,配置文本文件 # 数据库驱动jar 路径 本地创库的包 drive.class.path=C:/Users/Administrator/.m2/re...
    99+
    2024-04-02
  • IDEA如何自动生成JPA实体类
    小编给大家分享一下IDEA如何自动生成JPA实体类,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、连接数据库(mysql)1.1 打开 MySQL 1.2 配置...
    99+
    2023-06-20
  • SpringBoot+jpa配置如何根据实体类自动创建表
    目录jpa配置根据实体类自动创建表1.配置文件application.properties2.pom.xml引入包3.编写实体类4.运行项目5.针对项目启动以后数据库并未生成数据库表...
    99+
    2024-04-02
  • mybatis plus generator 根据数据库自动生成实体类的实现示例
    目录1、添加依赖2、编写代码生成器3、运行主程序,输入表名1、添加依赖 <dependency> <groupId>com.baomidou<...
    99+
    2024-04-02
  • mybatis如何根据表逆向自动化生成代码实例
    前言  自动生成代码总结(1)——(mybatis自动生成实体类、mapper文件、mapper.xml文件) 若采用mybatis框架,数据库新建表,手动编写的话,需要编...
    99+
    2024-04-02
  • 数据库怎么自动生成实体类
    有多种方法可以自动生成数据库实体类,以下是常见的几种方法:1. 使用ORM框架:许多ORM框架都有自动生成实体类的功能,例如Hibe...
    99+
    2023-08-15
    数据库
  • 使用MyBatis Generator自动生成DAO以及实体类
    generatorConfig.xml文件:<xml version="1.0" encoding="UTF-8" ><!DOCTYPE generatorConfiguration PU...
    99+
    2024-04-02
  • eclipse怎么自动生成实体类
    在Eclipse中生成实体类通常使用插件或者工具,以下是一种常见的方法: 首先,确保你已经安装了相关的插件或者工具。比如,可以在...
    99+
    2024-03-02
    eclipse
  • java怎么自动生成实体类
    在Java中,有几种方法可以用来自动生成实体类: 使用IDE的自动生成工具:大部分集成开发环境(IDE)如IntelliJ ID...
    99+
    2024-03-04
    java
  • 如何根据动态SQL代码自动生成DTO
    当前的状况一般做数据库相关开发, 除非学习, 否则很少有人愿意直接使用JDBC。本来Java代码就比较啰嗦了,而直接用JDBC写代码之啰嗦简直有些令人发狂!所以在实际开发过程中,我们通常都会使用一些框架/库...
    99+
    2024-04-02
  • Mybatis如何通过数据库表自动生成实体类和xml映射文件
    本篇内容主要讲解“Mybatis如何通过数据库表自动生成实体类和xml映射文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis如何通过数据库表自动生成实体类和xml映射文件”吧!环境...
    99+
    2023-06-20
  • SpringBoot+jpa配置怎么根据实体类自动创建表
    这篇文章主要介绍“SpringBoot+jpa配置怎么根据实体类自动创建表”,在日常操作中,相信很多人在SpringBoot+jpa配置怎么根据实体类自动创建表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”S...
    99+
    2023-06-25
  • mybatis根据表逆向自动化生成代码的实现
    目录1.引入插件2.修改generatorConfig.xml文件3.运行插件,生成代码.personSunflowerP { background: rgba(51, 153, 0...
    99+
    2024-04-02
  • idea自动生成实体类怎么实现
    实现自动生成实体类的一个方法是使用反射机制和注解来实现。 首先,在需要自动生成实体类的项目中定义一个注解,例如 @Entity 注解...
    99+
    2023-10-24
    idea
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作