MyEclipse逆向生成实体类和Hibernate映射文件

news/2025/1/31 7:17:21/

前言:

前些天做项目时设计完数据库后参考原项目使用的MyEclipse自带的生成工具——MyEclipse Persistence Tools,今天跟大家分享一下它的使用方法及我在使用中遇到的问题。

 

正题:

通过下面三个步骤就可以通过数据表逆向生成实体类和映射文件。

第一步:配置数据源

1、打开MyEclipse,新建一个web工程,这里命名为hibernate_demo:

2、打开数据库设置器:依次单击【window】-->【ShowView】-->【Other…】 如下图所示:

3、在弹出的窗口ShowView中选择DBBrowser,如下图所示:

4、在DBBrowser窗口中,选择显示的图标,单击右键执行新建命令,如下图示:

 

5、弹出DatabaseDriver对话框,在此会要求我们配置数据库的相关信息,具体设置如下图所示,设置完成,单击Finish.

 

 

 

第二步:引入hibernate配置文件

1、添加hibernate包:

选中我们的Web工程,依次单击鼠标右键-->MyEclipse-->AddHibernate Capabilities… 如下图所示:

 

2、在弹出的窗口中做如下设置:

 

【Next】

 

【Next】

 

单击Next,把要创建的SessionFactory放置于相应的包中,如果前面没有设置包名,这里要先单击New创建新的包。

单击【Finish】按钮,页面效果如下图所示:

 

tips:对于要生成实体类和映射文件,前面这几步是必须的,如果您不需要hibernate.cfg.xml文件和HibernateSessionFactory类的话可以在生成实体类和映射文件后将这两个文件删除即可。

 

如果您需要hibernate.cfg.xml文件并想对其进行配置,可以参考下面这一步骤:

给hibernate.cfg.xml文件添加属性:在properties处选择Add…,如下图所示:

 

单击【Add…】,在HibernateProperties Wizard页面填入如下图所示信息,最后单击Ok。

 

show_sql:默认为false,如果为true,表示在程序运行时,会在控制台输出SQL语句,这有利于跟中Hibernate的运行状态。在开发和测试阶段,可以将该属性设置为true,以便跟踪、调试程序,在应用发布以后,应将该属性值设置为false,以减少应用的输出信息,提高运行性能。

 

第三步:添加hibernate映射文件

1、新建org.njy.bean包

2、在前面设置的数据源上找到我们要操作的表:

在DBBrowser中选中新建的数据源,单击鼠标右键并选择open connection..

 

输入数据库的用户名和密码,以创建连接:

 

找到刚才新建的crud数据库,然后是TABLE,如下图所示:

 

生成POJO:

 

 

善后工作:

1.生成完成后,它会自动生成两个包Hibernate3.3AnnotationHibernate3.3CoreLibraries,如果你的项目中不需要使用删除即可(当然还有hibernate.cfg.xmlHibernateSessionFactory可以删除):

 

2.如果你的数据表中有注释,那么就要注意了,myeclipse的生成工具会将注释生成到<column></column>之间而且用的是<comment>标签生成的,这是会报两个错误:

1org.xml.sax.SAXParseException:The content of element type "column" must match EMPTY(这个是<column></column>标签中间必须为空,不能有注释)

 

2Elementcommentmust be declared(这个是<comment>不能识别,改为<!-- -->这种注释然后将注释提到<column>标签外即可)

 

3.数据库中的Number类型会转换为java.math.BigDecimal,将该类型转换为java.lang.Long.

 

“磨刀不误砍柴工”,一个好的工具和一些使用技巧可以帮助我们省去很多的麻烦。


http://www.ppmy.cn/news/365419.html

相关文章

设计模式第4讲——代理模式(Proxy)

目录 一、什么是代理模式 二、特点 三、应用场景 四、代理模式的实现 4.0 代码结构 4.1 静态代理 4.2 JDK动态代理 4.3 Cglib代理 五、总结 一、什么是代理模式 为其他对象提供一种代理以控制对这个对象的访问。在某些情况下&#xff0c;一个对象不适合或者不能直…

python办公自动化 使用openpyxl合并excel表格

果然&#xff0c;只有工作才能促使我学习。 1、需求介绍 就是要把九个字段名一样且每个表数据量是固定的表合并。 内部长这样&#xff1a; 表格都是从数据库里跑出来的&#xff0c;所以格式比较固定&#xff0c;每个表数据量固定就是&#xff0c;第一个表197行&#xff0c;第二…

Nyoj 229

我感觉这道题很好&#xff01; 利用背包思想来做&#xff0c;用二分来逼近并找出答案&#xff01; #include<iostream> #include<cstdio> #include<cstring> using namespace std;const int MAXN 110;int Ap[MAXN]; int Bp[MAXN]; int dp[MAXN];//dp[i]表示…

NYOJ_39

题目&#xff1a; 描述 请判断一个数是不是水仙花数。 其中水仙花数定义各个位数立方和等于它本身的三位数。 输入 有多组测试数据&#xff0c;每组测试数据以包含一个整数n(100<n<1000) 输入0表示程序输入结束。 输出 如果n是水仙花数就输出Yes 否则输出No 样例输入 15…

使用myeclipse的反向工程来生成相应的hibernate映射文件和POJO类

1、 数据库设计 建立crud.student数据库表&#xff1a; 图1 数据库表 你可以使用如下语句创建该库表&#xff1a; [sql] view plain copy create database if not exists crud; USE crud; DROP TABLE IF EXISTS student; CREATE TABLE student ( id int(4) NOT NULL a…

什么是5G? 5G有多牛逼!!!!

什么是5G? 5G有多牛逼&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 时代发展的历程&#xff01; 社会发展的速度快到你无法想象&#xff01;相信很多人都是伴随着移动通讯发展的脚步走来的&#xff0c;今天就让博主带大家领略一下科技的发展&#xff0c;年…

【Cxinny】node.js

Node.js是一个JavaScript的后端运行环境&#xff0c;无法调用Ajax、DOM和BOM等浏览器内置API。 Node.js仅仅提供了基础的功能和API&#xff0c;但是基于这些基础功能&#xff0c;开发了各种框架。node.js框架 Express.js是快速开发web应用程序&#xff0c;因为它具有强大的路由…

nyoj17

单调递增最长子序列 时间限制&#xff1a; 3000 ms | 内存限制&#xff1a; 65535 KB 难度&#xff1a; 4 描述 求一个字符串的最长递增子序列的长度 如&#xff1a;dabdbf最长递增子序列就是abdf&#xff0c;长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理…