• springboot后台服务项目使用mybaties实战案例整理


    1.项目整体结构

    2.相关配置注意

    2.1.工程启动主类配置

    设置扫码mapper目录下的类

     

    2.2.被扫描目录

     mapper目录下的类中定义的接口与resources目录下xml配置关联

     2.3.resources目录

    注意xml中的namespace和id对应刚才Java接口中的目录和接口名字

    2.4.application.yml配置

    mapperLocations配置资源目录下的xml目录

    log-impl启用后,可以在Debug模式下打印mybaties的SQL信息

     2.5.pom.xml配置

              
                org.mybatis.spring.boot  
                mybatis-spring-boot-starter  
                1.3.0  
            
     

           
                mysql
                mysql-connector-java
                5.1.26
           

    3.测试相关

    3.1.接口1(测试效果,数据库入参MAP类型,返回LIST类型)

    UserService接口

    UserService接口实现类,selectByNameAndIdLevel是mapper接口和mapper.xml中id的名字

    PostMAN测试:

     

     3.2.接口2(测试效果,测试数据库事务效果)

    UserService接口

     UserService接口实现类

    在实现方法添加注解,同时在方法中加入两步数据库操作。

    这里注意不能把异常在这一层屏蔽,也就是testTransactional内部不使用try catch,否则异常不能传到controller,就无法把事务回滚。

     mapper.xml中内容


            insert into user
            
              
                account,
              

              
                name,
              

              
                roleid,
              

              
                password,
              

              
                state,
              

             
                levelid,
              

             
                phone,
              

            

            
              
                #{Account,jdbcType=VARCHAR},
              

              
                #{Name,jdbcType=VARCHAR},
              

              
                #{Roleid,jdbcType=INTEGER},
              

              
                #{Password,jdbcType=VARCHAR},
              

              
                #{State,jdbcType=INTEGER},
              

              
                #{Levelid,jdbcType=VARCHAR},
              

              
                #{Phone,jdbcType=VARCHAR},
              

            

       

        
       
            update user
            
              
                account = #{Another,jdbcType=VARCHAR},
              

              
                levelid = #{IdLevel,jdbcType=VARCHAR},
              

            

            where account = #{Account,jdbcType=VARCHAR} and levelid = #{IdLevel,jdbcType=VARCHAR}
       

        PostMAN测试:

    现有数据库情况,account是主键:

    插入一条dazhi8的记录,变更account为dazhi9

     

     成功:

     插入一条dazhi10的记录,变更account为dazhi9

    提示异常

     数据库没有变更

  • 相关阅读:
    解决因对EFCore执行SQL方法不熟练而引起的问题
    Linux网络命令使用简单说明
    一种融合偶然和认知不确定性的贝叶斯深度学习RUL框架
    【蓝桥杯物联网赛项学习日志】Day2 中断矩阵按键
    Spring实战 | Spring AOP核心秘笈之葵花宝典
    蓝桥杯打卡Day12
    HTML+CSS+JS制作结婚邀请函代码(程序员专属情人节表白网站)
    23种设计模式精讲
    OSPF不规则区域
    Docker系列第03部分:列出镜像+搜索镜像+拉取镜像+删除镜像
  • 原文地址:https://blog.csdn.net/liuxinzhi1982/article/details/126867189