通用代码全自动生成工具(3)—— 数据源(数据模型)

原创
2019/09/02 18:08
阅读数 356

1、数据源(数据模型)

代码自动生成工具的数据源(数据模型)不应该采用数据库表,因为从数据库获取数据模型时,会丢失许多有用的信息。

数据源(数据模型)应该采用一种自定义的数据格式,可用xml格式来描述数据模型。

2、自定义数据模型

以下是一种自定义数据模型格式:可以描述各种信息,包括是否允许为空。

代码自动生成工具可以根据数据类型自动选择界面控件,如:Date控件、DateTime控件、DropList、Radio、Check控件等等。

以下描述的是:学校、学生、课程 三个对象/库表 之间的关系。

<table objctName="School"  tableName="tab_School"  tbComment="学校" >
    <prop name="id"  type="Long"  colName="id" dbType=""  colComment="ID" param="" />
    <prop name="name"  type="String"  colName="name" dbType="varchar(64)"  colComment="学校名称"  param="" />
    <prop name="address" type="String"  colName="address" dbType="varchar(128)" colComment="学校地址"  param="null" />
    <prop name="amount"  type="Integer" colName="amount" dbType=""  colComment="学生总数"  param="null" />
    <prop name="area"  type="Double"  colName="area" dbType=""  colComment="占地面积"  param="null" />
    <prop name="createddate"  type="Date"  colName="createddate" dbType="Date"  colComment="建校日期"  param="null" />
    <prop name="province"  type="Sysdict" colName="province_id" dbType=""  colComment="所属省市"  param="1100" />
    <prop name="summary" type="String"  colName="summary" dbType="varchar(500)" colComment="简介"  param="null" />
    <prop name="createdtime"  type="Date"  colName="createdtime" dbType="Timestamp"  colComment="创建时间"  param="" />
    <prop name="memo"  type="String"  colName="memo" dbType="varchar(64)"  colComment="备注"  param="null" />
</table>

<table objctName="Course"  tableName="tab_Course"  tbComment="课程" >
    <prop name="id"  type="Long"  colName="id" dbType=""  colComment="ID" param="" />
    <prop name="name"  type="String"  colName="name" dbType="varchar(64)"  colComment="课程名称"  param="" />
    <prop name="hour"  type="Integer" colName="hour" dbType=""  colComment="学时数"  param="" />
    <prop name="credit"  type="Integer" colName="credit" dbType=""  colComment="学分"  param="" />
    <prop name="summary" type="String"  colName="summary" dbType="varchar(500)" colComment="课程简介"  param="null" />
    <prop name="createdtime"  type="Date"  colName="createdtime" dbType="Timestamp"  colComment="创建时间"  param="" />
    <prop name="memo"  type="String"  colName="memo" dbType="varchar(64)"  colComment="备注"  param="null" />
</table>

<table objctName="Student" tableName="tab_Student" tbComment="学生" >
    <prop name="id"  type="Long"  colName="id" dbType=""  colComment="ID" param="" />
    <prop name="name"  type="String"  colName="name" dbType="varchar(64)"  colComment="姓名"  param="" />
    <prop name="gender"  type="Sysdict" colName="gender_id" dbType=""  colComment="性别"  param="1200" />
    <prop name="birthday"  type="Date"  colName="birthday"  dbType="Date"  colComment="出生年月"  param="null" />
    <prop name="registertime" type="Date"  colName="registertime"  dbType="DateTime" colComment="注册时间"  param="null" />
    <prop name="province"  type="Sysdict" colName="province_id" dbType=""  colComment="籍贯"  param="1100" />
    <prop name="nation"  type="Sysdict" colName="nation_id" dbType=""  colComment="民族"  param="1300" />
    <prop name="school"  type="ForeignKey"  colName="school_id" dbType=""  colComment="所在学校"  param="School" />
    <prop name="courses" type="ManyToMany"  colName="" dbType=""  colComment="所选课程"  param="Course" />
    <prop name="createdtime"  type="Date"  colName="createdtime" dbType="Timestamp"  colComment="创建时间"  param="" />
    <prop name="memo"  type="String"  colName="memo" dbType="varchar(64)"  colComment="备注"  param="null" />
</table>

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部