1、eclipse下载安装jboss tools插件
2、新建hibernate.cfg.xml
3、选择文件生成路径一般在 Project的配置文件存放地点resource。因为用maven创建所以放在src\main\resource下面
4、hibernate.cfg.xml 配置信息
sessonFactory 名字:oracle最好统一成 sessonFactory
控制台配置文件生成选项checkbox 打钩。oracle可以填写schema :数据库表空间来过滤表,sqlserver可以选择catalog来过滤。或者可以在生成的配置文件里面修改
5、console configuration配置文件生成
输入配置文件信息 :文件名
生成路径:在哪个项目下面
数据库连接:没有就新建
6、新建的数据库连接
驱动jar添加
点击ok 完成
7、选择hibernate.cfg.xml
8、ok以后的可以看见hibernate控制台配置信息
9、配置hibernate自动生成反向生成配置文件hibernate.reveng.xml
10、新建配置文件
11、输入配置信息 :名字
控制台配置文件:就是刚才生成的console configuration
输出目录:生成的文件存放的 src目录
12、输入包名:生成文件到哪个包下面。
hibernate.reveng.xml 控制台配置文件生成路径:仍然选择src\main\resources
13、生成以后可以选择要生成的表
14、完成以后画面
15、选择exporters tab标签选中 生成类型。选择要生成的文件
可以选择domain code 和hibernate xml configuration因为使用了注解所以可以不用hbm.xml了
16、apply以后 点击run
17、如果表设计的时候带有前缀比如Tbl_Entity。参照http://blog.sina.com.cn/s/blog_49baa8c001015kgt.html
可以选择生成策略类来格式化要生成的类的名字字段。可能会遇到:
It is indirectly referenced from required .class file
原因:你正要使用的类调用了另一个类,而这个类又调用了其他类,这种关系可能会有好多层。而在这个调用的过程中,某个类所在的包的缺失就会造成以上那个错误。
解决方法:导入缺失的包
browse选择你写的策略类就可以了。期间可能要下载jar包
hibernate-tools包和hibernate-core包因为这个类用到了hibernate的东西。
- import org.hibernate.cfg.reveng.DefaultReverseEngineeringStrategy;
- import org.hibernate.cfg.reveng.ReverseEngineeringSettings;
- import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;
- import org.hibernate.cfg.reveng.TableIdentifier;
- import org.hibernate.util.StringHelper;
- public class CustomReverseEngineeringStrategy extends
- DefaultReverseEngineeringStrategy {
- public CustomReverseEngineeringStrategy(ReverseEngineeringStrategy delegate) {
- super();
- }
- public CustomReverseEngineeringStrategy(){
- }
- private ReverseEngineeringSettings settings;
- @Override
- public String tableToClassName(TableIdentifier table) {
- String tableName = table.getName();
- if (tableName != null && tableName.toUpperCase().startsWith("TBL_")) {
- String pkgName = settings.getDefaultPackageName();
- int lastIndex = tableName.indexOf("_");
- tableName = tableName.substring(lastIndex + 1);
- String className = toUpperCamelCase(tableName);
- // if (pkgName.length() > 0)
- // return StringHelper.qualify(pkgName, className);
- return className;
- } else {
- return super.tableToClassName(table);
- }
- };
- public void setSettings(ReverseEngineeringSettings settings) {
- super.setSettings(settings);
- this.settings = settings;
- }
- }