-
动态模糊查询
步骤一:先配置mybatis环境,然后再配置好JUnit和log4j, 导入MybatisUtil.java。
步骤二:在com.shxt.model下创建POJO类,以及相应的映射文件。
package com.shxt.model;
public class User {
//注意:数据库里面的字段名,类里面的属性名,input标签name值要一致
private Integer userId;
private String userName;
private String pwd;
private String account;
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", pwd=" + pwd + ", account=" + account + "]";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.shxt.model.User">
<sql id="shxt">
user_id userId,user_name userName,account,password pwd
</sql>
<select id="likes" parameterType="com.shxt.model.User" resultType="com.shxt.model.User">
select <include refid="shxt"></include> from user
where user_name like concat('%',#{userName},'%')
</select>
<!-- 模糊查询的第二种方式($) -->
<select id="likes2" parameterType="com.shxt.model.User" resultType="com.shxt.model.User">
select <include refid="shxt"></include>from user
where user_name like '%${userName}%'
</select>
</mapper>
注:(1)#{parameter} => 'parameter',默认加上了单引号,所以 select * from user where user_name like
'%#{userName}%' => select * from user where user_name like '%'userName'%'是错误的!而concat()函数能
够拼接字符串,concat('%',#{userName},'%') => '%userName%';第二种方法也可以利用el表达式其也可以起
到相同的作用,'%${userName}%' => '%userNa