BeetlSQL 默认是用Markdown格式来组织SQL文件,并且使用Beetl模板引擎来生成sql
开发者可以使用任何其他格式和喜欢的引擎来组织SQL,BeetlSQL提供插件机制。比如以xml来组织sql,sql使用freemaker模板语法等,本章只讨论Markdown文件的用法
文件格式
系统默认使用MarkdownClasspathLoader 来加载sql文件。 sql文件扩展名可以是md或者sql,推荐使用md作为扩展名。所有sql文件默认位于classpath的sql目录下。一个sql文件可以对应多个sql片段,如下是一个sql文件格式
selectById===select * from sys_user where id=#{id}update===update sys_user set status=1 whre id=#{id}
使用===作为分隔===上方是sql片段名称,片段名称和mapper接口中的方法名一致,切记名称后不要有空格或者任何不可见的符号=== 下方是要执行的sql语句
markdown文件支持代码块来标识sql片段
update===```sqlupdate sys_user set status=1 whre id=#{id}```sql
```sql 好处是有助于IDE或者其他工具能对sql进行高亮和语法校验
注释
可以在sql片段开始处使用 * 作为此sql片段的注释
update===* 我是一个注释...* 更新用户状态* 设置状态为1```sqlupdate sys_user set status=1 whre id=#{id}```sql
允许在整个sql文件开头加上任意的注释
说明:用户操作文件,参考UserMapperselect===select * from sys_user where id=#{id}update===* 更新用户状态* 设置状态为1```sqlupdate sys_user set status=1 whre id=#{id}```sql
sql片段的复用
use函数
BeetlSQL3提供use函数,可以重用当前sql文件的sql片段,如下
select===select #{use("cols")} where sys_usercols===id,name,department_id
globalUse
如果想引用其他sql文件的片段,则需要使用globalUse
BeetlSQL3提供use函数,可以重用当前sql文件的sql片段,如下
select===select #{globalUse("common.cols")} where sys_user
common.md包含了cols片段
cols===id,name,department_id
sql文件中还可以使用更多语法,参考beetl语法
