【Spring】整合mybatis和junit

举报
向阳花花花花 发表于 2023/07/25 11:16:19 2023/07/25
【摘要】 这篇文章主要讲了如何使用spring去整合mybatis,使用JdbcConfig类和MybatisConfig类去替换掉mybatis-config.xml文件,并注入mapper对象;使用spring整合junit比较简单,只需要加入依赖,在测试类上加上相应的注解。

一、前言

这篇文章主要介绍如何使用spring整合mybatis和junit测试。

二、内容

1.spring整合mybatis

1.导入相关依赖

<!--        spring整合mybatis需要的依赖-->
        <!--        JDBC-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.24</version>
        </dependency>
        <!--        druid连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.0</version>
        </dependency>
        <!--        spring框架-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <!--        spring-jdbc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.3.4</version>
        </dependency>
<!--        mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
<!--        mybatis提供给spring的接口-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.1.0</version>
        </dependency>

注意:
如果MySQL版本是5.x,需要将mysql-connector-java换成5.x版本,将spring-jdbc的版本也换成5.2.10.release。

2.准备工作
在这里分别准备好mapper层的UserMapper接口,service层的UserService接口和实现类

public interface UserMapper {
    /**
     * 通过id查找用户
     */
    @Select("SELECT * FROM user WHERE id = #{id}")
    User selectById(@Param("id") int id);
}
public interface UserService {
    User selectById(int id);
}
public class UserServiceImpl implements UserService {

    private UserMapper mapper;

    @Override
    public User selectById(int id) {
        User user = mapper.selectById(id);
        return user;
    }
}

3.新建SpringConfig类,并加上@Configuration和@ComponentScan注解

配置类的初始工作

4.编写数据库连接信息的jdbc.properties文件,并引入到SpringConfig类中

jdbc.properties文件

引入

5.新建JdbcConfig类,使用@Bean注入第三方数据源对象(Druid)

public class JdbcConfig {
    @Value("${driverClassName}")
    private String driverClassName;
    @Value("${url}")
    private String url;
    @Value("${name}")
    private String username;
    @Value("${password}")
    private String password;
    /**
     * 注入第三方bean
     */
    @Bean
    public DataSource getDataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

6.新建MybatisConfig类,编写SqlSessionFactoryBean对象方法和MapperScannerConfigurer对象方法,并加上@Bean注解。

替换配置信息

替换包扫描

public class MybatisConfig {
    
    @Bean
    public SqlSessionFactoryBean getSqlSessionFactoryBean(DataSource dataSource) {
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
        factoryBean.setTypeAliasesPackage("demo6.bean"); // 实体类的类型别名
        factoryBean.setDataSource(dataSource); // 设置数据源,获取数据库配置信息(引用类型注入使用方法形参)
        return factoryBean;
    }
    
    @Bean
    public MapperScannerConfigurer getMapperScannerConfigurer() {
        MapperScannerConfigurer scannerConfigurer = new MapperScannerConfigurer();
        scannerConfigurer.setBasePackage("demo6.mapper"); // 设置哪些包下的类要生成代理(创建对象)
        return scannerConfigurer;
    }
}

7.在SpringConfig类中导入这两个配置类@Import

导入配置类

8.在UserServiceImpl类中为mapper对象注入,并加上@Service注解

加上@Autowired注解

9.运行主类并查看运行结果,并与数据库数据对比

主类

运行结果:

运行结果

和数据库数据进行对比

数据库数据

由此可见,spring整合mybatis成功!

2.spring整合junit测试

1.导入junit测试和spring-test坐标

<!--        spring整合junit-->
<!--        1.导入Junit测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
<!--        2.导入spring-test-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>

2.编写测试类(使用@RunWith注解和@ContextConfiguration注解)

测试类

3.查看运行结果

运行结果

三、结语

这篇文章主要讲了如何使用spring去整合mybatis,使用JdbcConfig类和MybatisConfig类去替换掉mybatis-config.xml文件,并注入mapper对象;使用spring整合junit比较简单,只需要加入依赖,在测试类上加上相应的注解。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。