【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

相关文章

IntelliJ IDEA2025创建SpringBoot项目的实现步骤

《IntelliJIDEA2025创建SpringBoot项目的实现步骤》本文主要介绍了IntelliJIDEA2025创建SpringBoot项目的实现步骤,文中通过示例代码介绍的非常详细,对大家... 目录一、创建 Spring Boot 项目1. 新建项目2. 基础配置3. 选择依赖4. 生成项目5.

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

创建Java keystore文件的完整指南及详细步骤

《创建Javakeystore文件的完整指南及详细步骤》本文详解Java中keystore的创建与配置,涵盖私钥管理、自签名与CA证书生成、SSL/TLS应用,强调安全存储及验证机制,确保通信加密和... 目录1. 秘密键(私钥)的理解与管理私钥的定义与重要性私钥的管理策略私钥的生成与存储2. 证书的创建与

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P