Mybatis_08_使用Map给Mybatis传值
使用Map给Mybatis传值
-
什么时候使用parameterType="java.util.Map" 进行传值?
-
javabean不够用的情况下,我们可以使用map传值。
-
一般情况下都是一个表对应一个javabean,两张表两个javabean。
-
但是有这样一种情况,一些值是A表中的,另一些值是B表中的,在需要跨表的时候没有合适的javabean
-
-
测试代码
例子1:使用Map集合查询数据
import junit.framework.TestCase;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class test{
@Test
public void test (){
SqlSession sqlSession=null;
try{
//获取SqlSession对象
sqlSession=MaybatisTest01.getSqlSession();
//执行sql 找出research部门的岗位是manager的员工信息
String dname="research";
String job="manager";
Map<String,String> map=new HashMap<String, String>();
map.put("dname",dname);
map.put("job",job);
List<EmpInfo> empInfoList=sqlSession.selectList("getByDnameAndJob",map);
//输出信息
Iterator iterator=empInfoList.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
//提交事务
sqlSession.commit();
}catch(Exception e){
if(sqlSession!=null){
sqlSession.rollback();
}
}finally {
if(sqlSession!=null){
sqlSession.close();
}
}
}
}
SqlMapping .xml
<mapper namespace="test">
<select id="getByDnameAndJob" parameterType="map" resultType="EmpInfo">
select
e.*
from
emp e
join
dept d
on
e.deptno=d.deptno
where
d.dname=#{dname}
and
e.job=#{job}
</select>
</mapper>
例子二 :使用Map集合插入数据
public class test {
@Test
public void test() {
SqlSession sqlSession = null;
try {
sqlSession =MybatisTest.getSqlSession();
Map<String, String> userMap = new HashMap<String, String>();
userMap.put("userName", "王世杰");
userMap.put("userEmail", "29547822@qq.com");
userMap.put("userPwd", "123456");
int count = sqlSession.insert("save", userMap);
System.out.println(count);
sqlSession.commit();
}catch (Exception e) {
if (sqlSession != null) {
sqlSession.rollback();
}
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
}
* SqlMappering
- parameterType="java.util.Map"
- parameterType="java.util.HashMap"
- parameterType="Map"
- parameterType="map"
<mapper namespace="test">
<insert id="save" parameterType="java.util.Map">
insert into t_userInfo
(username,email,userpwd)
values
(#{userName},#{userEmail},#{userPwd});
</insert>
</mapper>