• 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>
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
    • 创建数据库配置文件

      jdbc.url=jdbc:mysql://localhost:3306/ssm
      jdbc.driver=com.mysql.cj.jdbc.Driver
      jdbc.username=root
      jdbc.password=123456
      
      • 1
      • 2
      • 3
      • 4
    • 提供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;
          }
      
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
      • 18
      • 19
      • 20
      • 21
      • 22
      • 23
      • 24
      • 25
      • 26
      • 27
      • 28
      • 29
      • 30
      • 31
      • 32
      • 33
    • springconfig

      @Configuration
      @ComponentScan(value = {"cn.sycoder.service","cn.sycoder.dao"})
      @EnableTransactionManagement
      @PropertySource("classpath:db.properties")
      @Import({DbConfig.class,MybatisConfig.class})
      public class SpringConfig {
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
    • 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
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

    1.2SpringBoot整合Mybatis

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

      在这里插入图片描述

      在这里插入图片描述

    • 添加依赖

      在这里插入图片描述

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

        <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
        • 3
        • 4
        • 5
        • 6
        • 7
        • 8
        • 9
        • 10
        • 11
    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
      • 4
      • 5
      • 6
    1.2.3创建mapper并且测试
    • 创建 domain

      @Data
      public class Item {
          private Long id;
          private String name;
          private String remark;
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
    • 创建 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);
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
    • 测试验证

      @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
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17
    1.2.4总结
    • 使用SpringBoot 整合真的太方便了
      • 需要添加 mybatis 的依赖也即mybatis-spring-boot-starter
      • @Mapper 将Mapper 映射交给容器管理
      • 如果有下划线你觉得难受,添加 @Repository就可以解决(不解决也行)

    2.整合Druid

    2.1目前使用的数据连接池

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

      在这里插入图片描述

    • 整合德鲁伊

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

    2.2导入依赖

    • 导入依赖

      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid-spring-boot-starter</artifactId>
          <version>1.2.15</version>
      </dependency>
      
      • 1
      • 2
      • 3
      • 4
      • 5

    2.3修改配置

    • 配置如下

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

      在这里插入图片描述

    • 配置总结

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

    3.整合JUnit

    • 导入依赖

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

      @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);
          }
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16

    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));
          }
      
      }
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 17

    4.整合其它总结

    • 导入对应的 starter
    • 需要写配置的提供配置
  • 相关阅读:
    C语言 || volatile
    【新品发布】四核A53超高性价比!RK3562系列核心板及开发板震撼上市
    八、Nacos服务注册和配置中心
    视图/存储过程/触发器
    【附源码】计算机毕业设计JAVA宠物管理系统
    新库上线 | CnOpenData美国专利及引用被引用数据
    海南省建设自由贸易岛对海南旅游发展影响的思考
    恼人的TCP套接字部分发送成功场景
    Fair|Fur —— Fur
    Python和Java代码实现:切线法求解一维最优化问题
  • 原文地址:https://blog.csdn.net/Byron__/article/details/133252622