万能的map
如果属性过多,可以使用map传递参数。
接口映射的方法不能重名(既不能重载)。
map虽然方便,但是不是正规的,慎用。
int addUser2(Map<String ,Object> map);
<insert id="addUser2" parameterType="map">
insert into mybatis.user(id,name,pwd) values (#{userid},#{userName},#{password});
</insert>
参数传入的类型:
- Map传递参数,直接在sql取出key对应的value即可(#{key}的形式)
- 对象传递参数,直接取对象的属性即可(此时通过new一个对象传参)
- 只有一个基本类型参数的情况下,可以直接在sql中取到。(传入一个普通的数据即可)
这三种方式对应在不同情况下的处理方式。
其中第三种方式最简便,但情况最少。
第二种方式,是需要用户自己new一个新的对象,然后为该对象赋值,再进行传递。要么是通过参数齐全的构造函数,要么是new一个空参,用户自己添加属性。这就带来一个问题,new对象的方式是很吃资源的,尤其是频繁的增删改查时,不停的new对象必然会造成运行时间上的浪费,尤其是当对象的属性值有很多时,自己又只用到其中的很少一些属性,此时再去new一个对象就得不偿失了。
所以此时采取第三种方式,只传递需要的参数。
当然,如果有大量属性需要被用到,此时添加new一个对象。