【Hibernate】从类创建表

2024-08-26 11:38
文章标签 创建 hibernate 从类

本文主要是介绍【Hibernate】从类创建表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    这两天开始了陆陆续续的学习Hibernate视频了,看到了视频中老师通过建类使用Hibernate创建了一张表,觉得很神奇,之前一直都是先建表后根据表创建类,所以心头一腔热血也试了试这块的内容。看着老师操作觉得挺简单的,但是轮到我真正落实起来的时候真是各种奇葩问题都来了。所以留下博客一篇用来记录这个神奇的时刻。

    首先是Hibernate环境搭建,引入相应的Jar包(这里学到了一招,建立自己的jar包库),写好hibernate.cfg.xml文件配置,完成jdbc的配置。

<hibernate-configuration><session-factory ><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_first</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">oxj</property><!-- 方言 (用来把Java对象转化成关系数据库来描述,这里用的是mysql,到时候就可以翻译成mysql的语句,这样就具有了可移植性,不用写适应多个数据库的dao)--><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><mapping resource="com/tgb/hibernate/User.hbm.xml"/></session-factory>
</hibernate-configuration>

    需要提示的是,Java是严格区分大小写的,我在写com.mysql.jdbc.Driver的时候将Driver写成了小写的driver,导致报错,提示找不到mysql的jar包,当时纳闷了,明明在用户库中找到了mysql的连接jar包,结果提示说没有。后来才发现这个拼写的错误,顿时有种想抽自己一巴掌的感觉。

紧接着是建立目标类,在此次的例子中,我建立了一个名叫User的类。

public class User {private String id;private String name;private String password;private Date createTime;private Date expireTime;

    接下来就是Hibernate中非常核心的事情,为类提供提供hbm文件,完成对象和类之间的关系映射。

<hibernate-mapping><class name="com.tgb.hibernate.User" ><!-- id表示表的主键 --><id name="id"><!-- 提供生成策略,是手动还是自动 (采取自动生成,uuid32位的字符)--><generator class="uuid"></generator></id><!-- column将实体的name属性和数据库表的user_name属性对应上 --><property name="name"></property><property name="password"></property><property name="createTime"></property><property name="expireTime"></property></class>	
</hibernate-mapping>

    这个完成之后,要紧跟着在hibernate的配置文件中,将对象的hbm.xml文件的配置写入其中,完成映射。

最后,为了测试效果,编写了一个工具类ExportToDB.java,将hbm生成相应的ddl语句,使用configuration来读取配置文件。

public class ExportDB {public  static void main(String[] args){//读取配置文件Configuration cfg=new Configuration().configure();//通过schemaExport根据拿到的配置文件生成ddl文件SchemaExport ex= new SchemaExport(cfg);ex.create(true,true);}
}

    查看效果:


    以上就是从类创建表的一个神奇的过程,当然这仅仅是我Hibernate学习的一个开始,虽然其中遇到了各种奇葩问题,但正是这种一步步的试错让我成长。我相信我能学好Hibernate这块的知识。


这篇关于【Hibernate】从类创建表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108455

相关文章

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Python创建Excel的4种方式小结

《Python创建Excel的4种方式小结》这篇文章主要为大家详细介绍了Python中创建Excel的4种常见方式,文中的示例代码简洁易懂,具有一定的参考价值,感兴趣的小伙伴可以学习一下... 目录库的安装代码1——pandas代码2——openpyxl代码3——xlsxwriterwww.cppcns.c

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时

MySQL分表自动化创建的实现方案

《MySQL分表自动化创建的实现方案》在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在... 目录一、项目目的二、实现过程(一)mysql 事件调度器结合存储过程方式1. 开启事件调度器2. 创

mysql外键创建不成功/失效如何处理

《mysql外键创建不成功/失效如何处理》文章介绍了在MySQL5.5.40版本中,创建带有外键约束的`stu`和`grade`表时遇到的问题,发现`grade`表的`id`字段没有随着`studen... 当前mysql版本:SELECT VERSION();结果为:5.5.40。在复习mysql外键约

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

Window Server2016 AD域的创建的方法步骤

《WindowServer2016AD域的创建的方法步骤》本文主要介绍了WindowServer2016AD域的创建的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一、准备条件二、在ServerA服务器中常见AD域管理器:三、创建AD域,域地址为“test.ly”