Hibernate自动建表(使用DDL语句)

2023-10-26

Gd上次和大家谈到使用DDL语句实现自动建表失败的问题,过了几天再回头看果然思路就变得清晰许多,原来是xxx.hbm.xml文件的配置上出了问题,因为上次没有用Junit进行测试,所以没有看明白问题的描述,这里不得不说一句,Junit真是个好东西,emmmmmm。Junit测试后报的错误是这样的: Could not parse mapping document: org/User/hibernate.hbm.xml (RESOURCE),大概意思就是无法解析这个xxx.hbm.xml文件,对于初学者来说,我觉得应对这么大范围的错误最好的办法就是把以前用的正确的xxx.hbm.xml文件拷贝过来测试成功了再说,Gd把之前测试成功的xxx.hbm.xml文件拷贝过来,再次进行测试,果不其然,测试成功!



再回过头去找之前的错误所在,发现是粗心大意的自己把generator class那一行给落下了,真的是因小失大啊!!!

下面给出我的测试成功的文件供大家借鉴:

1.xxx.hbm.xml文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-8-22 10:37:16 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="org.User.User" table="X_USER">
        <id name="id" type="int">
            <column name="ID" />
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String">
            <column name="NAME" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="PASSWORD" />
        </property>
        <property name="age" type="int">
            <column name="AGE" />
        </property>
        <property name="gender" type="java.lang.String">
            <column name="Gender" />
        </property>
    </class>
</hibernate-mapping>

这里的generator class属性值是increment,使用native也一样会测试成功。

2.xxx.cfg.xml文件

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="show_sql">true</property>
		<property name="hibernate.dialect">org.hibernate.dialect.Oracle9iDialect</property>
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="hibernate.connection.username">system</property>
		<property name="hibernate.connection.password">123456</property>
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property> 
		<!-- 自动建表语句,其属性值有多个,create是其中一个,属性值不同功能不同 --> 
		<property name="hibernate.hbm2ddl.auto" >create</property>  
		<mapping resource="org/User/hibernate.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

3.测试类

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
import org.User.User;

public class TestX_user{
	@Test
	public void testIncrease(){
	Configuration conf = new Configuration().configure();
	SessionFactory sf = conf.buildSessionFactory();
	Session session  = sf.openSession();
	Transaction tx = session.beginTransaction();
	try {
		User u = new User();
		u.setName("张三");
		u.setAge(23);
		u.setPassword("zhangsan");
		session.save(u);
		tx.commit();
	} catch (Exception e)
	{
		// TODO: handle exception
		if(null!=tx){tx.rollback();}
		e.printStackTrace();
	}
	finally
	{
		session.close();
		sf.close();
	}
  }	    
}
如此便大功告成了,欢迎一起学习的同志们多多交流!!!



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hibernate自动建表(使用DDL语句) 的相关文章

随机推荐

  • 华为交换机日常用巡检命令

    display version 查看设备允许版本 display startup 检查软件包 display licence 检查Licence信息 display patch information 检查补丁信息 display cloc
  • nrm安装后报错的解决办法(windows环境)

    安装 nrm npm install g nrm 运行nrm ls报错 配置系统环境变量 查询npm所在的路径 执行以下命令 其中prefix就是所需路径 npm config ls 新建系统环境变量 变量名 自己可定 只要与下一步添加时一
  • git解决冲突方法

    多人协作代码 若修改区域不是同一块很容易解决 场景描述 初始master上代码版本号为A 他人在本地修改后提交到master 版本号变为B 但此时我本地版本号仍是A 本地修改之后变为B 无法进行推送 解决方案 1 查看并创建分支 git b
  • Scala如何使用元组?用法代码实例

    Tuple是元素的集合 元组是异构的数据结构 也就是说 它们可以存储不同数据类型的元素 元组是不可变的 不像scala中的数组是可变的 存储整数 字符串和布尔值的元组的示例 val name 15 Chandan true 元组的类型由其所
  • pytorch函数详解

    pytorch函数详解 在typora这里写之后复制到简书上 1 torchvision 1 1 transforms Compose transforms 把几个转换组合 example from PIL import Image t t
  • k-均值(k-means)及Matlab动态实现

    k 均值 k means 及Matlab实现 注 1 仅适合于数值属性的数据 2 对正态分布 高斯分布 数据聚类效果最佳 1 算法思想 k means算法 也称k 均值算法 它把N个对象划分成k个簇 用簇中对象的均值表示每个簇的中心点 质心
  • 红黑树与平衡二叉树_奈学:红黑树(RedBlackTree)的概述

    1 AVL树与红黑树 AVL树是一种自平衡的二叉查找树 又称平衡二叉树 AVL用平衡因子判断是否平衡并通过旋转来实现平衡 它的平衡的要求是 所有节点的左右子树高度差不超过1 AVL树是一种高平衡度的二叉树 执行插入或者删除操作之后 只要不满
  • IAR EW for STM8 3.11.1汉化包汉化教程

    IAR EW for STM8 3 11 1汉化包汉化教程 汉化包下载地址 https me csdn net download u010210711 汉化教程直接将汉化包解压后复制到安装目录的bin文件夹 如 C Program File
  • C++ cstdlib – 概览

    什么是 C cstdlib C 标准库头文件 cstdlib in C 是 C 程序员使用最广泛的库头文件 它定义了一系列函数和宏 以实现跨团队 跨平台的高效且具有卓越表现的标准化 C 代码 C 是一种广受欢迎的程序语言 它能崛起的最初原因
  • HIMA F3330 984333002 伺服驱动模块

    运动控制 HIMA F3330 984333002 伺服驱动模块通常用于精确的运动控制应用 可以控制电机以特定速度和位置进行运动 位置反馈 HIMA F3330 984333002 伺服驱动模块可能支持位置反馈功能 以确保电机运动的准确性和
  • 你不得不知的几个互联网ID生成器方案

    服务化 分布式已成为当下系统开发的首选 高并发操作在数据存储时 需要一套id生成器服务 来保证分布式情况下全局唯一性 以确保系统的订单创建 交易支付等场景下数据的唯一性 否则将造成不可估量的损失 基于时间戳 比如流水号规则如下 XX YYY
  • C语言编程获取PE文件File_Header内容

    include
  • Js逆向练习制造Token与Id

    前言 闲来无聊 把 Pyhton3网络爬虫开发实战 第二版 看完了Js逆向部分 最后的实战部分感觉挺有挑战性的 正好崔佬也有详细的教程 平时的逆向都是野路子 刚好快回学校了有时间 那为什么不自己动手下呢 下面记录下过程 只会更加详细 观察页
  • [从零开始学习FPGA编程-33]:进阶篇 - 基本时序电路-寄存器(Verilog语言)

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 目录 前言 第1章 寄存器介绍 1 1 时序电路的两大特征
  • Qt 常用设计模式-单例模式(Singleton)

    单例 顾名思义 为了保证一个类仅有一个实例 并提供一个可以访问它的全局访问点 避免一个全局使用的类频繁的创建和销毁 节省系统资源 提高程序效率 如何创建唯一的实例 如果是A a new A 但是这么做的话就会有多个实例 所以我们需要把构造函
  • 记一个好用的xshell替代工具-mobaxterm

    https zhuanlan zhihu com p 56341917 现今软件市场上有很多终端工具 比如 secureCRT Putty telnet 等等 secureCRT其实也是一款很强大的终端工具 良许也使用过它很长时间 但是 它
  • 合法三角形数量

    题目1 给定一个n个正整数的数组a 问在其中取三个数 同时满足以下两个条件的取法有多少个 1 这三个数能构成三角形 即任意两数之和大于第三数 2 这三个数构成的三角形既不是等边三角形 也不是直角三角形 数据范围 3 lt n lt 2000
  • 通过 kubectl 查看 K8s 内节点、Pod 资源使用情况

    一 kubectl describe node 可通过该命令查看 Pod 在节点上的资源分配情况 Request Limits 如下 product 表示生产环境 kubectl describe node l env product 执行
  • 024-从零搭建微服务-系统服务(六)

    写在最前 如果这个项目让你有所收获 记得 Star 关注哦 这对我是非常不错的鼓励与支持 源码地址 后端 https gitee com csps mingyue 源码地址 前端 https gitee com csps mingyue u
  • Hibernate自动建表(使用DDL语句)

    Gd上次和大家谈到使用DDL语句实现自动建表失败的问题 过了几天再回头看果然思路就变得清晰许多 原来是xxx hbm xml文件的配置上出了问题 因为上次没有用Junit进行测试 所以没有看明白问题的描述 这里不得不说一句 Junit真是个