在mybatis中将map作为参数
在接口中声明方法并把参数设为map集合
package com.dao;
import com.pojo.user;
import org.apache.ibatis.annotations.param;
import java.util.list;
import java.util.map;
public interface usermapper {
int adduser11(map<string,object> map);
}在实现类中给map赋值
package com.dao;
import com.pojo.user;
import com.uitl.basedaoutil;
import org.apache.ibatis.session.sqlsession;
import org.junit.test;
import java.util.hashmap;
import java.util.list;
import java.util.map;
public class usermappertest {
@test
public void adduser11(){
sqlsession sqlsession = basedaoutil.opensqlsession();
usermapper mapper = sqlsession.getmapper(usermapper.class);
map<string,object> map = new hashmap<>();
map.put("id",9);
map.put("username","阿峰");
map.put("pwd","1231321");
int i = mapper.adduser11(map);
if (i ==0 ){
system.out.println("失败");
}else {
system.out.println("添加成功");
}
sqlsession.close();
}
}
三,在映射的 sql 语句文件中编写相应的sql语句
<?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="com.dao.usermapper">
<insert id="adduser11" parametertype="map">
insert into user (id,username,pad ) values (#{id},#{username},#{pwd});
</insert>
</mapper>其中 parametertype 应为map 因为是mybatis自动生成好的别名
mybatis遇到多个参数时,使用map
我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用map!
//万能的map
int adduser2(map<string,object> map);
mapper.xml
<!--对象中的属性,可以直接取出来 传递map的key-->
<insert id="adduser" parametertype="map">
insert into mybatis.user (id, pwd) values (#{userid},#{password});
</insert>
test
@test
public void adduser2(){
sqlsession sqlsession = mybatisutils.getsqlsession();
usermapper mapper = sqlsession.getmapper(usermapper.class);
map<string, object> map = new hashmap<string, object>();
map.put("userid",5);
map.put("password","2222333");
mapper.adduser2(map);
sqlsession.close();
}
注意:
- map传递参数,直接在sql中取出key即可! 【parametertype=“map”】
- 对象传递参数,直接在sql中取对象的属性即可!【parametertype=“object”】
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论