MyBatis學習(三):多條件查詢

	/*---------------------------模糊查詢需要注意接收結果方式----------------------*/
	//當有多個結果時  如果使用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用於傳入多個參數,一般不支持使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章