热线电话

020-89773035

工作时间:

9:30-18:30

微信公众账号

JSAAS的基于代码生成器的开发模式

基于代码生成器的开发介绍

1.代码生成器简介

代码生成器是基于代码模板,结合数据库的实体表来生成对应的管理代码,以实现对实体表实现基本的业务管理的功能的工具,通过它可以实现快速根据系统现有的框架,可完成绝大部分的功能管理,如下图所示,即可以通过代码生成器有效生成来完成即可。

systems.png

systemedit.png

代码生成器生成的代码是基于现有的JSAAS平台架构的,因此其代码模板也是基于现有的代码模块而定的。

2.平台的技术架构

framework.png

3. 整合的技术

 

  • Spring Core
  • Spring AOP
  • Spring Security
  • Spring MVC
  • Spring Cas
  • Hibernate JPA\ MyBatis \ JDBC
  • Jackson
  • JSON-LIB
  • Activiti
  • Quertz
  • Apache MQ
  • Apache CXF
  • JavaMail
  • Jasper Report
  • JQuery+MiniUI + 扩展的其他UI组件
  • HTML5 / Inoric
  • Apache Cordova

4.代码的层次结构

logic-layer.png

5.代码生成使用模式

以下以会议表及会议参与人员表来说明如何在JSAAS平台中会议记录的管理模块,如下为两个表的创建脚本

5.1建立物理表

/*==============================================================*/
/* Table: OA_MEETING                                            */
/*==============================================================*/
CREATE TABLE OA_MEETING
(
   MEET_ID_             VARCHAR(64) NOT NULL COMMENT '会议ID',
   NAME_                VARCHAR(255) NOT NULL COMMENT '会议名称',
   DESCP_               TEXT COMMENT '会议概要',
   START_               DATETIME NOT NULL COMMENT '开始时间',
   END_                 DATETIME NOT NULL COMMENT '结束时间',
   LOCATION_            VARCHAR(255) NOT NULL COMMENT '会议地点',
   BUDGET_              DECIMAL(18,4) COMMENT '会议预算',
   HOST_UID_            VARCHAR(64) COMMENT '主持人',
   RECORD_UID_          VARCHAR(64) COMMENT '会议记录员',
   STATUS_              VARCHAR(20) NOT NULL COMMENT '会议状态',
   SUMMARY_             TEXT COMMENT '会议纪要',
   BPM_INST_ID_         VARCHAR(64) COMMENT '流程审批实例ID',
   TENANT_ID_           VARCHAR(64) COMMENT '租用机构Id',
   CREATE_TIME_         DATETIME COMMENT '创建时间',
   CREATE_BY_           VARCHAR(64) COMMENT '创建人ID',
   UPDATE_TIME_         DATETIME COMMENT '更新时间',
   UPDATE_BY_           VARCHAR(64) COMMENT '更新人ID',
  PRIMARY KEY (MEET_ID_)
);

ALTER TABLE OA_MEETING COMMENT '会议';

/*==============================================================*/
/* Table: OA_MEET_ATT                                           */
/*==============================================================*/
CREATE TABLE OA_MEET_ATT
(
   ATT_ID_              VARCHAR(64) NOT NULL COMMENT '参与ID',
   MEET_ID_             VARCHAR(64) NOT NULL COMMENT '会议ID',
   USER_ID_             VARCHAR(64) NOT NULL COMMENT '用户ID',
   USER_NAMES_          VARCHAR(20) COMMENT '用户名',
   SUMMARY_             TEXT COMMENT '会议总结',
   TENANT_ID_           VARCHAR(64) COMMENT '租用机构Id',
   CREATE_TIME_         DATETIME COMMENT '创建时间',
   CREATE_BY_           VARCHAR(64) COMMENT '创建人ID',
   UPDATE_TIME_         DATETIME COMMENT '更新时间',
   UPDATE_BY_           VARCHAR(64) COMMENT '更新人ID',
  PRIMARY KEY (ATT_ID_)
);

ALTER TABLE OA_MEET_ATT COMMENT '会议参与人';

ALTER TABLE OA_MEET_ATT ADD CONSTRAINT FK_MMTAT_R_MEET FOREIGN KEY (MEET_ID_)
     REFERENCES OA_MEETING (MEET_ID_) ON DELETE CASCADE ON UPDATE RESTRICT;

 

5.2 在代码生成器中的PackageNames.properties文件中定义包名


OA_MEETING=admin
OA_MEET_ATT=admin

5.3 在generator.properties中定义子系统名及数据库连接

systemPackage=oa

dbUserid=root

dbPasswd=123456

dbSchema=jsaas0505

jdbcDriver=com.mysql.jdbc.DriverdbUrl=jdbc:mysql://localhost:3306/jsaas0505

5.4 在specifiedTables文件定义需要生成实体管理对应的表

OA_MEETING
OA_MEET_ATT

5.5 通过ant执行build.xml中的gen-all任务

6.在线学习演示视频

redxun

此项有1个回复

  1. I have been surfing online greater than 3 hours today, but I never found any interesting article like yours. It?¦s pretty value sufficient for me. In my opinion, if all web owners and bloggers made excellent content as you probably did, the internet might be much more useful than ever before.

回复

你也可以使用 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

2222222222222222222222222222