MyBatis choose、when和otherwise标签简介说明
迪丽瓦拉
2024-02-23 01:17:24
0

转自:

MyBatis choose、when和otherwise标签简介说明

MyBatis 中动态语句 choose-when-otherwise其功能:

    同Java中的switch-case-default语句相同
但是因为MyBatis没有为 if 提供对应的 else 标签
当我们需达到 if ... else 的效果时,可使用choose when otherwise标签实现

动态语句 choose-when-otherwise 语法如下

SQL语句1SQL语句2SQL语句3SQL语句4
 choose 标签按顺序判断其内部 when 标签中的判断条件是否成立,当有一个成立,则执行相应的 SQL 语句,choose 执行结束;当都不成立,则执行 otherwise 中的 SQL 语句 

例 UserInfoMapper.xml 代码


UserInfoMapper 类中

public List selectUserInfo(UserInfo userInfo);

测试类

public class Test {public static void main(String[] args) throws IOException {// 读取配置文件mybatis-config.xmlInputStream config = Resources.getResourceAsStream("mybatis-config.xml"); // 根据配置文件构建SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(config);// 通过SqlSessionFactory创建SqlSessionSqlSession ss = ssf.openSession();UserInfo userInfo = new UserInfo();userInfo.setname("Java");List userList = ss.selectList("com.java265.mapper.UserInfoMapper.selectUserInfo", userInfo);for (userInfo t : userList) {System.out.println(t);}}
}

输出结果--- DEBUG [main] - ==> Preparing: SELECT id,name,notes,age FROM UserInfo WHERE 1=1 AND name LIKE CONCAT('%',?,'%')
DEBUG [main] - ==> Parameters: Java(String)
DEBUG [main] - <== Total: 1
UserInfo[id=1,name=王二,notes=java爱好者,age=88]

相关内容