hibernate tools自動生成entity程式碼
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
可以選擇生成策略類來格式化要生成的類的名字欄位。可能會遇到:
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;
- publicclass 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 {
- returnsuper.tableToClassName(table);
- }
- };
- publicvoid setSettings(ReverseEngineeringSettings settings) {
- super.setSettings(settings);
- this.settings = settings;
- }
- }