1. 程式人生 > >eclipse 逆向工程生成hibernate實體類(註解或配置檔案)

eclipse 逆向工程生成hibernate實體類(註解或配置檔案)

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的東西。

  1. import org.hibernate.cfg.reveng.DefaultReverseEngineeringStrategy;  
  2. import org.hibernate.cfg.reveng.ReverseEngineeringSettings;  
  3. import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;  
  4. import org.hibernate.cfg.reveng.TableIdentifier;  
  5. import org.hibernate.util.StringHelper;  
  6. publicclass CustomReverseEngineeringStrategy extends
  7.         DefaultReverseEngineeringStrategy {  
  8.     public CustomReverseEngineeringStrategy(ReverseEngineeringStrategy delegate) {  
  9.         super();  
  10.     }  
  11.     public CustomReverseEngineeringStrategy(){  
  12.     }  
  13.     private ReverseEngineeringSettings settings;  
  14.     @Override
  15.     public String tableToClassName(TableIdentifier table) {  
  16.         String tableName = table.getName();  
  17.         if (tableName != null && tableName.toUpperCase().startsWith("TBL_")) {  
  18.             String pkgName = settings.getDefaultPackageName();  
  19.             int lastIndex = tableName.indexOf("_");  
  20.             tableName = tableName.substring(lastIndex + 1);  
  21.             String className = toUpperCamelCase(tableName);  
  22.       //      if (pkgName.length() > 0)
  23.       //          return StringHelper.qualify(pkgName, className);
  24.             return className;  
  25.         } else {  
  26.             returnsuper.tableToClassName(table);  
  27.         }  
  28.     };  
  29.     publicvoid setSettings(ReverseEngineeringSettings settings) {  
  30.         super.setSettings(settings);  
  31.         this.settings = settings;  
  32.     }  
  33. }  
如果上面的方法沒有生效, 則需要修改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

相關推薦

eclipse 逆向工程生成hibernate實體(註解配置檔案)

1.安裝hibernate tools 在 help --> Eclipse Marketplace 中搜索 hibernate, 找到 jboss tools , 點選 install, 選擇 hibernate tools , 其他的不裝, 按照步驟安裝即可 2

eclipse從資料庫逆向生成Hibernate實體

做專案必然要先進行資料庫表設計,然後根據資料庫設計建立實體類(VO),這是理所當然的,但是到公司裡做專案後,讓我認識到,沒有說既進行完資料庫設計後還要再“自己”建立一變VO。意思是,在專案設計時,要麼根據需求分析建立實體類,由正向生成資料庫表;要麼就先進行資料庫表設計,再逆

Eclipse通過HibernateTools實現逆向生成Hibernate實體

 在專案開發時,要麼先完成資料庫表的設計,再逆向生成實體類或者根據需求分析建立實體類,有正向生成資料庫表。沒有人會浪費大量的時間在進行完任意一方時自己匹配建立另一方設計,這樣做還可能導致兩邊對映不一致,對開發和維護都不利。廢話不多說,現在開始實現由資料庫逆向生成Hibe

eclipse從資料庫逆向生成Hibernate實體操作

    如果你的Eclipse中沒有Hibernate外掛,就需要向你的Eclipse中新增Hibernate外掛,具體操作,參見http://jingyan.baidu.com/article/a2

Eclipse通過HibernateTools實現逆向生成Hibernate實體對映

做專案必然要先進行資料庫表設計,然後根據資料庫設計建立實體類(VO),這是理所當然的,但是到公司裡做專案後,讓我認識到,沒有說既進行完資料庫設計後還要再“自己”建立一變VO。意思是,在專案設計時,要麼根據需求分析建立實體類,由正向生成資料庫表;要麼就先進行資料庫表設計,再逆向

HIbernate實體註解配置

一、類級別註解 1、@Entity(name="EntityName")  必選 name為可選,對應資料庫中一的個表 2、@Table(name="",catalog="",schema="") 可選,通常和@Entity配合使用,只能標註在實體的class定義處

Mybatis逆向工程生成的Example的使用方法

  假如要使用updateByPrimaryKeySelective方法(根據ID更新表) xml檔案如下: <update id="updateByPrimaryKeySelective" parameterType="schooloa.bean.TrainingPr

mybatis逆向工程生成的Example的使用

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 測試結果(資料庫中有兩個username為張三): DEBUG [main] - ==> Preparing: select id, username, birthday, sex, address from user WHERE

圖解 IDEA 中 springboot 專案 MyBatis Generator 逆向生成實體及 mapper 配置檔案

1. 新建一個 配置檔案:generatorConfig.xml 。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org

spring中 hibernate實體註解

@Autowired宣告在屬性上,表示這個屬性需要注入 然後在你的applicationContext.xml中加入以下配製 <context:component-scan base-pack

Hibernate實體註解使某些屬性不對映到資料庫

因為我這邊有一個場景需要讓hibernate實體類的某些屬性不對映到資料庫,如果實體類裡面的屬性全都對映到資料庫,在進行一些操作是會報表中不存在此欄位的錯誤,網上找了一下解決方案,在此記錄一下: 使用hibernate註解@Transien放在實體類的屬性上可以解決上面的問

spring+hibernate實體註解詳解(非原創) + cascade屬性取值

//User實體表示使用者,Book實體表示書籍,為了描述使用者收藏的書籍,可以在User和Book之間建立ManyToMany關聯 @Entity public class User { private List books; @ManyToMany(ta

MyBatis反向生成Java實體和Mapper對映檔案

首先在maven中新增 mybatis-generator-maven-plugin 外掛 <plugin> <groupId>org.mybatis.generator</groupId> <ar

MyEclipse2014使用Hibernate逆向工程生成實體

1. 為對應的工程專案新增Hibernate支援 到這裡我們就成功為自己的專案添加了Hibernate支援。我們可以清楚地看到專案的圖示有些許的改變,並且對應的配置檔案和SessionFactory類都自動生成好了。

mybatis 逆向工程生成實體

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.

Eclipse下手動搭建SSH框架,並使用Hibernate外掛反向生成實體和關係對映檔案

寫在前面: 接觸SSH框架有一段時間了。在整合實戰的過程中遇到了各種各樣的問題,最後都一一解決了。 下面記錄一個SSH框架整合實戰的小演示,這個演示旨在記錄學習SSH框架的艱辛過程。 重點知識: 1,在Eclipse中下手動搭建SSH框架,並把SessionFac

利用mybatis框架逆向工程生成實體dao和mapper

1、引入maven依賴 <build> <finalName>demo6</finalName> <plugins> <plugin> &l

eclipse中利用Maven逆向工程生成PO以及mapper(mybatis)

1、在pom.xml的project>build裡面新增如下程式碼,讓maven環境支援mybatis-generator元件 <pluginManagement> <plugins> <plugin> &l

lombok 和 hibernate 配合對實體註解

lombok的@Data註解,可以在編譯過程中自動插入get/set ,有參構造,hash,toString 等方法 但是這個類如果是表中的對映類,使用的hibernate的註解對映,怎麼辦,請看hibernate對映註解的例項, 問題: 可以看到hibernate註解實體類時,會在

[spring_boot]jpa生成實體註解報錯

1.問題 生成實體類後, 註解錯誤: Entity cannot be resolved to a type 2.分析 jpa依賴hibernate的,專案缺少hibernate的相關依賴 3.解決方案 引入hibernate-jpa-2.1-api依賴 pom檔案d