Mybatis-动态SQL
MyBatis 提供了强大的动态 SQL 功能,它可以让你在 XML 映射文件中以标签的形式编写动态 SQL,从而根据不同的条件拼接出合适的 SQL 语句。
以下是一个使用 MyBatis 动态 SQL 的例子:
<mapper namespace="com.example.mapper.UserMapper">
<!-- 查询用户 -->
<select id="findUserByName" parameterType="string" resultType="com.example.model.User">
SELECT * FROM user
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
</where>
</select>
</mapper>
在这个例子中,<select>
标签定义了一个查询操作,<where>
标签内部使用 <if>
标签来判断 name
是否非空,如果非空,则生成对应的 SQL 条件语句 AND name = #{name}
。
在 Java 代码中,你可以这样调用这个映射:
public interface UserMapper {
List<User> findUserByName(@Param("name") String name);
}
当你调用 findUserByName
方法并传入一个非空的 name
参数时,MyBatis 会生成包含该条件的 SQL 语句,只有当 name
为空时,才不会包含这个条件。这样就可以实现根据不同的条件动态生成 SQL 语句的需求。
评论已关闭