##文件命名
>XXMapper.java
对应xml文件命名为XXMapper.xml
##文件
文件应与数据库中表一一对应,有特殊要求的可以一个表对应多个文件,但严禁一个业务一个文件
##参数
为方便aop控数据级权限,dao层参数统一使用Map
``` java
public List selectByGoodsEvaluateId(Map map);
```
##注释
1. java文件中每个接口函数都要有对应的函数注释,用来标明函数的作用
``` java
public interface OrdersMapper extends Mapper {
/**
* @Description 方订单列表个各状态订单数量
* @author liuy-8
* @date 2016年3月21日 上午10:00:53
* @param params
* @return
*/
@LimitesParent(limites = {
@Limit(condition="query.type=1", equals = "create_user_id=userId", bossRoles = { Constants.ROLE_BUYER_MANAGER, Constants.ROLE_GROUP }),
})
public List getOrdersCountByStatus(Map map);
}
```
2. xml文件中每个、、都要用``````来标明其作用
``` xml
SELECT
count(*)
FROM
orders
AND buyer_id = #{query.buyerId}
AND supplier_id = #{query.supplierId}
AND (
code like CONCAT("%", #{query.searchValue}, "%")
OR
contact_person like CONCAT("%", #{query.searchValue}, "%")
)
= #{query.startTime}]]>
AND type = #{query.orderTrailType}
```
##xml内容规范
####基本规范
1.
标签 必须对应select的SQL
标签 必须对应insert的SQL
标签 必须对应update的SQL
标签 必须对应delete的SQL
2.
取值严禁使用${key},会造成sql注入
必须使用#{key}来取值
3. 大于号,小于号要用来转义
####标签
1.判断字符串是否为空,要使用
``` xml
...
```
2.判断数组是否为空,要使用
``` xml
...
```
3.判断数字要使用
``` xml
...
```
####WHERE语句
where语句使用标签
``` xml
= #{query.startTime} ]]>
AND type = #{query.orderTrailType}
```
####IN语句使用标签
``` xml
SELECT * FROM orders
id IN
#{id}
```