黑马Spring学习笔记(三)——Spring整合MyBatis、Junit

一、Spring整合Mybatis

步骤 1: 项目中导入整合需要的 jar
【pom.xml】


    org.springframework
    spring-jdbc
    5.3.20




    org.mybatis
    mybatis-spring
    1.3.0
步骤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:引入依赖


    junit
    junit
    4.13.1
    test



    org.springframework
    spring-test
    5.3.6

步骤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://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



你可能感兴趣的:(Java,Web,spring,学习,mybatis)