MyBatis 注解实现动态SQL

在 Mybatis 中,使用注解可以很方便的进行sql操作,但很多动态 SQL 都是由 xml 配置实现的。而随着 SpringBoot的逐渐发展,越来越多的配置由配置文件转成注解的形式。其中包括动态 SQL 。

Mybatis 的注解中,使用太过长的sql语句看起来很不美观。

@Select("SELECT title from book_tbl where id = #{id}") 

如果想要在 mapper 中进行非必要关键字的查询时就需要使用动态 SQL,与 xml 配置不同的是,@Select注解中 SQL 语句必须以 <script> 标签包裹。

@Select("<script>"+
			"SELECT id " +
            "from book_tbl" +
            "<where>" +
            "<if test 'company_id != null'>" +
            "and company_id = #{company_id}" +
            "</if>" +
            "<if test 'title != null'>" +
            "and title like CONCAT('%',#{title},'%')" +
            "</if>" +
            "</where>" +
            "ORDER BY create_time desc,rank desc" +
        "</script>") 

感谢大家的耐心阅读,如有建议请私信或评论留言

posted @ 2022-11-16 18:05  杨业壮  阅读(1053)  评论(0编辑  收藏  举报