• Mybatis框架update节点元素的使用


    今天我们学习一下mybatis框架中的update节点元素的使用

    需求:修改用户表中的一条数据记录,修改编号为21的用户的密码

    UserMapper.xml

     UserMapper.java

     编写测试方法:

     1 @Test
     2     public void testUpdate() {
     3         SqlSession sqlSession = null;
     4         User user=new User();
     5         user.setUserPassword("000000");
     6         user.setId(21);
     7     
     8         int count=0;//返回受影响的行数
     9         try {
    10             sqlSession = MyBatisUtil.createSqlSession();
    11             //调用mapper接口的方式实现
    12              count= sqlSession.getMapper(UserMapper.class).updateUser(user);
    13             // int i=1/0;//模拟异常  后台日志打印出rolling back表示没有插入成功,事务进行了回滚
    14             mlogger.info("返回受影响的行数:" + count);
    15             sqlSession.commit();//后台日志打印出rolling back表示没有提交事务,事务进行了回滚,所以必须得提交事务才行
    16         } catch (Exception e) {
    17             // TODO: handle exception
    18         } finally {
    19             // 最后一定要注意:关闭会话
    20             MyBatisUtil.closeSqlSession(sqlSession);
    21 
    22         }
    23         
    24 
    25     }

    运行结果:

    [DEBUG] 2019-11-05 21:03:24,121 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Opening JDBC Connection
    [DEBUG] 2019-11-05 21:03:24,695 org.apache.ibatis.datasource.pooled.PooledDataSource - Created connection 1720854532.
    [DEBUG] 2019-11-05 21:03:24,701 cn.smbms.dao.user.UserMapper.updateUser - ooo Using Connection [com.mysql.jdbc.JDBC4Connection@66922804]
    [DEBUG] 2019-11-05 21:03:24,703 cn.smbms.dao.user.UserMapper.updateUser - ==>  Preparing: update smbms_user set userPassword =? where id=? 
    [DEBUG] 2019-11-05 21:03:25,084 cn.smbms.dao.user.UserMapper.updateUser - ==> Parameters: 000000(String), 21(Integer)
    [INFO] 2019-11-05 21:03:25,087 cn.smbms.dao.test.UserMapperTest - 返回受影响的行数:1
    [DEBUG] 2019-11-05 21:03:25,088 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Committing JDBC Connection [com.mysql.jdbc.JDBC4Connection@66922804]
    [DEBUG] 2019-11-05 21:03:25,093 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@66922804]
    [DEBUG] 2019-11-05 21:03:25,095 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@66922804]
    [DEBUG] 2019-11-05 21:03:25,097 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 1720854532 to pool.

    数据库查询结果:

     

     

  • 相关阅读:
    分布式事务与Seate框架(3)——Seata的AT模式实现原理
    MySQL是如何实现事务隔离?
    分布式事务与Seate框架(2)——Seata实践
    分布式事务与Seate框架(1)——分布式事务理论
    docker的安装以及使用命令
    Sentinel高级
    Sentinel熔断降级
    typora+PicGo+gitee搭建免费的的床
    Jmeter + Grafana + InfluxDB 性能测试监控
    Jmeter-逻辑控制器ForEach Controller的实例运用
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/11801639.html
Copyright © 2020-2023  润新知