mybatis注解上使用动态SQL

1、 在注解上不能直接使用动态的SQL,需要在其前后加入 <script>与</script>

@Select("<script>select id, username , birth_day from user "
			+ "<where>"
				+ "<if test=\"username != null\">username = #{username}</if>"
			+ "</where>"
	+ "</script>")
List<User> getByQuery(UserQuery userQuery);

2、使用SqlProvider方式

@SelectProvider(type=UserQueryMapperProvider.class, method="getByQuery")
List<User> getByQuery(UserQuery userQuery);

class UserQueryMapperProvider{
	public String getByQuery(UserQuery userQuery){
		StringBuilder builder = new StringBuilder();
		builder.append("select id, username , birth_day from user ");
		if (userQuery != null && userQuery.getUsername() != null) {
			builder.append("where username = #{username}");
		}
		return builder.toString();
	}
}
发布了53 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/blog_zxb/article/details/97269274
今日推荐