4、SpringBoot_Mybatis、Druid、Juint整合

五、SSM整合

1.整合Mybatis

1.1springmvc 整合回顾

  • 导入坐标

    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>5.2.17.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>3.5.6</version>
        </dependency>
    
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.3.0</version>
        </dependency>
    
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>8.0.29</version>
        </dependency>
    
        <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.1.16</version>
        </dependency>
    
  • 创建数据库配置文件

    jdbc.url=jdbc:mysql://localhost:3306/ssm
    jdbc.driver=com.mysql.cj.jdbc.Driver
    jdbc.username=root
    jdbc.password=123456
    
  • 提供jdbcconfig

    public class DbConfig {
    
        @Value("${jdbc.url}")
        private String url;
        @Value("${jdbc.driver}")
        private String driver;
        @Value("${jdbc.username}")
        private String username;
        @Value("${jdbc.password}")
        private String password;
    
        /**
         * 配置德鲁伊连接池
         * @return
         */
        @Bean
        public DataSource dataSource(){
            DruidDataSource source = new DruidDataSource();
            source.setUrl(url);
            source.setDriverClassName(driver);
            source.setPassword(password);
            source.setUsername(username);
            return source;
        }
    
        @Bean
        public PlatformTransactionManager transactionManager(DataSource dataSource){
            DataSourceTransactionManager manager = new DataSourceTransactionManager();
            manager.setDataSource(dataSource);
            return manager;
        }
    
    }
    
  • springconfig

    @Configuration
    @ComponentScan(value = {"cn.sycoder.service","cn.sycoder.dao"})
    @EnableTransactionManagement
    @PropertySource("classpath:db.properties")
    @Import({DbConfig.class,MybatisConfig.class})
    public class SpringConfig {
    }
    
  • mybatis 交给spring管理

    public class MybatisConfig {
    
        @Bean
        public SqlSessionFactoryBean sessionFactoryBean(DataSource dataSource){
            SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
            bean.setDataSource(dataSource);
            bean.setTypeAliasesPackage("cn.sycoder.domain");
            return bean;
        }
    
        @Bean
        public MapperScannerConfigurer mapperScannerConfigurer(){
            MapperScannerConfigurer configurer = new MapperScannerConfigurer();
            configurer.setBasePackage("cn.sycoder.dao");
            return configurer;
        }
    }
    

1.2SpringBoot整合Mybatis

1.2.1创建模块
  • 创建模块并填入基础信息

    4、SpringBoot_Mybatis、Druid、Juint整合_第1张图片

    4、SpringBoot_Mybatis、Druid、Juint整合_第2张图片

  • 添加依赖

    4、SpringBoot_Mybatis、Druid、Juint整合_第3张图片

    • 等价于手动添加配置依赖

      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.2.2</version>
      </dependency>
      
      <dependency>
          <groupId>com.mysql</groupId>
          <artifactId>mysql-connector-j</artifactId>
          <scope>runtime</scope>
      </dependency>
      
1.2.2添加配置
  • 添加mysql配置

    spring:
      datasource:
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/springboot_ssm
        username: root
        password: 123456
    
1.2.3创建mapper并且测试
  • 创建 domain

    @Data
    public class Item {
        private Long id;
        private String name;
        private String remark;
    }
    
  • 创建 mapper

    @Mapper
    public interface ItemMapper {
        @Insert("insert into item(name,remark) value(#{name},#{remark})")
        void insert(Item item);
    
        @Select("select * from item where id = #{id}")
        public Item getById(Long id);
    }
    
  • 测试验证

    @SpringBootTest
    class SpringbootSsmApplicationTests {
    
        @Autowired
        ItemMapper mapper;
    
        @Test
        void contextLoads() {
            Item item = new Item();
            item.setName("上云 javase 精讲");
            item.setRemark("课程免费,知识全面");
            mapper.insert(item);
    
            System.out.println(mapper.getById(1L));
        }
    
    }
    
1.2.4总结
  • 使用SpringBoot 整合真的太方便了
    • 需要添加 mybatis 的依赖也即mybatis-spring-boot-starter
    • @Mapper 将Mapper 映射交给容器管理
    • 如果有下划线你觉得难受,添加 @Repository就可以解决(不解决也行)

2.整合Druid

2.1目前使用的数据连接池

  • 默认springboot会给我们使用 Hikari 连接池

    4、SpringBoot_Mybatis、Druid、Juint整合_第4张图片

  • 整合德鲁伊

    • 导入对应starter
    • 修改配置即可

2.2导入依赖

  • 导入依赖

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.2.15</version>
    </dependency>
    

2.3修改配置

  • 配置如下

    spring:
      datasource:
        druid:
          url: jdbc:mysql://localhost:3306/springboot_ssm
          username: root
          password: 123456
          driver-class-name: com.mysql.cj.jdbc.Driver
    
  • 日志查看

    4、SpringBoot_Mybatis、Druid、Juint整合_第5张图片

  • 配置总结

    • 导入Druid starter
    • 提供配置文件

3.整合JUnit

  • 导入依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    
  • 传统方式

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = SpringConfig.class)
    public class ItemTest {
    
        @Autowired
        IItemService service;
        @Test
        public void save(){
            Item item = new Item();
            item.setName("单元测试");
            item.setRemark("单元测试");
            item.setType("单元测试");
            boolean save = service.save(item);
            System.out.println(save);
        }
    }
    

3.1@SpringBootTest

  • 现在的使用

    @SpringBootTest
    class SpringbootSsmApplicationTests {
    
        @Autowired
        ItemMapper mapper;
    
        @Test
        void contextLoads() {
            Item item = new Item();
            item.setName("上云 javase 精讲");
            item.setRemark("课程免费,知识全面");
            mapper.insert(item);
    
            System.out.println(mapper.getById(1L));
        }
    
    }
    

4.整合其它总结

  • 导入对应的 starter
  • 需要写配置的提供配置

你可能感兴趣的:(spring,boot,mybatis,后端,spring)