统一约定
# 操作接口约定
提示
本框架(插件)的数据库操作唯一接口——top.zuoyu.mybatis.service.MapperRepository
。
- 以
ByExample
为结尾的方法
此类是根据JsonObject
类型的参数example
中键值对,对符合要求的数据进行操作,例如:
// 构建example,这里指字段"birthday"为"2009/12/12 12:12:12"
JsonObject example = new JsonObject().put("birthday", "2009/12/12 12:12:12");
// 查询所有字段"birthday"为"2009/12/12 12:12:12"的学生数据
List<JsonObject> studentList = studentRepository.selectListByExample(example);
这里的selectListByExample
方法就是根据参数example
中键值对查找符合要求的数据。
同理, countByExample
方法就是获取符合参数example
中键值对的数据总量...
- 以
By
为结尾的方法
此类是根据String
类型的参数suffixSql
对方法追加参数中SQL语句的内容,例如:
// 查找"is_delete"字段为0的数据,并以年龄进行排序
List<JsonObject> teachers = teacherRepository.selectListBy("WHERE is_delete = 0 ORDER BY age");
// 将"birthday"字段大于"1990/1/1 00:00:00"的数据,"salary"字段改为20000。 (也就是出生日期在1990年之前的老师,工资改为2W)
JsonObject example = new JsonObject().put("salary", 20000);
int count = teacherRepository.updateBy(example, "WHERE birthday < '1990/1/1 00:00:00'");
这里的selectListBy
方法就是查找出符合参数中SQL语句要求的内容,updateBy
方法就是将符合参数中SQL语句要求的数据修改为example
定义的数值。
同理,countBy
方法就是获取符合参数中SQL语句要求的数据总量...
insert
、insertBatch
方法
当数据库为MySQL时,如果数据表主键自增,则无需定义主键数值;若主键为非自增,则需定义主键数值。
当数据库为Oracle时,如果在配置中定义了数据表的主键生成器,则无需定义主键数值;反之,则需定义主键数值。
MapperRepository
提供了丰富的方法,以方便对数据库的CURD操作,更多关于MapperRepository
的使用说明请移步MapperRepository说明、MapperRepository的API文档 (opens new window)。
# 操作对象约定
数据库接口的操作对象主要为
JsonObject
类型和JsonArray
类型。
- 其中
top.zuoyu.mybatis.json.JsonObject
为键值对容器,以键值的形式装载,数据结构为:
{
'field1' : 'value1',
'field2' : 'value2',
'field3' : 'value3',
...
}
键的类型为java.lang.String
类型,值的类型可以为任何类型。
JsonObject
提供了丰富的方法,以方便操作键值对和类型转换,更多关于JsonObject
的使用说明请移步JsonObject说明、JsonObject的API文档 (opens new window)。
- 其中
top.zuoyu.mybatis.json.JsonArray
为数组容器,以多个单位的形式装载,数据结构为:
[
object1,
object2,
object3,
...
]
每个单位可以为任何类型,且各单位类型允许与其他单位类型不同。
JsonArray
提供了丰富的方法,以方便操作键值对和类型转换,更多关于JsonArray
的使用说明请移步JsonArray说明、JsonArray的API文档 (opens new window)。
具体方法可参考API文档 (opens new window)。