您的位置:首页 > 编程语言 > Java开发

eclipse 逆向工程生成hibernate实体类(注解或配置文件)

2016-04-13 12:19 996 查看

1.安装hibernate tools

在 help --> Eclipse Marketplace 中搜索 hibernate, 找到 jboss tools , 点击 install, 选择 hibernate tools , 其他的不装, 按照步骤安装即可

2.使用 Database Development 创建数据库连接

这个应该很简单, 选择要连接的数据库类型, 输入url,用户名和密码即可



3.在hibernate视图窗口中创建配置文件




点击 + 号, 或者右键空白区域, 点击 Add Configuration





如果后面生成时报错, 可能是 hibernate version 太高, 选个低的就可以了



点击 OK 后



选择 HIbernate Code Generation,






注意: 上图右边的 Catalog 表示的是对应的数据库名, 最好设置为空, 因为有可能换环境之后数据库名称不一样, hibernate.reveng.xml 是可以修改的, 可以添加或删除表, 重新生成对应实体



如果表设计的时候带有前缀比如Tbl_Entity, 可以自己写一个策略类, 来生成类名

可以选择生成策略类来格式化要生成的类的名字字段。可能会遇到:

It is indirectly referenced from required .class file

原因:你正要使用的类调用了另一个类,而这个类又调用了其他类,这种关系可能会有好多层。而在这个调用的过程中,某个类所在的包的缺失就会造成以上那个错误。

解决方法:导入缺失的包

browse选择你写的策略类就可以了。



期间可能要下载jar包

hibernate-tools包和hibernate-core包因为这个类用到了hibernate的东西。

[java] view
plain copy

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;

}

}

如果上面的方法没有生效, 则需要修改hibernate-tools的源码
下载hibernate-tools的源码, 修改DefaultReverseEngineeringStrategy类中相关的方法,类似上面, 然后将该类编译后的class文件打包到eclipse的hibernate-tools插件的jar包中
一般的位置为:
plugins\org.jboss.tools.hibernate.runtime.v_4_0_5.0.1.Final-v20160331-1852-B88\lib, 也可以直接在 eclipse 中搜索 hibernate-toos
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: