多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 跟我一起學extjs5(29--加入模塊和菜單定義[2建立java bean])

跟我一起學extjs5(29--加入模塊和菜單定義[2建立java bean])

來源:程序員人生   發布時間:2014-10-11 08:00:01 閱讀次數:2665次

跟我一起學extjs5(29--加入模塊和菜單定義[2建立java bean])


        對上一節中加入的4個模塊在java中建立相應的bean文件。

        以上表建立好以后,需要建立java bean文件。在建立之前需要加入幾個支持類。
        先在com.jfok.server.common中建立包annotation,再在下面加入二個類庫,這二個是自定義的注釋類。分別用來注釋每一個模塊的信息和模塊中每一字段的信息。
package com.jfok.server.common.annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * 用來注釋模塊 * * @author jiangfeng */ @Retention(RetentionPolicy.RUNTIME) public @interface TableDefine { // 此表的id號,為一個4位數字 int id(); // 模塊名稱 String title(); // 模塊簡稱 String shortname() default ""; // 模塊分組名稱 String group(); // 模塊的主鍵是否可以是分級的,如果是可以分級的,可定義為"2,2,2",表示有三級,每級代碼長為2位, // 比如會計科目可以這樣來定義 // 10 // 1001 // 100101 // 100102 // 100102 // 1002 // ...... String codeLevel() default ""; // 模塊是否有附件 boolean attachment() default false; }

package com.jfok.server.common.annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * 用來注釋模塊中的每個字段 * * @author jiangfeng * */ @Retention(RetentionPolicy.RUNTIME) public @interface FieldDefine { String title(); int number() default 0; String remark() default ""; boolean nameField() default false; boolean hidden() default false; String fieldGroup() default "默認組"; }

        在com.jfok.server.hibernate中建立包system,把系統用到的bean文件都放在這個目錄下。先建立一個接口文件:
package com.jfok.server.hibernate.system; /** * 有此接口的類,都是系統模塊的控制類 * * @author jfok * */ public interface _IModuleControlInterface { }

再建立_ModuleGroup.java
package com.jfok.server.hibernate.system; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import com.jfok.server.common.annotation.FieldDefine; import com.jfok.server.common.annotation.TableDefine; /** * 模塊分組類,每一個模塊都有一個大類分組 * * @author jfok 2012.11.7 */ @SuppressWarnings("serial") @Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) @TableDefine(group = "系統模塊", id = 9901, title = "模塊分組") public class _ModuleGroup implements _IModuleControlInterface, Serializable { public static final String TITLE = "tf_title"; @Id @FieldDefine(title = "模塊分組序號", number = 10) @Column(nullable = false, length = 10) private String tf_moduleGroupId; @FieldDefine(title = "模塊分組名稱", nameField = true, number = 20) @Column(nullable = false, length = 50) private String tf_title; @FieldDefine(title = "描述", number = 30) private String tf_description; @FieldDefine(title = "圖標地址", number = 40) private String tf_iconURL; @FieldDefine(title = "備注", number = 50) private String tf_remark; public _ModuleGroup() { } // setter and getter }
        上面這個類中,就用自定義的注釋類來進行了注釋,一個是注釋在類名上,一個是注釋在各個字段上。這二個類注釋的功能是以后在增加一個模塊的時候,會自動把這些注釋的信息自動的加到保存的模塊和模塊字段的表中。

        再加入_Module.java
package com.jfok.server.hibernate.system; import java.io.Serializable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import org.codehaus.jackson.map.annotate.JsonSerialize; import com.jfok.server.common.annotation.FieldDefine; import com.jfok.server.common.annotation.TableDefine; /** * 系統中每個模塊的字義 * * @author jfok 2012.11.7 * */ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY) @SuppressWarnings("serial") @Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) @TableDefine(group = "系統模塊", id = 9902, title = "系統模塊") public class _Module implements _IModuleControlInterface, Serializable { public static final String MODULEID = "tf_moduleId"; public static final String MODULENAME = "tf_moduleName"; @Id @FieldDefine(title = "模塊ID號", number = 10) @Column(nullable = false, length = 10) private String tf_moduleId; // 模塊ID,模塊序號 @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER) @JoinColumn(name = "tf_moduleGroupId") @FieldDefine(title = "模塊分組", number = 20) private _ModuleGroup tf_ModuleGroup; @FieldDefine(title = "模塊標識", number = 30) @Column(nullable = false, length = 50, updatable = false) private String tf_moduleName; // 模塊英文名稱 @FieldDefine(title = "模塊名稱", nameField = true, number = 40) @Column(nullable = false, length = 50) private String tf_title; // 模塊中文名稱 @FieldDefine(title = "模塊簡稱", number = 50) @Column(length = 20) private String tf_shortname; // 簡稱 @FieldDefine(title = "英文簡稱", number = 60) @Column(length = 20) private String tf_englishname; // 英文簡稱,在新增序號的時候,可以把這字母加進去 @FieldDefine(title = "表名", number = 70) @Column(length = 50) private String tf_tableName; @FieldDefine(title = "主鍵", number = 80) @Column(nullable = false, length = 50) private String tf_primaryKey;// 模塊主鍵 @FieldDefine(title = "顯示標志字段", number = 81) @Column(nullable = false, length = 50) private String tf_nameFields;// 模塊主要關鍵內容的字段,如合同的是合同名稱,部門的是部門名稱 @FieldDefine(title = "記錄標題tpl", number = 82, remark = "如果顯示標志字段不能描述記錄,需要設置此內容") @Column(length = 200) private String tf_titleTpl;// 模塊主要關鍵內容的字段,如合同的是合同名稱,部門的是部門名稱 @FieldDefine(title = "編碼字段", number = 91) @Column(length = 50) private String tf_codeField;// 模塊編碼字段,如果有的話 @FieldDefine(title = "順序號字段", number = 97) @Column(length = 50) private String tf_orderField;// 模塊編碼字段,如果有的話 @FieldDefine(title = "日期字段", number = 92) @Column(length = 50) private String tf_dateField; @FieldDefine(title = "年度字段", number = 93) @Column(length = 50) private String tf_yearfield; @FieldDefine(title = "月度字段", number = 94) @Column(length = 50) private String tf_monthField; @FieldDefine(title = "季度字段", number = 95) @Column(length = 50) private String tf_seasonField; @FieldDefine(title = "文件字段", number = 96) @Column(length = 50) private String tf_fileField; @FieldDefine(title = "主頁上順序", number = 99) @Column(length = 50) private String tf_homePageTag; @FieldDefine(title = "模塊描述", number = 100) @Column(length = 50) private String tf_description; @FieldDefine(title = "請求地址", number = 110) @Column(nullable = false, length = 50) private String tf_requestMapping;// 系統中后臺服務的調用接入點 user.do,employee.do 等 @FieldDefine(title = "圖標地址", number = 120) @Column(length = 50) private String tf_iconURL; @FieldDefine(title = "默認排序字段", number = 130) private String tf_defaultOrderField; @FieldDefine(title = "行操作", remark = "新增及修改操作都行內完成", number = 140) @Column(nullable = false) private Boolean tf_isInlineOper; // 如部門編碼為 2,2,2,2,2 @FieldDefine(title = "編碼級次", remark = "如果設置了編碼級次,則主鍵的長度必須是此級次中的,并且必須有父級編碼存在", number = 150) @Column(length = 50) String tf_codeLevel; @FieldDefine(title = "聯動模塊", remark = "在本模塊的數據增刪改后,打開的聯動模塊都要刷新數據。", number = 155) @Column(length = 200) private String tf_linkedModule; @FieldDefine(title = "可用", number = 160) @Column(nullable = false) private Boolean tf_isEnable = false; @FieldDefine(title = "可瀏覽", number = 170) @Column(nullable = false) private Boolean tf_hasBrowse = false; @FieldDefine(title = "可增加", number = 180) @Column(nullable = false) private Boolean tf_hasInsert = false; @FieldDefine(title = "可修改", number = 190) @Column(nullable = false) private Boolean tf_hasEdit = false; @FieldDefine(title = "可刪除", number = 200) @Column(nullable = false) private Boolean tf_hasDelete = false; @FieldDefine(title = "可執行", number = 210) @Column(nullable = false) private Boolean tf_hasExec = false; @FieldDefine(title = "可審核", number = 220) @Column(nullable = false) private Boolean tf_hasAuditing = false; @FieldDefine(title = "可審批", number = 230) @Column(nullable = false) private Boolean tf_hasApprove = false; @FieldDefine(title = "可支付", number = 240) @Column(nullable = false) private Boolean tf_hasPayment = false; @FieldDefine(title = "有附件", number = 250) @Column(nullable = false) private Boolean tf_hasAddition = false; // 是否需要附件 @FieldDefine(title = "可權限設置", remark = "用戶可對此模塊設置權限,選定的才可以瀏覽與操作", number = 260) @Column(nullable = false) private Boolean tf_canLimit = false; // 此模塊是否能進行權限設置 @FieldDefine(title = "Excel導入", remark = "是否可以通過Excel導入新增記錄", number = 270) @Column(nullable = false) private Boolean tf_allowInsertExcel = false; @FieldDefine(title = "Excel修改", remark = "是否可以導出的Excel修改后再導入", number = 280) @Column(nullable = false) private Boolean tf_allowEditExcel = false; @FieldDefine(title = "可圖表", number = 290) @Column(nullable = false) private Boolean tf_hasChart = false; @FieldDefine(title = "系統模塊", number = 300, remark = "如果是系統模塊,用戶沒有瀏覽權限,就不把模塊定義發送到前端") @Column(nullable = false) private Boolean tf_isSystem = false; @FieldDefine(title = "查詢條件順序號", number = 310, remark = "此模塊放在綜合查詢的條件選擇欄中的順序") private Integer tf_searchCondOrder; @FieldDefine(title = "備注", number = 800) private String tf_remark; public _Module() { } // setter and getter }

        _MenuGroup.java
package com.jfok.server.hibernate.system; import java.io.Serializable; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Transient; import com.jfok.server.common.annotation.FieldDefine; import com.jfok.server.common.annotation.TableDefine; /** * 菜單分組 * * @author jfok * */ @SuppressWarnings("serial") @Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) @TableDefine(group = "系統模塊", id = 9920, title = "菜單分組") public class _MenuGroup implements _IModuleControlInterface, Serializable { @Id @FieldDefine(title = "順序號", remark = "菜單分組按順序號顯示在菜單條上", number = 10) @Column(length = 10, nullable = false) private String tf_menuGroupId; @FieldDefine(title = "分組名稱", nameField = true, number = 20) @Column(length = 50, nullable = false) private String tf_title; @FieldDefine(title = "展開", remark = "在樹狀菜單下默認是否展開", number = 30) private Boolean tf_expand; @FieldDefine(title = "圖標glyph", number = 40) private Boolean tf_glyph; @FieldDefine(title = "圖標文件名", remark = "圖標放置于/images/module/目錄下", number = 50) @Column(length = 50) private String tf_iconURL; @FieldDefine(title = "分組描述", number = 60) @Column(length = 50) private String tf_description; @FieldDefine(title = "備注", number = 70) private String tf_remark; @Transient private List<_MenuModule> tf_menuModules; public _MenuGroup() { } //setter and getter }

        _MenuModule.java

package com.jfok.server.hibernate.system; import java.io.Serializable; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import org.codehaus.jackson.annotate.JsonIgnore; import org.hibernate.annotations.GenericGenerator; import com.jfok.server.common.annotation.FieldDefine; import com.jfok.server.common.annotation.TableDefine; /** * 系統可使用的菜單項 * * @author jfok * */ @SuppressWarnings("serial") @Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) @TableDefine(group = "系統模塊", id = 9921, title = "系統菜單") public class _MenuModule implements _IModuleControlInterface, Serializable { @Id @FieldDefine(title = "ID號", hidden = true, number = 10) @GeneratedValue(generator = "increment") @GenericGenerator(name = "increment", strategy = "increment") private Integer tf_menuModuleId; @FieldDefine(title = "順序號", remark = "按順序號顯示在菜單中", number = 20) @Column(nullable = false) private Integer tf_orderId; @JsonIgnore @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER) @JoinColumn(name = "tf_menuGroupId", nullable = false) @FieldDefine(title = "菜單分組", nameField = true, number = 30) private _MenuGroup tf_MenuGroup; @JsonIgnore @ManyToOne(cascade = CascadeType.REFRESH, fetch = FetchType.EAGER) @JoinColumn(name = "tf_moduleId", nullable = false) @FieldDefine(title = "系統模塊", number = 40) private _Module tf_Module; @FieldDefine(title = "父菜單標題", number = 50) @Column(length = 20) private String tf_parentMenu; @FieldDefine(title = "分隔下一條", number = 60) private Boolean tf_addSeparator; @FieldDefine(title = "菜單標題", number = 70) @Column(length = 50) private String tf_title; @FieldDefine(title = "父模塊約束設置", number = 80) private String tf_parentFilter; // 這個字段用于傳送json到前臺,放在json中 @Column(insertable = false, updatable = false) private String tf_ModuleId; public _MenuModule() { } // setter and getter }

        再修改 hibernate.cfg.xml,把上面4個class加入到配置文件中。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="hibernate.connection.url">jdbc:sqlserver://10.211.55.5:1433;databaseName=extjs5</property> <property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password"></property> <property name="hibernate.connection.autocommit">false</property> <property name="format_sql">true</property> <property name="show_sql">true</property> <!-- 系統模塊 --> <mapping class="com.jfok.server.hibernate.system._ModuleGroup" /> <mapping class="com.jfok.server.hibernate.system._Module" /> <mapping class="com.jfok.server.hibernate.system._MenuGroup" /> <mapping class="com.jfok.server.hibernate.system._MenuModule" /> </session-factory> </hibernate-configuration>

        
        到現在為止,我們建立好了數據表以及java bean文件,下面可以開發前后臺進行協同工作的內容了。
        各個文件的目錄結構:


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美一级久久久久久久大片动画 | 亚洲欧美日韩精品久久亚洲区 | 成人在线免费视频 | 免费xxxxx大片在线观看影视 | 国产v精品欧美精品v日韩 | 国产成人精品视频一区二区不卡 | 国产成人精品男人免费 | 成人自拍视频 | 日本一道本中文字幕 | 国内精品久久久久影院中国 | 日韩欧美国内 | 欧美精品一区二区三区在线 | 精品国产网红福利在线观看 | 日本韩国视频在线观看 | 成人亚洲欧美日韩中文字幕 | 97久久久久国产精品嫩草影院 | 99www综合久久爱com | 日韩综合色 | 2020国产精品| 亚洲第一免费 | 宇都宫紫苑最新作品 | 超乳w真性中出し冲田杏梨101 | 五月天校园春色 | 99国产精品欧美久久久久久影院 | 一级特黄aa大片一又好看 | www.av视频在线 | 亚洲免费一区 | 亚洲私人影院 | 欧美一区三区 | 五月天在线播放视频在线 | 欧美久久一区二区三区 | 日韩欧美伊人久久大香线蕉 | 成人9久久国产精品品 | 中文字幕日韩一区 | 久久久久亚洲精品一区二区三区 | 一级特黄aa毛片免费观看 | 久久国产精品久久久久久 | 激情在线视频 | 成人欧美在线 | 中文字幕在线影院 | 一级做a爰性视频 |