动态sql结构
import org.apache.ibatis.annotations.Select;
//查询
@Select({"<script>",
SQL字符串,
"</script>"
})
List<Article> getArticlePaged(ReqPara reqPara);
import org.apache.ibatis.annotations.Update;
//修改、删除(逻辑删也是编辑)
@Update({"<script>",
SQL字符串,
"</script>"
})
int editArticle(Article article);
SQL字符串内可以拼接动态sql
举例
String QUERY_SQL = "select " +
" t.id AS id , " +
" t.title AS title , " +
" t.date AS date " ;
String TABLE_JOIN_SQL = " from article t ";
String QUERY_WHERE_SQL = " where 1=1 " +
"<if test='title!=null and title!=\"\"'>" +
" AND t.title= #{title} " +
"</if>" +
"<if test='id!=null and id!=\"\" '>" +
" AND t.id = #{id} " +
"</if>" +
"<if test='dateStart!=null and dateStart!=\"\" '>" +
" AND t.date >= STR_TO_DATE(#{dateStart}, '%Y-%m-%d %H:%i:%s') " +
"</if>" +
"<if test='dateEnd!=null and dateEnd!=\"\" '>" +
" AND t.date <= STR_TO_DATE(#{dateEnd}, '%Y-%m-%d %H:%i:%s') " +
"</if>" ;
String ORDER_BY_SQL = " order by t.date DESC ";
String LIMIT_SQL = " LIMIT #{pageBeginIndex},#{pageSize} ";
@Select({"<script>",
QUERY_SQL,
TABLE_JOIN_SQL,
QUERY_WHERE_SQL,
ORDER_BY_SQL,
LIMIT_SQL,
"</script>"
})
List<Article> getArticlePaged(ReqPara reqPara);

本文探讨了如何将MyBatis中的动态SQL语句移到Java文件中,以此来提高代码的可读性和维护性。通过实例展示了动态SQL的结构和实现方式。
171

被折叠的 条评论
为什么被折叠?



