MyBatis中map的神奇用法
MyBatis中的map是我认为非常神奇的一部分。尤其是它的用法,比如可以代替实体类产生的对象直接插入数据到数据库,避免了不知道数据库中各个部分的名称的问题。
依旧使用我们以前的模板。
在mapper中使用如下语句,定义一个方法名,添加信息到后台表单。
int addUser2(Map<String,Object> map);
不需要管以前定义的实体类和util文件,我们直接去mapper.xml中添加代码。
<insert id="addUser2" parameterType="map">
insert into jdbc1.users(name,pwd,number,danweixinxi) values (#{username},#{psaaada},#{nnn},#{danwi});
</insert>
可以看出,后面的value我都是随便写的,假设我们不知道后台的数据表中都有什么,我们可以随意定义。
之后就可以去test中尝试使用这个方法了。
@Test public void test6(){ SqlSession sqlSession; sqlSession = MyBatisUtils.getSqlSession(); userDao mapper=sqlSession.getMapper(userDao.class); Map<String,Object> map=new HashMap<String,Object>(); map.put("username","shabby"); map.put("psaaada","kezehua"); map.put("nnn","cpdd"); map.put("danwi","gouwo"); mapper.addUser2(map); sqlSession.commit(); sqlSession.close(); }
这个方法的优点是跳过使用user类,目前来看两者差别不大。