/*---------------------------模糊查詢需要注意接收結果方式----------------------*/
//當有多個結果時 如果使用selectOne查詢 使用單個變量接收 會報TooManyResultException
/*Category cs=session.selectOne("selectByName","手動設置");
System.out.println(cs.getId()+" "+cs.getName());*/ //報錯!!!!!
//有多個結果 使用selectOne查詢 使用集合接收 報錯
//List<Category> test=session.selectOne("selectByName", "手動設置");
//可能有多個結果 但是本次查詢只有一個結果 成功通過
/* Category c1=session.selectOne("selectByName","開始");
System.out.println(c1.getId()+" "+c1.getName());*/
//可能有多個結果 但是本次插敘只有一個結果 編譯無法通過
/* Category c2=session.selectList("selectByName", "開始");*/
//多個結果需要使用集合 正確寫法
/*List<Category> result=session.selectList("selectByName", "手動設置");
for(Category c:result)
{
System.out.println(c.getId()+" "+c.getName());
}*/
/***---------------------多參數查詢問題------------------*/
Map<String,Object> map=new HashMap<>();
map.put("id", 101);
map.put("name", "手動");
Category cs=session.selectOne("selectByIN", map);
System.out.println(cs.getId()+" "+cs.getName());
session.close();
<!-- 模糊查詢 -->
<select id="selectByName" parameterType="string" resultType="Category">
select * from category where name like concat("%",#{0},"%")
</select>
<select id="selectByIN" parameterType="map" resultType="Category">
select * from category where id = #{id} and name like concat("%",#{name},"%")
</select>
關於映射文件中的paramterType和parameterType
paramterType用於傳入單個參數,這個參數可以是JAVA支持的各種類型,包括基本數據類型和引用類型
paramterMap用於傳入多個參數,一般不支持使用