转自:
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=王二]