zoukankan      html  css  js  c++  java
  • Maybatis的一些总结(三:增删改查)

    回顾一个点

    之前不懂这句:

    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    

    现在理解了一点点,相当于实现了userMapper的接口。因为所有的UserMapper.xml都要在Mybatis-config.xml中注册,继续看源码过程中看到其中有部分的参数包括了T.Class和sqlsession,而sqlsession是读取Mybatis-config.xml创建的。所以不是特别难理解是怎么实现这个接口了。

    UserMapper.class是通过类名.Class实现反射

    具体的内容等课继续看应该会有涉及到。

    增删改查的接口和xml

    • 每个xml都需要绑定接口名称为id
    • 如果参数或结果类型不为int或者void什么的,需要填resultType和parameterType,类型需要写完整包名
    • sql语句中的参数写成#{id}
    • 增删改需要提交事务,sqlsession.commit();
        <!--对应接口:User getUserById(int id);-->
        <select id="getUserById" resultType="com.ou.pojo.User">
            SELECT * FROM mybatis.user WHERE id=#{id}
        </select>
        <!--对应接口:int insertUser(User user);-->
        <insert id="insertUser" parameterType="com.ou.pojo.User">
            INSERT INTO mybatis.user (id, username, pwd) VALUE (#{id},#{username},#{pwd})
        </insert>
        <!--对应接口:int updateUser(User user);-->
        <update id="updateUser" parameterType="com.ou.pojo.User">
            UPDATE mybatis.user SET username=#{username},pwd=#{pwd} WHERE id=#{id}
        </update>

    通过Map传参:

    因为User这个pojo可能有100个字段,假如修改时只想修改10个,如果参数类型还是User,则参数还得new User(p1 p2.....)

        <!--对应接口:int updateUserByMap(Map<String,Object> map);-->
        <update id="updateUserByMap" parameterType="Map">
            UPDATE mybatis.user SET pwd=#{pwd} WHERE id=#{id}
        </update>

    参数类型为Map,sql语句和原来一样就行

        @Test
        public void testUpdateByMap()
        {
            SqlSession sqlSession = MybatisUtilis.getsqlsession();
    
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            Map<String,Object> map=new HashMap<String, Object>();
            map.put("id",4);
            map.put("pwd","4321");
            mapper.updateUserByMap(map);
            sqlSession.commit();
    
            sqlSession.close();
        }

    使用时略有不同,new一个Map<String,Object>对象,然后再put key-value就行

  • 相关阅读:
    王爽汇编实验(八)
    王爽汇编实验(七)
    王爽汇编实验(六)
    王爽汇编实验(五)
    计算机操作系统锁机制.
    网页搜索框里显示字段鼠标点击后就隐藏的方法
    织梦删掉会员空间,保留开放会员(禁止注册)的方法
    织梦DEDECMS后台验证码错误不能正常验证的3种可能原因和解决
    织梦DEDECMS后台验证码错误不能正常验证的3种可能原因和解决
    织梦怎么对某些字段信息隐藏,登录后可查看
  • 原文地址:https://www.cnblogs.com/take-it-easy/p/12718810.html
Copyright © 2011-2022 走看看