一、Spring整合Mybatis
步骤 1: 项目中导入整合需要的 jar 包
【pom.xml】
<!--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>
步骤2:主配置类中读 properties 并引入数据源配置类
【SpringConfig主配置类】
@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 = 配置
类 .class)
单元测试,如果测试的是配置文件,则使用@ContextConfiguration(locations={配置文件
名 ,…})
这两行注解格式固定,不需要修改任何参数!
测试类如下:
@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://blog.youkuaiyun.com/qq_45832961/article/details/129064332