9. Markdown方式管理

BeetlSQL集中管理SQL语句,SQL 可以按照业务逻辑放到一个文件里,文件名的扩展名是md或者sql。如User对象放到user.md 或者 user.sql里,文件可以按照模块逻辑放到一个目录下。文件格式抛弃了XML格式,采用了Markdown,原因是

  • XML格式过于复杂,书写不方便
  • XML 格式有保留符号,写SQL的时候也不方便,如常用的< 符号 必须转义
  • MD 格式本身就是一个文档格式,也容易通过浏览器阅读和维护
    目前SQL文件格式非常简单,仅仅是sqlId 和sql语句本身,如下
  1. 文件一些说明,放在头部可有可无,如果有说明,可以是任意文字
  2. SQL标示
  3. ===
  4. 以*开头的注释
  5. SQL语句
  6. SQL标示2
  7. ===
  8. SQL语句 2

注意:SQL语句从2.7.10版本后 sql部分也可以包含在markdow 的` 格式

所有SQL文件建议放到一个sql目录,sql目录有多个子目录,表示数据库类型,这是公共SQL语句放到sql目录下,特定数据库的sql语句放到各自自目录下 当程序获取SQL语句得时候,先会根据数据库找特定数据库下的sql语句,如果未找到,会寻找sql下的。如下代码

  1. List<User> list = sqlManager.select("user.select",User.class);

SqlManager 会根据当前使用的数据库,先找sql/mysql/user.md 文件,确认是否有select语句,如果没有,则会寻找sql/user.md

  • 注释是以* 开头,注释语句不作为sql语句
  • 默认的ClasspathLoader采用了这种方法,你可以实现SQLLoader来实现自己的格式和sql存储方式,如数据库存储