1.UserMapper接口
package dao;
import domain.User;
import java.io.IOException;
import java.util.List;
public interface UserMapper {
List<User> findAllByCondition(User user) throws IOException;
List<User> findByIds(List<Integer> list);
}
2.UserMapper映射文件
动态sql语句主要通过 where if foreach等标签实现。
<?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="dao.UserMapper">
<sql id="selectUser">select * from sys_user</sql>
<!-- 查询操作-->
<select id="findAllByCondition" resultType="domain.User" parameterType="domain.User">
<include refid="selectUser"></include>
<where>
<if test="id!=0">
and id = #{id}
</if>
<if test="username!=null">
and username = #{username}
</if>
<if test="password!=null">
and password = #{password}
</if>
</where>
</select>
<!-- 通过ids查询-->
<select id="findByIds" parameterType="list" resultType="domain.User">
<include refid="selectUser"></include>
<where>
<foreach collection="list" open="id in(" close=")" item="id" separator=",">
#{id}
</foreach>
</where>
</select>
</mapper>
3.测试
@Test
public void daoByProxy() throws IOException {
//获得核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
//获得sqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得session会话对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//获得UserMapper接口的实现类
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//User user = new User();
//user.setId(1);
//user.setUsername("zhangsan");
//user.setPassword("123");
// List<User> list = mapper.findAllByCondition(user);
// System.out.println(list);
List<Integer> list = new ArrayList<Integer>();
list.add(1);
List<User> list1 = mapper.findByIds(list);
System.out.println(list1);
}