一、动态SQL指根据不同的查询条件,生成不同的SQL语句
二、mapper映射文件(别忘了引入到mybatis-config.xml中)
<?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.liujie.model.UserMapper">
<select
id="getUserByCondition"
parameterType="Map"
resultType="User">
select * from user
<where>
<if
test="name != null">
name like
CONCAT('%', #{name}, '%')
</if>
</where>
</select>
</mapper>
<?xml
version="1.0"
encoding="UTF-8"
?>
<!DOCTYPE
configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties
resource="db.properties"></properties>
<typeAliases>
<package
name="com.liujie.model"/>
</typeAliases>
<environments
default="development">
<environment
id="development">
<transactionManager
type="JDBC"
/>
<dataSource
type="POOLED">
<property
name="driver"
value="${driver}"
/>
<property
name="url"
value="${url}"
/>
<property
name="username"
value="${username}"
/>
<property
name="password"
value="${password}"
/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper
resource="com/liujie/model/user.mapper.xml"/>
</mappers>
</configuration>
1
三、测试
public
class
UserDao {
public
List<User> getAll(Map<String, Object>
map)
throws IOException {
SqlSession
session
= MyBatisUtil.getSqlSession();
List<User>
list
= session.selectList("com.liujie.model.UserMapper.getUserByCondition",
map);
session.close();
return
list;
}
}
public
class
Test {
public
static
void main(String[]
args)
throws
IOException {
UserDao
userDao
= new
UserDao();
Map<String, Object>
map
=new
HashMap<String, Object>();
map.put("name",
"李亚东");
List<User>
list
= userDao.getAll(map);
for(User
user
: list) {
System.out.println(user);
}
}
}