栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

SpringBoot之整合Mybatis

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot之整合Mybatis

前言

上一篇博客中,我们完成了springboot 使用spring data jpa但是在我们实际工作中,可能大部分的同学还是使用mybatis比较多,所以今天我们在这里实现一下springboot使用mybatis实现对user表的增删改查并且进行单元测试

实现

1、添加mybaits依赖

  
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
   

并且在yml中配置一下数据源跟mybatis的配置。

server:
  port: 8989mybatis:
  mapper-locations: classpath:/mybaits/mapper
    private String username;    
    private String password;    
    private Integer age;    
    private Integer sex;    public String getUsername() {        return username;
    }    public void setUsername(String username) {        this.username = username;
    }    public String getPassword() {        return password;
    }    public void setPassword(String password) {        this.password = password;
    }    public Integer getAge() {        return age;
    }    public void setAge(Integer age) {        this.age = age;
    }    public Integer getSex() {        return sex;
    }    public void setSex(Integer sex) {        this.sex = sex;
    }    public Long getId() {        return id;
    }    public void setId(Long id) {        this.id = id;
    }
}

3、编写mapper接口
接下里我们新建repository包 新建UserMapper.java接口  并且定义增删改查的方法声明

public interface UserMapper {    
    int save (User user);    
    int update (User user);    
    int deleteById (int id);    
    User selectById (int id);    
    List selectAll ();
}

跟我们之前定义的mapper.xml文件的位置,我们在resource/mybatis/mapper目录下 新建与之对应的UserMapper.xml



    
        
        
        
        
        
    
    
        delete from user where id=#{id}    

    
        select * from user    


    
        insert into user        
            
                id,            
            
                username,            
            
                password,            

            
                sex,            
            
                age,            
        
        
            
                #{id,jdbcType=BIGINT},            
            
                #{username,jdbcType=VARCHAR},            
            
                #{password,jdbcType=VARCHAR},            
            
                #{sex,jdbcType=INTEGER},            
            
                #{age,jdbcType=INTEGER},            
        
    


    
        update user        
            
                username = #{username,jdbcType=VARCHAR},            
            
                password = #{password,jdbcType=VARCHAR},            
            
                sex = #{sex,jdbcType=INTEGER},            
            
                sex = #{age,jdbcType=INTEGER},            
        
        where id = #{id,jdbcType=BIGINT}    


    
        select
        *
        from user
        where id = #{id,jdbcType=BIGINT}    

这时候mybatis的配置还不算成功,我们需要把mapper的路径暴露给spring 让它来扫描管理,所以我们需要在Chapter4Application.java文件上加上注解@MapperScan("com.yukong.chapter4.repository") 扫描mapper的所在位置
至此。我们mybaits的接口算是编写完毕,接下来我们来测试一下把。
4、测试
这次我们用spring boot的单元测试来测试我们的接口。
在idea中 使用快捷键新建测试类ctrl+shift+t

image.png


勾选需要测试的方法,并且点击ok
这时候会在src/test/java目录下对应的包路径新建对应的测试文件
代码如下


@SpringBootTest@RunWith(SpringJUnit4ClassRunner.class)public class UserMapperTest {    @Autowired
    private UserMapper userMapper;    @Test
    public void save() {
        User user = new User();
        user.setUsername("zzzz");
        user.setPassword("bbbb");
        user.setSex(1);
        user.setAge(18);        // 返回插入的记录数 ,期望是1条 如果实际不是一条则抛出异常
        Assert.assertEquals(1,userMapper.save(user));
    }    @Test
    public void update() {
        User user = new User();
        user.setId(1L);
        user.setPassword("newpassword");        // 返回更新的记录数 ,期望是1条 如果实际不是一条则抛出异常
        Assert.assertEquals(1,userMapper.update(user));
    }    @Test
    public void selectById() {
        Assert.assertNotNull(userMapper.selectById(1L));
    }    @Test
    public void deleteById() {
        Assert.assertEquals(1,userMapper.deleteById(1L));
    }
}

使用spring boot测试需要在测试类上解释注解
@SpringBootTest @RunWith(SpringJUnit4ClassRunner.class)
另外我们这里使用Assert断言来判断实际结果跟预期结果是否一致,如果不一致则抛出异常。

image.png


右键类旁边的运行按钮,一次测试所有的方法

结果如下


image.png


所有的方法通过测试,springboot于mybatis整合成功。



作者:余空啊
链接:https://www.jianshu.com/p/c44dc639cb93


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235653.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号