mybatis注解 @Select 、@Insert、 @Update、@Delete 查詢使DAO層代碼更簡潔,使用注解時常需要用到轉義符。
常用的一些需要轉義的特殊字符:
< < 小於號 > > 大於號 <= 和<= 表示的是一個意思 & & 和 ' ’ 單引號 " " 雙引號
如果sql加上script標簽,代表該條sql以xml解析的方式解析映射,xml解析方式,< 或者 > 應該都用轉義字符。
驗證 equipmentCode、equipmentProducer、ipv4三個字段非空:
@Select({"<script>", "select * from r_camera where 1=1 and status=1" + "<if test='equipmentCode!=null and equipmentCode!='''>" + "and equipment_code=#{equipmentCode}" + "</if>" + "<if test='equipmentProducer!=null and equipmentProducer!='''>" + "and equipment_producer=#{equipmentProducer}" + "</if>" + "<if test='ipv4!=null and ipv4!='''>" + "and ipv4=#{ipv4}" + "</if>" + "ORDER BY create_time desc" + "</script>"}) List<CameraVO> findAll(CameraVO cameraVO);
@Select({"<script>",
"select * from r_camera where 1=1 and status=1"
+ "<if test='equipmentCode!=null and equipmentCode!='''>"
+ "and equipment_code=#{equipmentCode}"
+ "</if>"
+ "<if test='equipmentProducer!=null and equipmentProducer!='''>"
+ "and equipment_producer=#{equipmentProducer}"
+ "</if>"
+ "<if test='ipv4!=null and ipv4!='''>"
+ "and ipv4=#{ipv4}"
+ "</if>"
+ "ORDER BY create_time desc"
+ "</script>"})
''等同於''