Java教程

Mybatis中注解方式使用动态SQL拼接

本文主要是介绍Mybatis中注解方式使用动态SQL拼接,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

问题描述:

在Mybatis中以注解开发的方式使用动态sql拼接语句

Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<if test='queryString != null and queryString.length > 0 '> where code = null or' at line 1
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<if test='queryString != null and queryString.length > 0 '> where code = null or' at line 1
	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)

解决方式:
在@Service注解属性中使用<script></script>包裹语句,表示以脚本方式执行
 @Select("<script>" +
                "select" +
                " * " +
                "from " +
                "t_checkitem " +
                "<if test='queryString != null and queryString.length > 0 '> " +
                "where code = #{queryString} or name = #{queryString}" +
                " </if>" +
            "</script>")
    public List<CheckItem> findPage(@Param("queryString") String queryString);
这篇关于Mybatis中注解方式使用动态SQL拼接的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!