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类,目前来看两者差别不大。

 

posted @ 2022-03-14 21:54  吕洞玄  阅读(305)  评论(0编辑  收藏  举报