ORCP
ORCP(Object Relational Creator Plugin for Eclipse,eclipse 對象關(guān)系生成器插件)
支持的 eclipse 最低版本為 3.6(Helios),myeclipse 以其基于的 eclipse 版本為準(zhǔn)。目前暫只提供對 MySQL、SqlServer 的支持
項目地址:https://github.com/lychie/orc
離線插件:org.lychie.eclipse.plugin.orc_1.0.1.jar(提取碼:2949)
離線插件:org.lychie.eclipse.plugin.orc_1.0.1.zip(提取碼:847b)
ORCP V1.0.1 修復(fù)了與 maven 等基于 velocity 插件沖突的 BUG
支持的 eclipse 最低版本為 3.6(Helios),myeclipse 以其基于的 eclipse 版本為準(zhǔn)。目前暫只提供對 MySQL、SqlServer 的支持
項目地址:https://github.com/lychie/orc
離線插件:org.lychie.eclipse.plugin.orc_1.0.1.jar(提取碼:2949)
離線插件:org.lychie.eclipse.plugin.orc_1.0.1.zip(提取碼:847b)
ORCP V1.0.1 修復(fù)了與 maven 等基于 velocity 插件沖突的 BUG
安裝 ORCP(eclipse / myeclipse)
方式 1.將從上面下載的 org.lychie.eclipse.plugin.orc_1.0.1.jar,直接丟到 eclipse 安裝目錄的 dropins 文件夾下即可
方式 2.將從上面下載的 org.lychie.eclipse.plugin.orc_1.0.1.zip,解壓縮得到 orc 文件夾,用 link 的方式連接到該目錄即可
方式 2.將從上面下載的 org.lychie.eclipse.plugin.orc_1.0.1.zip,解壓縮得到 orc 文件夾,用 link 的方式連接到該目錄即可
ORCP 安裝完成
啟動 eclipse,若 eclipse 已經(jīng)啟動,重啟它。
若安裝成功,在工具欄處可以看到兩個紅色的圖標(biāo),如下:
若安裝成功,在工具欄處可以看到兩個紅色的圖標(biāo),如下:

ORCP 插件使用
1.選中一個項目
2.點(diǎn)擊工具欄處的 configure 圖標(biāo)
,彈出配置向?qū)У囊晥D,如下:

3.填寫數(shù)據(jù)庫連接的信息

4.點(diǎn)擊 Extra Settings Tab,前兩項為必填項,后三項為可選項,如下:

第一項: 填寫生成的 JAVA 類的包名
第二項: 選擇源代碼文件夾,它自動匹配到 src/main/java 或 src 目錄,也可通過單擊來選擇其他的存放目錄
第三項: 填寫排除的表,可選項,被排除的表不生成其 JAVA 類。值與值之間用英文逗號分隔。如 table_name1, table_name2
第四項: 填寫排除的列,可選項,被排除的列不生成其 JAVA 類屬性。值與值之間用英文逗號分隔。排除所有表的 column_name1
列,用 *.column_name1。排除特定的某個表 table 的 column_name2 列,用 table.column_name2
第五項: 選擇模板文件的存放目錄,可選項。若該項被選擇,則 ORCP 總是會根據(jù)這些模板文件來生成 JAVA 類文件。
模板文件基于 velocity,這要求對 velocity 基本語法有所掌握。可通過單擊鼠標(biāo)右鍵來取消該項的選擇
5.根據(jù)需要填寫所需項,如下:

6.點(diǎn)擊 OK 按鈕,完成配置
7.點(diǎn)擊工具欄處的 Run 圖標(biāo)
來生成 JAVA 類文件
數(shù)據(jù)庫信息如下:

項目的信息如下:

生成的 JAVA 類名稱為數(shù)據(jù)庫表名稱首字母大寫,JAVA 類文件的屬性名稱與表的列的名稱保持一致,屬性的類型依賴于不同的數(shù)據(jù)庫。
2.點(diǎn)擊工具欄處的 configure 圖標(biāo)


3.填寫數(shù)據(jù)庫連接的信息

4.點(diǎn)擊 Extra Settings Tab,前兩項為必填項,后三項為可選項,如下:

第一項: 填寫生成的 JAVA 類的包名
第二項: 選擇源代碼文件夾,它自動匹配到 src/main/java 或 src 目錄,也可通過單擊來選擇其他的存放目錄
第三項: 填寫排除的表,可選項,被排除的表不生成其 JAVA 類。值與值之間用英文逗號分隔。如 table_name1, table_name2
第四項: 填寫排除的列,可選項,被排除的列不生成其 JAVA 類屬性。值與值之間用英文逗號分隔。排除所有表的 column_name1
列,用 *.column_name1。排除特定的某個表 table 的 column_name2 列,用 table.column_name2
第五項: 選擇模板文件的存放目錄,可選項。若該項被選擇,則 ORCP 總是會根據(jù)這些模板文件來生成 JAVA 類文件。
模板文件基于 velocity,這要求對 velocity 基本語法有所掌握。可通過單擊鼠標(biāo)右鍵來取消該項的選擇
5.根據(jù)需要填寫所需項,如下:

6.點(diǎn)擊 OK 按鈕,完成配置
7.點(diǎn)擊工具欄處的 Run 圖標(biāo)

數(shù)據(jù)庫信息如下:

項目的信息如下:

生成的 JAVA 類名稱為數(shù)據(jù)庫表名稱首字母大寫,JAVA 類文件的屬性名稱與表的列的名稱保持一致,屬性的類型依賴于不同的數(shù)據(jù)庫。
ORCP 生成的 JAVA 類結(jié)構(gòu)(ModelBase.java)
package org.lychie.model;
public abstract class ModelBase {
}
public abstract class ModelBase {
}
ORCP 生成的 JAVA 類結(jié)構(gòu)(ModelMaster.java)
package org.lychie.model;
public final class ModelMaster {
public static class DeptBase extends ModelBase {
private Long id;
private String name;
private String location;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
. . . . . .
public final class ModelMaster {
public static class DeptBase extends ModelBase {
private Long id;
private String name;
private String location;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
. . . . . .
ORCP 生成的 JAVA 類結(jié)構(gòu)(Dept.java)
package org.lychie.model;
import org.lychie.model.ModelMaster.DeptBase;
public class Dept extends DeptBase {
}
import org.lychie.model.ModelMaster.DeptBase;
public class Dept extends DeptBase {
}
ORCP 生成的 JAVA 類結(jié)構(gòu)設(shè)計
為能夠較好的支撐二次生成,ORCP 將生成的 JAVA 類結(jié)構(gòu)劃分為 ModelBase、ModelMaster、Model(具體的數(shù)據(jù)庫表對應(yīng)的 JAVA 類)。
ModelBase 作為所有 Model 的父類。二次生成的時候,ModelBase 不會被改變,適合將數(shù)據(jù)庫表共有的列抽象到這層,如常見的 id 等(不要忘記在 Configure 向?qū)е械?Exclude Columns 欄配上 *.id 哦)。
Model 作為 ModelMaster.ModelBase 的擴(kuò)展類。二次生成的時候,Model 也不會被改變,它專門被設(shè)計來對實(shí)體類做一些額外的擴(kuò)展。
ModelMaster 實(shí)時與數(shù)據(jù)庫保持同步,二次生成的時候,ModelMaster 總是會被覆蓋的。
二次生成的時候,JAVA 類文件只可能會增加,不會被減少。因此,若選擇了外部模板的形式(Template Folder 欄被配置),當(dāng)模板文件被改動時,不要忘記先將對應(yīng)的 JAVA 類文件刪除,然后再進(jìn)行二次生成。否則,模板文件的改動無效(ModelMaster.vm 除外,因?yàn)樗鼘?yīng)的 JAVA 類文件二次生成的時候總是會被覆蓋的)。在外部應(yīng)用中,應(yīng)使用 Model 類。
每個項目只需 Configure 向?qū)渲靡淮渭纯桑粜枳兏渲茫匦曼c(diǎn) Configure 配置即可。當(dāng)配置變更或數(shù)據(jù)庫變更的時候,直接點(diǎn) Run 即可進(jìn)行二次生成。
ModelBase 作為所有 Model 的父類。二次生成的時候,ModelBase 不會被改變,適合將數(shù)據(jù)庫表共有的列抽象到這層,如常見的 id 等(不要忘記在 Configure 向?qū)е械?Exclude Columns 欄配上 *.id 哦)。
Model 作為 ModelMaster.ModelBase 的擴(kuò)展類。二次生成的時候,Model 也不會被改變,它專門被設(shè)計來對實(shí)體類做一些額外的擴(kuò)展。
ModelMaster 實(shí)時與數(shù)據(jù)庫保持同步,二次生成的時候,ModelMaster 總是會被覆蓋的。
二次生成的時候,JAVA 類文件只可能會增加,不會被減少。因此,若選擇了外部模板的形式(Template Folder 欄被配置),當(dāng)模板文件被改動時,不要忘記先將對應(yīng)的 JAVA 類文件刪除,然后再進(jìn)行二次生成。否則,模板文件的改動無效(ModelMaster.vm 除外,因?yàn)樗鼘?yīng)的 JAVA 類文件二次生成的時候總是會被覆蓋的)。在外部應(yīng)用中,應(yīng)使用 Model 類。
每個項目只需 Configure 向?qū)渲靡淮渭纯桑粜枳兏渲茫匦曼c(diǎn) Configure 配置即可。當(dāng)配置變更或數(shù)據(jù)庫變更的時候,直接點(diǎn) Run 即可進(jìn)行二次生成。