1.StudentDao
package cn.itcast.app04;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.session.SqlSession;
import cn.itcast.util.MybatisUtil;
public class StudentDao {
//有條件的查詢
public List<Student> findAll(Integer id,String name,Double sal) throws Exception{
SqlSession sqlSession=null;
try{
sqlSession=MybatisUtil.getSqlSession();
Map<String,Object> map=new LinkedHashMap<String,Object>();
map.put("pid", id);
map.put("pname", name);
map.put("psal",sal);
return sqlSession.selectList(Student.class.getName()+".findAll", map);
}catch(Exception e){
e.printStackTrace();
throw e;
}finally{
MybatisUtil.closeSqlSession();
}
}
//測試
public static void main(String[] args) throws Exception{
StudentDao dao=new StudentDao();
List<Student> studentList=dao.findAll(null,null,null);
for(Student s:studentList){
System.out.println(s.getId()+":"+s.getName()+":"+s.getSal());
}
}
}
2.映射檔案
<?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="cn.itcast.app04.Student">
<resultMap type="cn.itcast.app04.Student" id="studentMap">
<id property="id" column="id"></id>
<result property="name" column="name"/>
<result property="sal" column="sal"/>
</resultMap>
<select id="findAll" parameterType="map" resultType="cn.itcast.app04.Student">
select id,name,sal from students
<where>
<if test="pid!=null">
and id=#{pid}
</if>
<if test="pname!=null">
and name=#{pname}
</if>
<if test="psal!=null">
and sal=#{psal}
</if>
</where>
</select>
</mapper>