🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 参数名称 对于模板SQL来说,参数名称非常重要,如果是JDK8,且编译选项(或者maven配置)里启用了parameters参数,则BeetlSQL3能自动识别参数名。如果没有启用parameters,则需要使用@Param注解说明参数名称 ```java @Template("select * from sys_user where id = #{id}") UserEntity getUserById(@Param("id") Integer userId); ``` 如果方法只有一个POJO类,那么该POJO的所有属性作为模板的参数 ```java @Template("select * from sys_user where id = #{id}") UserEntity getUserById(User user); ``` 或者 ```java @Template("select * from sys_user where id = #{id}") UserEntity getUserById(@Root User user); ``` 效果是一样的 @Root 修饰的POJO对象的属性,都可以直接在模板里访问 ```java @Template("select * from sys_user where id = #{id} and status=#{myStatus}") UserEntity getUserById(Integer myStatus,@Root User user); ``` > 当参数识别为root,那么调用sqlManger时候,传入的是`_root` 为key,pojo为value的Map 注意,在maven打包的时候,同样需要启用paramters (maven不同版本,此配置方式略有不同,一般不需要配置parameter) ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- define the project compile level --> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <compilerArgs> <arg>-parameters</arg> </compilerArgs> </configuration> </plugin> </plugins> </build> ```