【Spring】整合mybatis和junit
这篇文章主要介绍如何使用spring整合mybatis和junit测试。
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类中
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注解
9.运行主类并查看运行结果,并与数据库数据对比
运行结果:
和数据库数据进行对比
由此可见,spring整合mybatis成功!
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比较简单,只需要加入依赖,在测试类上加上相应的注解。
- 点赞
- 收藏
- 关注作者
评论(0)