环境
MySQL 5.1 + Hibernate 3.2 + MyEclipse 8.6
问题
Hibernate逆向工程
解决
第一步 创建数据库
--创建数据库
create database hibernate default charset utf8;
--创建表
create table TbUser
(
id int(11) primary key auto_increment,
name varchar(20) not null,
password varchar(11) not null,
sex varchar(2) null
);
第二步 创建一个Java工程,取名为HibernateTest
点击Next >,在新的对话框当中,创建一个新的Source Folder,取名为src,最后点击Finish(这步可忽略)
第三步 配置数据库
1. 点击Window-------->show view-------->other,在弹出的对话框当中,选择MyEclipse Database分支下的DB Browser,如下图所示:
2. 最后,点击OK,在工作空间上将会出现一个DB Browser的配置页面,在配置页面空白处,右键,选择New按钮
3. 在弹出的对话框当中配置数据库连接。在配置页面上,选择数据库类型,输入数据库配置名称,输入数据库用户名密码,导入Mysql JDBC Driver即可。
4. 然后选择Next,选择“Display All schemas”。接着,点击Finish按钮,完成了数据库的配置。
5. 最后,使用DB Browser连接到数据库,如下图所示
第四步 初始化Hibernate开发环境
1. 在工程上右键,选择MyEclipse-->Add Hibernate Capabilities
2. 将弹出Hibernate的配置窗口,如下图所示:
3. 点击Next>按钮,创建一个新的Hibernate配置文件,如下图所示:
4. 点击Next>,配置数据库的信息,在DB Driver当中选择刚刚定义的数据库连接配置,MyEclipse将自动填充相应的配置信息值,包括JDBCDriver,URL,UserName,Password及Dialect,如下图所示:
5. 点击Next>按钮,在新的对话框当中点击Java package所在行的New按钮,该功能是定义HibernateSessionFactory所在的路径。如下图所示
6. 在弹出的New Java Package对话框当中,在Name项输入com.test,或者你自己喜欢的包名,之后点击Finish按钮。
7. 最后,点击Finish按钮。
8. 新的工程目录结构如下图所示:
9. 我们可以看到,系统自动给我们生成了HibernateSessionFactory.java及Hibernate.cfg.xml配置文件,并将Hibernate环境所需要的外部包文件也加入到CLASSPATH当中。
第五步 通过反向工程,生成POJO及hbm映射文件:
1. 在DB Browser配置界面,入进hibernate数据库,如下图所示:
2. 点击t_user,在键,选择Hibernate Reverse Engineering,如下图所示:
3. 将弹出如下的对话框,在Java package当中输入产生的hibernate映射的JavaBean为com.test,详细请参考下图
4. 点击Next>按钮,在新的对话框当中,在ID Generator的选项当中选择increment,表示ID为数据库自增长类型
5. 点击Next>,可以修改类名或列名。
6. 最后,点击Finish按钮。新的目录结构如下图所示:
第六步 编写测试例子
package com.test;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class TestHibernate {
/**
* @param args
*/
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
Tbuser user = new Tbuser("123", "123", "1");
try {
session.save(user);
tx.commit();
} catch (Exception e) {
tx.rollback();
e.printStackTrace();
}finally{
session.close();
}
}
}
示例效果如下图:
![]() | ![]() ![]() |
@Wentasy 博文仅供参考,欢迎大家来访。如有错误之处,希望批评指正。原创博文如需转载请注明出处,谢谢 :) [优快云博客] |