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
相关文章推荐
- JAVA事务的概念
- 第一次正式java web开发项目的总结
- [struts2]单文件与多文件上传
- myeclipse快捷键大全(转载)
- Java使用cookie和session管理用户状态
- java接口不能声明为synchronized
- eclipse快捷键
- spring中context:property-placeholder/元素
- 利用jaxws创建service 和 client 简单方法
- Struts2 入门学习笔记(三)——数据转换
- java设计模式之代理模式
- JAVA RMI远程方法调用简单实例
- Mac安装MyEclipse
- Spring使用Cache、整合Ehcache
- myeclipse 8.6 安装maven3.0报错ERROR: JAVA_HOME is set to an invalid directory
- [Java]生成Excel
- JFreeCharts绘画折线(柱状图)
- Java中的可变参数
- Java系列笔记(2) - Java RTTI和反射机制
- Java多态