类属性映射定义语法

类属性映射主要用于定义生成类的属性名和类的json字段名,表的字段名的对应关系

一行为一个属性的映射定义,多行之间用分号分隔
类属性名 [JSON字段名] (HTTP参数名) ,表字段名 :字段类型 (IDX类型)

类属性名, 生成的代码类中成员属性字段名,主要不要和编程语言的保留字重复
JSON字段名,表示当这个类用json输出时,对应字段出现在的json中的名称
HTTP参数名,默认http请求参数的名称,如果在http接口方法中没有对参数信息做定义,会根据此名称找到对应名称的类属性定义
表字段名,当类和数据表对应时,这个表示对应数据表的字段名
字段名后面可以使用 方括号 设置对应这个属性字段的默认值,数字或字符串
字段类型,定义这个属性字段的类型,目前可以定义如下一些类型

  • int
  • int64
  • bool
  • float
  • idate
  • json中使用UnixTime数值方式表示的日期

  • date
  • str
  • 字符串

  • json
  • 是一个表示json数据的字符串,比如一个表字段中存储的是json数据,在某些应用场景中可以使用这个替代str,处理更方便

  • object
  • 是一个对象

  • list
  • 以列表方式存放的一些数据

对于object和list类型可以进一步用 =>进一步指出是什么类型的对象和什么类型的列表,比如
object=>UserItem
list=>str
注1:object和list类型的只用作son,xml代码生成解析用,不会生成相关的数据字段存取方法
注2:类型定义后面可以用尖括号定义对应的数据库表字段类型和精度的定义,比如 str<varchar:20>
IDX类型,定义这个属性是否是作为索引属性字段的,可以有

  • id
  • key

一个类属性映射的定义范例

UserItem : tb_user {
  [("用户信息")
  ]
  uid       [uid]       (uid)       ,uid         : int  (id);
  username  [username]  (username)  ,username   : str  (key);
  userpwd   [userpwd]   (userpwd)   ,userpwd    : str;
}

可以生成 C++ 类

  class UserItem{
  public:
     int uid;
     std::string username;
     std::string userpwd;
  }

对应json格式的一个数据

 {
    "id":124,
    "username":"testuser",
    "userpwd":"testpwd"
 }

对应数据表结构

create table tb_user (
  uid int(10) AUTO_INCREMENT,
  username varchar(50) default '',
  userpwd varchar(50) default '',
  PRIMARY KEY("uid"),
  KEY "username"("username")
);