MyBatis 如何使用where标签呢?

Java-框架王 MyBatis 发布时间:2021-07-20 17:09:22 阅读数:10457 1

where标签的功能

where标签的功能:用于简化SQL语句中的条件判断,可以自动处理 AND/OR 条件,
语法如下所示:
<where>
    <if test="判断条件">
        AND/OR ...
    </if>
</where>
if 语句中判断条件为 true 时, where 关键字才会加入到组装的 SQL 里面
否则就不加入
where 会检索语句
它会将 where 后的第一个 SQL 条件语句的 AND 或者 OR 关键词去掉
例 UserInfoMapper.xml

<select id="selectUserInfo" resulttype="com.java265.po.UserInfo">
    select id,name,notes from UserInfo
    
        
            AND name like #{name}
        
        
            AND notes like #{notes}
        
    
</select>

UserInfoMapper 类

public list<UserInfo> selectUserInfo(UserInfo userInfo);

测试类

public class Test {
    public static void main(String[] args) throws IOException {
        // 读取配置文件mybatis-config.xml
        InputStream config = Resources.getResourceAsStream("mybatis-config.xml"); // 根据配置文件构建
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);
        // 通过SqlSessionFactory创建SqlSession
        SqlSession ss = ssf.openSession();
        UserInfo userInfo = new UserInfo();
        userInfo.setname("Java");
        List<UserInfo> userList = ss.selectList("com.java265.mapper.UserInfoMapper.selectUserInfo", userInfo);
        for (UserInfo t : userList) {
            System.out.println(t);
        }
    }
}
输出结果
DEBUG [main] - ==> Preparing: SELECT id,name,notes FROM UserInfo WHERE name LIKE CONCAT('%',?,'%')
DEBUG [main] - ==> Parameters: Java(String)
DEBUG [main] - <== Total: 1
UserInfo[id=1,name=王二]
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/MyBatis/202107/549.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者