Skip to content

SQL模板

完美结合框架,旨在替换重要列名 表名

普通模板- CmdTemplate

普通的SQL模板,推荐使用 Methods.tpl静态方法去创建

函数模板- FunTemplate

后续可继续调用框架的函数,推荐使用 Methods.fTpl静态方法去创建

条件模板- ConditionTemplate

用于 where 中,推荐使用 Methods.cTpl静态方法去创建

SQL模板如何用?

3个模板类:普通模板 CmdTemplate ,函数模板 FunTemplate(后续可继续调用框架的函数),条件模板 ConditionTemplate(可用于 where 中)

java
QueryChain queryChain = QueryChain.of(sysUserMapper);
queryChain.select(SysUser::getRole_id, c -> Methods.tpl("count({0})+{1}", c, "1"));
queryChain.from(SysUser.class);
queryChain.and(GetterFields.of(SysUser::getId, SysUser::getId),cs -> Methods.cTpl("{0}+{1}={2}", cs[0], cs[1], 2));
queryChain.returnType(String.class);
String str = queryChain.get();
java
QueryChain queryChain = QueryChain.of(sysUserMapper);
queryChain.select(SysUser::getRole_id, c -> Methods.fTpl("count({0})",c).plus(1).concat(1,"2",3).length());
queryChain.from(SysUser.class);
queryChain.and(GetterFields.of(SysUser::getId, SysUser::getId),cs -> Methods.cTpl("{0}+{1}={2}", cs[0], cs[1], 2));
queryChain.returnType(String.class);
String str = queryChain.get();

特殊字符说明,例如:单引号

解决模板中含有特殊字符 ,方法一:使用2个单引号表达

解决模板中含有特殊字符 ,方法二:不使用固定的值,例如

Methods.tpl("{0}='abc'", c) 
改成
Methods.tpl("{0}={1}", c,"abc")