🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 使用模板文件 稍微做个复杂项目的人都知道,把复杂SQL放到专门的SQL里维护是个很好的办法。(BeetlSQL3 提供了专门的插件来维护SQL) 默认情况下,sql文件位于classpath的sql目录下,可以在resources目录下新建一个sql目录,并在sql目录下新建一个user.md文件 内容如下 ```markdown select === ​```sql select * from sys_user u where 1=1 -- @ if(isNotEmpty(name)){ and name like #{name} -- @ } order by u.id desc ​``` ``` 如下代码可以访问并执行这个sql语句 ```java SqlId id = SqlId.of("user","select"); Map map = new HashMap(); map.put("name","n"); List<UserEntity> list = sqlManager.select(id,UserEntity.class,map); ``` sqlManager.select将会查询user.md文件下的select片段,并执行,执行结果映射成UserEntity对象。 一个markdown文件可以包含任意多个sql片段,格式如下 ```markdown 文件一些说明,放在头部可有可无,如果有说明,可以是任意文字 SQL标示 === 以*开头的注释,可选 SQL语句 SQL标示2 === SQL语句 2 ``` 使用SqlId指明sql文件位置不方便,更常见的是在mapper方法里调用 ```java @SqlResource("user") /*sql文件在user.md里*/ public interface UserMapper extends BaseMapper<UserEntity> { /** * 调用sql文件user.md#select,方法名即markdown片段名字 * @param name * @return */ List<UserEntity> select(String name); } ``` 这里的select方法没有任何注解,意思是调用sql文件执行,sql文件通过@SqlResource申明,sql片段名字则同方法名,sql中用的参数则同方法参数,调用起来非常方便