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>