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

第三步:编写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>