Spring 整合 MyBatis、Junit

Spring 整合 MyBatis

  • MyBatis 程序核心对象分析
// 初始化 SqlSessionFactory
// 1. 创建SqlSessionFactoryBuilder对象
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
// 2. 加载SqlMapConfig.xml配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
// 3. 创建SqlSessionFactory对象
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);

// 获取连接,获取实现
// 4. 获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 5. 执行SqlSession对象执行查询,获取结果User
AccountDao accountDao = sqlSession.getMapper(AccountDao.class);

// 获取数据层接口
Account ac = accountDao.findById(2);
System.out.println(ac);

// 关闭连接
// 6. 释放资源
sqlSession.close();

三个对象:SqlSessionFactory、SqlSession、accountDao

但最核心的对象是 SqlSessionFactory

这个对象由配置得来的:

<!--初始化属性数据-->
<configuration>
    <properties resource="jdbc.properties"></properties>
    <!--初始化类型别名-->
    <typeAliases>
        <package name="com.itheima.domain"/>
    </typeAliases>
    <!--初始化 dataSource-->
    <environments default="mysql">
        <environment id="mysql">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>
    <!--初始化映射配置-->
    <mappers>
        <package name="com.itheima.dao"></package>
    </mappers>
</configuration>
  • Spring 整合 MyBatis
    • 导坐标:
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>
    • 将配置文件转换为类:
    //定义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;
    }

Spring 整合 Junit

  • 导坐标
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
  • Spring 整合 Junit 专用的类加载器
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = SpringConfig.class)
//设置类运行器
@RunWith(SpringJUnit4ClassRunner.class)
//设置Spring环境对应的配置类
@ContextConfiguration(classes = SpringConfig.class)
public class AccountServiceTest {
    //支持自动装配注入bean
    @Autowired
    private AccountService accountService;

    @Test
    public void testFindById(){
        System.out.println(accountService.findById(1));
    }

    @Test
    public void testFindAll(){
        System.out.println(accountService.findAll());
    }
}

相关推荐

  1. Spring-整合MyBatis

    2024-03-14 17:20:04       34 阅读
  2. Spring Boot整合RocketMQ

    2024-03-14 17:20:04       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-14 17:20:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-14 17:20:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-14 17:20:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-14 17:20:04       20 阅读

热门阅读

  1. springboot使用EasyExcel实现Excel导入导出

    2024-03-14 17:20:04       18 阅读
  2. 富格林:阻挠亏损谨防上当受害

    2024-03-14 17:20:04       22 阅读
  3. spark-sql显示字段名称

    2024-03-14 17:20:04       22 阅读
  4. C语言入门学习 --- 4.数组

    2024-03-14 17:20:04       18 阅读
  5. k8s部署Minio集群

    2024-03-14 17:20:04       23 阅读
  6. gitlab数据代码迁移合并

    2024-03-14 17:20:04       20 阅读