一、Spring整合Mybatis
<!--Spring操作数据库需要该jar包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.20</version>
</dependency>
<!--
Spring与Mybatis整合的jar包
这个jar包mybatis在前面,是Mybatis提供的
-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
@Configuration
@ComponentScan("com.itheima")
@PropertySource("classpath:jdbc.properties")
@Import(JdbcConfig.class)
public class SpringConfig {
}
【JdbcConfig配置类】
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String userName;
@Value("${jdbc.password}")
private String password;
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(userName);
ds.setPassword(password);
return ds;
}
}
步骤3:创建Mybatis配置类并配置SqlSessionFactory(关键)
【MybatisConfig配置类】
public class
MybatisConfig
{
//定义
bean
,
SqlSessionFactoryBean
,用于产生
SqlSessionFactory
对象
@Bean
public
SqlSessionFactoryBean sqlSessionFactory
(
DataSource dataSource
){
SqlSessionFactoryBean ssfb
=
new
SqlSessionFactoryBean
();
//设置模型类的别名扫描
ssfb
.
setTypeAliasesPackage
(
"com.itheima.domain"
);
//设置数据源
ssfb
.
setDataSource
(
dataSource
);
return
ssfb
;
}
//定义
bean
,返回
MapperScannerConfigurer
对象
@Bean
public
MapperScannerConfigurer mapperScannerConfigurer
(){
MapperScannerConfigurer msc
=
new
MapperScannerConfigurer
();
msc
.
setBasePackage
(
"com.itheima.dao"
);
return
msc
;
}
}
|
该配置类中有两个方法,共返回两个Bean对象,基本写法已约定俗成,我们使用MyBatisConfig配置类时,只需要修改代码中黄色背景内容即可。
- setTypeAliasesPackage:为指定的包设置别名
- setBasePackage:设置所扫描的包路径
然后,我们将此类引入主配置类即可
@Configuration
@ComponentScan("com.itheima")
@PropertySource("classpath:jdbc.properties")
@Import({JdbcConfig.class,MybatisConfig.class})
public class SpringConfig {
}
这样,Spring整合MyBatis就算成功了!!!
二、Spring整合Junit
整合Junit与整合MyBatis差异比较大,为什么呢?Junit是一个搞单元测试用的工具,它不是我们程序的主体,也不会参加最终程序的运行,从作用上来说就和之前的东西不一样,它不是做功能的,看做是一个辅助工具就可以了
步骤1:引入依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.6</version>
</dependency>
步骤2:编写配置类
在配置类上添加两行注解即可。
//
设置类运行器
@RunWith(SpringJUnit4ClassRunner.class)
//
设置
Spring
环境对应的配置类
@ContextConfiguration(classes = {SpringConfiguration.class
})
//
加载配置类
|
单元测试,如果测试的是注解配置类,则使用@ContextConfiguration(classes = 配置
测试类如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfig.class)
public class AccountServiceTest {
@Autowired
private AccountService accountService;
@Test
public void testFindById(){
System.out.println(accountService.findById(4));
}
@Test
public void testFindAll(){
System.out.println(accountService.findAll());
}
}
笔记跟课:
https://www.bilibili.com/video/BV1Fi4y1S7ix/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=0e0517ebadf244dd640ab0b61dd700c5https://www.bilibili.com/video/BV1Fi4y1S7ix/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=0e0517ebadf244dd640ab0b61dd700c5