2023-06-28
|
ZH
//service.query("crm_user", "+id:null"); // ID IS NULL //service.query("crm_user", "+id:"); // ID IS NULL //以上两种情况 经常是通过变量拼接出来如 "+i
2023-06-28
|
ZH
比较常用的分页是在controller中通过condition设置 service.querys("user", condition(true, "其他条件")) 这里的true表示需要分页 service.querys("user", condition(20, "其他条件"))&nbs
2023-06-28
|
ZH
默认情况下查询*也就是查询所有列,但如果表中有大文本会影响性能,可以在表名后加列名来控制查询和返回内容 service.querys("user(id,code)") 生成SQL SELECT id, code FROM user
2023-06-29
|
ZH
通常情况下DataRow经常的方法是put(key, value), get(key) 但是在操作复杂数据结构时经常会遇到多层嵌套的情况 比较啰嗦的编码一般会这样 DataRow r0 = new DataRow(); DataRow r1 = new DataRow(); r0.put("r1",
2023-07-01
|
ZH
由于put是继承自Map所以返回值是Object类型 而set是DataRow中的方法 返回的是DataRow(this) 大数情况下 put set通用 但在需要大量链式操作的场景在需要用到set
2023-07-01
|
ZH
动态、运行时 即运行时才能最终确定 动态的数据源、数据结构、展现形式 如我们需要开发一个数据中台或者一个数据清洗插件,编码阶段我们还不知道数据来源、什么类型的数据库甚至不是数据库、会有什么数据结构对应什么样的实体类, 如果需要前端展示的话,更不会知道不同的终端需要什么各种五花八门的数据组
2023-07-05
|
ZH
可以通过ConfigTable设置全局参数 ConfigTable.IS_LOWER_KEY = true; ConfigTable.IS_UPPER_KEY = false;
2023-07-01
|
ZH
因为有些情况下容易产生歧义,如userId,userID都合理,在前端调用接口时还需要查文档才能确定, 另外不推荐驼峰格式,因为有些数据库会把列名转成大写
2023-07-01
|
ZH
完全没有必要生成controller/service/dao/vo/mapper/xml这些固化的模板,既然能自动生成了,那运行时也可以生成。 主要是因为默认情况下只有业务逻辑复杂时才需要单独的service,其他几个已经用不到了。