Mybatis学习01

Parameter Maps collection does not contain value for com.liu.domain.User

今天遇到了这个错误,在学习Mybatis实现sql插入的时候出现。

错误原因:
误将ParamType属性写成了ParamMap导致报错。

注:ParamType属性用于指定实体类,在进行插入操作的时候,通常是将实体类中的数据保存到数据库中,当我们指定了实体类,Mybatis会直接将实体类中的对象,插入到sql语句中。

语句:

	    <insert id="save" parameterType="com.liu.domain.User">
        insert into user values (#{id},#{username},#{password})
    </insert>

这里需要指定实体类的属性和数据库字段的对应属性:
使用 #{} 的形式,#{id}表示User类的id属性作为数据库的第一个字段属性值。

  User user=new User();
        user.setId(5);
        user.setUsername("tom");
        user.setPassword("tomp");
        InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

        SqlSession sqlSession = build.openSession();

        sqlSession.insert("userMap.save",user);

        //mybatis默认不提交事务,需要我们手动提交事务

        sqlSession.commit();



        sqlSession.close();

这里我们new一个User代表业务层传递下来的用于封装数据的实体类对象。

注意:这里Mybatis默认是不会将事务提交的,我们需要手动提交事务,否则插入操作不会成功。(当进行查询操作的时候,是不进行事务管理的,所以查询操作时,即使不进行事务的提交操作,也可以查询成功,commit)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值