企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 执行模板SQL 像MyBatis那样,BeetlSQL 支持模板SQL。 ```java { String sql = "select * from sys_user where department_id=#{id} and name=#{name}"; UserEntity paras = new UserEntity(); paras.setDepartmentId(1); paras.setName("lijz"); List<UserEntity> list = sqlManager.execute(sql,UserEntity.class,paras); } { //或者使用Map作为参数 String sql = "select * from sys_user where department_id=#{myDeptId} and name=#{myName}"; Map paras = new HashMap(); paras.put("myDeptId",1); paras.put("myName","lijz"); List<UserEntity> list = sqlManager.execute(sql,UserEntity.class,paras); } ``` 模板占位符默认是#{} BeetlSQL会输出"?",如果使用${} 则原样输出内容,这个同MyBatis一致。 模板使用Beetl语法,因此支持复杂的SQL构建 ```java //使用Beetl模板语句 String sql = "select * from sys_user where 1=1 \n" + "-- @if(isNotEmpty(myDeptId)){\n" + " and department_id=#{myDeptId}\n" + "-- @}\n" + "and name=#{myName}"; Map paras = new HashMap(); paras.put("myDeptId",1); paras.put("myName","lijz"); List<UserEntity> list = sqlManager.execute(sql,UserEntity.class,paras); ``` 模板默认使用`-- @` 和 `回车`作为定界符,因为`--` 是sql注释符号,这有助于idea或者其他IDE不会报错 > 通常复杂的模板SQL推荐在文件里维护SQL,参考后面例子