栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【编程不良人】快速入门SpringBoot学习笔记03--整合MyBatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【编程不良人】快速入门SpringBoot学习笔记03--整合MyBatis

1. 整合Mybatis框架

配套视频:【编程不良人】2021年SpringBoot最新最全教程_哔哩哔哩_bilibili

【编程不良人】2021年SpringBoot最新最全教程_哔哩哔哩_bilibili

  
  springboot 微框架 = spring 工厂 + springmvc 控制器   微:快速开发框架  通过遵守默认约定  简化项目中样板化配置
  数据库访问框架:  hibernate  jpa  mybatis(框架)
  ​
  回顾: spring框架如何整合mybatis?
  1.引入依赖
      spring 相关
      mysql 相关 驱动 数据源
      mybatis 相关  mybatis核心jar  mybatis和spring框架整合
  ​
  2.spring.xml
      a.开启注解扫描
      b.创建数据源对象
          注入 指定使用那种数据源类型  注入dirverClassName  注入url 注入username password
      c.创建sqlSessionFactory
          注入 数据源  注入mapper配置文件位置  注入实体别名包
      d.创建Dao对象
          注入SqlSessionFactory 以及Dao接口所在包
      e.创建事务管理器      DataSourceTranacationManager 
          注入 数据源对象   
      f.在业务层组件上加入事务注解 @Transacational
          
  ​
  3.测试
      1).建表
      2).开发实体类
      3).开发DAO接口
      4).开发Mapper配置文件
      5).开发Service接口
      6).开发ServiceImpl实现类
      7).测试ServiceImpl
  ===========================================================================
  springboot框架中如何整合mybatis框架?
  1.引入依赖
      spring-boot-stater-web
      mysql相关 mysql驱动  druid数据源
      mybatis相关的 (mybatis-spring-boot-stater) 依赖 (mybatis mybatis-spring)
  ​
  2.书写配置
      a.开启注解扫描 @SpringBootApplication  @ComponentScan  省略
      b.创建数据源  
          1.指定数据源类型
          2.指定数据库驱动
          3.指定url
          4.指定username
          5.指定password
      c.创建SqlSessionFactory
          1.指定mapper配置文件位置
          2.指定实体所在包位置 起别名
      d.创建DAO
          1.指定DAO接口所在包
      e.创建事务管理器  开启注解式事务生效  省略
      
  3.测试
      1).建表
      2).开发实体类
      3).开发DAO接口
      4).开发Mapper配置文件
      5).开发Service接口
      6).开发ServiceImpl实现类
      7).测试ServiceImpl
  ​

1.1 引入依赖
  
  
  
      com.alibaba
      druid
      1.2.4
  
  
      mysql
      mysql-connector-java
      5.1.38
  
  
      org.mybatis.spring.boot
      mybatis-spring-boot-starter
      2.1.4
  
1.2 application.yml编写相关配置
  
  # 公共配置
  server:
    port: 8888 # 修改内置tomcat端口号
    servlet:
      context-path: /spring-boot-day03
  ​
  # 数据源相关配置
  spring:
    datasource:
      type: com.alibaba.druid.pool.DruidDataSource # 指定连接池类型
      driver-class-name: com.mysql.jdbc.Driver # mysql 5.x版本驱动
      # driver-class-name: com.mysql.cj.jdbc.Driver # mysql 8.x版本驱动
      url: jdbc:mysql://localhost:3306/bootssm?characterEncoding=UTF-8 # 指定url
      username: root # 指定用户名和密码
      password: 123456 # 指定密码
      
  # mybatis相关配置
  mybatis:
    mapper-locations: classpath:com/study/mapper
  //@Mapper
  
  @MapperScan("com.study.dao")
  public class SpringBootDay03Application {
      public static void main(String[] args) {
          SpringApplication.run(SpringBootDay03Application.class, args);
      }
  }
  ​

1.4 建表
  
  CREATE DATABASE IF NOT EXISTS bootssm;
  USER bootssm;
  CREATE TABLE IF NOT EXISTS t_user(
   id INT(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
   name VARCHAr(40) COMMENT '姓名', 
   birthday TIMESTAMP COMMENT '生日',
   salary DOUBLE(10,2) COMMENT '工资',
   PRIMARY KEY(id)
  )ENGINE=INNODB DEFAULT CHARSET=utf8mb4;

1.5 开发实体类

User

package com.study.entity;

import java.util.Date;


public class User {
    private Integer id;
    private String name;
    private Date birthday;
    private Double salary;

    public User() {
    }

    public User(Integer id, String name, Date birthday, Double salary) {
        this.id = id;
        this.name = name;
        this.birthday = birthday;
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", birthday=" + birthday +
                ", salary=" + salary +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public Double getSalary() {
        return salary;
    }

    public void setSalary(Double salary) {
        this.salary = salary;
    }
}



1.6 开发DAO接口以及Mapper映射文件

UserDAO

  
  package com.study.dao;
  ​
  import com.study.entity.User;
  ​
  import java.util.List;
  ​
  
  public interface UserDAO {
      
      List findAll();
  ​
      
      void save(User user);
  }
  ​

UserDAOMapper

  
      
      
          select
              id,name,birthday,salary
          from t_user
      
  ​
      
      
          insert into t_user values(#{id},#{name},#{birthday},#{salary})
      

1.7 开发Service以及实现类
  package com.study.service;
  ​
  import com.study.entity.User;
  ​
  import java.util.List;
  ​
  
  public interface UserService {
      
      List findAll();
  ​
      
      void save(User user);
  }
  ​

UserServiceImpl

  
  package com.study.service;
  ​
  import com.study.dao.UserDAO;
  import com.study.entity.User;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.stereotype.Service;
  import org.springframework.transaction.annotation.Propagation;
  import org.springframework.transaction.annotation.Transactional;
  ​
  import java.util.List;
  ​
  
  @Service("userService")
  @Transactional
  public class UserServiceImpl implements UserService{
      private UserDAO userDAO;
  ​
      @Autowired
      public UserServiceImpl(UserDAO userDAO) {
          this.userDAO = userDAO;
      }
  ​
      @Override
      @Transactional(propagation = Propagation.SUPPORTS)
      public List findAll() {
          return userDAO.findAll();
      }
  ​
      @Override
      public void save(User user) {
          userDAO.save(user);
      }
  }
  ​

1.8 开发Controller

UserController

  package com.study.controller;
  ​
  import com.study.entity.User;
  import com.study.service.UserService;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RestController;
  ​
  import java.util.List;
  ​
  
  @RestController
  @RequestMapping("user")
  public class UserController {
      private UserService userService;
  ​
      @Autowired
      public UserController(UserService userService) {
          this.userService = userService;
      }
  ​
      
      @RequestMapping("findAll")
      public List findAll(){
          return userService.findAll();
      }
  ​
      
      @RequestMapping("save")
      public void save(User user){
          userService.save(user);
      }
  }
  ​

1.9 启动项目访问测试

查询所有用户访问地址:http://localhost:8888/spring-boot-day03/user/findAll

添加用户信息访问地址:http://localhost:8888/spring-boot-day03/user/save?name=赵六&birthday=2013/08/04&salary=2800

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854713.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号