MiniDao SQL分离写法 ###第一步: 定义接口 EmployeeDao.java (不需要实现) ``` @Repository public interface EmployeeDao { @Sql("select * from employee where id = :id") Employee get(@Param("id") String id); int update(@Param("employee") Employee employee); void insert(@Param("employee") Employee employee); @ResultType(Employee.class) public MiniDaoPage<Employee> getAll(@Param("employee") Employee employee,@Param("page") int page,@Param("rows") int rows); @Sql("delete from employee where id = :id") public void delete(@Param("id") String id); } ``` minidao 代理机制会自动实现接口,将实现bean注入到spring容器里面,这个比mybatis要简易很多。 ###第二步:创建接口方法对应SQL文件 SQL文件目录规则,与minidao接口保持相同目录(或者放在对应resource目录下) SQL文件命名规则:{Dao接口名}_{方法名}.sql ![输入图片说明](https://static.oschina.net/uploads/img/201804/23100953_wpAU.png "在这里输入图片标题") ###第三步:编写SQL SQL文件采用模板语言Freemarker作为解析引擎,可以灵活运用,甚至可以写脚本语言,宏处理等; **示例:** ``` SELECT * FROM employee where 1=1 <#if employee.age ?exists> and age = '${employee.age}' </#if> <#if employee.name ?exists> and name = :employee.name </#if> <#if employee.empno ?exists> and empno = :employee.empno </#if> ```