MyEclipse使用反向工程
-
在使用Hibernate进行数据库操作时在代码编写方面确实大大减少了工作量,但是需要编写大量的XML文档,所幸MyEclipse提供了一种反向工程来快速构建XML文档。
本文章中数据库使用Oracle、MyEclipse使用2014版
下面首先看数据库,这里仅以一个Login表为示例,表中有三个字段,id(主键)、username、password。
数据库建立完成后,打开MyEclipse。然后依次点击window-->Open Perspective-->MyEcplise Hibernate
然后在右侧DB Browser中右击选择New后弹出以下窗体
然后填入相应的内容,首先选择相应的Driver Template,本示例中选择Oracle(Thin Driver),Driver Name是自己命名的连接名,例如MyConn,填入数据库相应的URL还有用户名和密码,然后在Driver JARs中选择相应的数据库驱动,然后点击Finish。如下:
这时在右侧的DB Browser中出现名为MyConn的数据库连接。
然后在MyConn上右击选择Open Connection,在弹出的窗体中填入密码即可
这是在MyConn中按级展开即可找到要映射的数据表。
然后新建一个java项目或者web项目,这里以java项目为例,创建名为HibernateTest的java项目,并建立后相应的包结构。
然后在HibernateTest项目上右击,依次选择MyEclipse-->Project Facets-->install Hibernate Facet然后选择相应的运行环境。
然后为生成的hibernate.cfg.xml和sessionfactory指定相应的位置
然后选择相应的连接,这里直接使用前面建立的MyConn即可。
这时在HibernateTest中自动生成一个hibernate.cfg.xml文档和一个HibernateSessionFactory.java文件
然后在DB Browser中找到需要映射的表,右击选择Hibernate Reverse Engineering……
然后根据弹出的窗体选择生成POJO类的存放位置,以及是否生成*.hbm.xml文件等。
这时在entity包下生成该映射文件以及POJO类,然后我们写一个保存的方法对其进行测试,具体代码如下:
123456789101112131415161718192021222324package dao;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.
Transaction
;
import sessionfactory.HibernateSessionFactory;
import entity.Login;
public
class BaseDao {
public
void save(Login login) {
Session session = HibernateSessionFactory.getSession();
Transaction
tran =
null
;
try {
tran = session.beginTransaction();
session.save(login);
tran.
commit
();
System.
out
.println(
"添加成功!"
);
} catch (HibernateException e) {
tran.
rollback
();
System.
out
.println(
"插入失败!"
);
}
}
}
然后在主方法中对该类进行调用,如下:
1234567891011121314package test;
import java.math.BigDecimal;
import dao.BaseDao;
import entity.Login;
public
class Test {
public
static
void main(String[] args) {
BaseDao bd = new BaseDao();
Login login = new Login(new BigDecimal(1),
"小刚"
,
"12345678"
);
bd.save(login);
}
}
这时在控制台打印输出:添加成功!
然后看一下数据库中是否插入数据:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)