6、intellij idea中Springboot整合Mybatis实现增删改查

开发环境:
Intellij IDEA 2018.2+springboot+jdk1.8+maven+alibaba Druid 数据库连接池:1.1.9

1、开始搭建项目

6、intellij idea中Springboot整合Mybatis实现增删改查_第1张图片
6、intellij idea中Springboot整合Mybatis实现增删改查_第2张图片
6、intellij idea中Springboot整合Mybatis实现增删改查_第3张图片
6、intellij idea中Springboot整合Mybatis实现增删改查_第4张图片

2、按照pom.xml文件补齐需要的依赖,maven会根据文件自动导入jar包



    4.0.0

    com.winter
    springboot-mybatis-demo
    0.0.1-SNAPSHOT
    jar

    springboot-mybatis-demo
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.5.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
            com.fasterxml.jackson.core
            jackson-core
        
        
            com.fasterxml.jackson.core
            jackson-databind
        
        
            com.fasterxml.jackson.datatype
            jackson-datatype-joda
        
        
            com.fasterxml.jackson.module
            jackson-module-parameter-names
        
        
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.9
        
   
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            

        
    




3、按照下图创建包结构
6、intellij idea中Springboot整合Mybatis实现增删改查_第5张图片
4、项目启动类SpringbootMybatisDemoApplication代码

package com.winter;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.winter.dao")
public class SpringbootMybatisDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootMybatisDemoApplication.class, args);
    }
}

注意:@MapperScan(“com.winter.mapper”)这个注解非常的关键,这个对应了项目中mapper(dao)所对应的包路径,

5、这次使用application.yml配置,把原来的properties文件删除即可
application.yml的创建:new----File—输入文件名和后缀即可
6、intellij idea中Springboot整合Mybatis实现增删改查_第6张图片

server:
  port: 8080

spring:
  datasource:
    name: mysql_test
#    type: org.apache.commons.jdbc.BasicDataSource
    type: com.alibaba.druid.pool.DruidDataSource

    #druid相关配置
    druid:
      #监控统计拦截的filters
      filters: stat
      driver-class-name: com.mysql.jdbc.Driver
      #基本属性

      url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
#      url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
#      url: jdbc:mysql://127.0.0.1:3306/mytest?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
      username: root
      password: root
      #配置初始化大小/最小/最大
      initial-size: 1
      min-idle: 1
      max-active: 20
      #获取连接等待超时时间
      max-wait: 60000
      #间隔多久进行一次检测,检测需要关闭的空闲连接
      time-between-eviction-runs-millis: 60000
      #一个连接在池中最小生存的时间
      min-evictable-idle-time-millis: 300000
      validation-query: SELECT 'x'
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      #打开PSCache,并指定每个连接上PSCache的大小。oracle设为true,mysql设为false。分库分表较多推荐设置为false
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 20
## 该配置节点为独立的节点,有很多同学容易将这个配置放在spring的节点下,导致配置无法被识别
mybatis:
  mapper-locations: classpath:mapper/*.xml  #注意:一定要对应mapper映射xml文件的所在路径
  type-aliases-package: com.winter.model  # 注意:对应实体类的路径

6、补齐包结构
6、intellij idea中Springboot整合Mybatis实现增删改查_第7张图片

7、创建数据库mytest、表t_user
userId字段设置成自动增长
6、intellij idea中Springboot整合Mybatis实现增删改查_第8张图片

8、model下面创建实体类UserDomain.java

package com.winter.model;
public class UserDomain {

    private Integer userId;
    private String userName;
    private String password;
    private String phone;
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }
   public void setPassword(String password) {
        this.password = password;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    } 
}

9、dao下面创建UserDao.java

package com.winter.dao;
import com.winter.model.UserDomain;
import java.util.List;

public interface UserDao {
    public  int insert(UserDomain record);
    public int deleteUser(int userId);
   public int updateUser(UserDomain userDomain);
   public UserDomain selectById(int userId);
   public List selectAll();
}

10、resources—mapper下面创建mybatis映射文件: UserMapper.xml





    
    
    
    
    
    
    


    
    
        insert into t_user (userName,password,phone) values (#{userName,jdbcType=VARCHAR},#{password,jdbcType=VARCHAR},#{phone,jdbcType=VARCHAR})
    

    
        delete from t_user where userId=#{userId}
    

    
    
    
        update t_user set userName=#{userName},password=#{password},phone=#{phone} where userId=#{userId}
    

    

11、controller下面创建UserController.java

package com.winter.controller;
import com.winter.model.UserDomain;
import com.winter.service.user.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping(value = "/user")
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/add")
    public int addUser(UserDomain user){
        return userService.addUser(user);
    }

    @PostMapping("/delete")
    public int deleteUser(int userId){
        return  userService.deleteUser(userId);
    }

    @GetMapping("/selectById")
    public UserDomain selectById(int userId){
        return  userService.selectById(userId);
    }

    @PostMapping("/update")
    public int updateUser(UserDomain userDomain,int userId){
        UserDomain userDomain1=userService.selectById(userId);
        userDomain1.setUserName(userDomain.getUserName());
        userDomain1.setPassword(userDomain.getPassword());
        userDomain1.setPhone(userDomain.getPhone());
        return  userService.updateUser(userDomain);
    }

    @GetMapping("/selectAll")
    public List selectAll( ){
        return  userService.selectAll();
    }
}

12.在包service.user下面创建service类接口UserService.java
注意是接口类

package com.winter.service.user;
import com.winter.model.UserDomain;
import java.util.List;
public interface UserService {
    public int addUser(UserDomain user);
    public int deleteUser(int userId);
    public int updateUser(UserDomain userDomain);
    public UserDomain selectById(int userId);
    public List selectAll();

}

13、在包service.user下面创建包impl,然后在impl下面创建service接口的实现类UserServiceImpl.java

package com.winter.service.user.impl;
import com.winter.dao.UserDao;
import com.winter.model.UserDomain;
import com.winter.service.user.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service("userService")
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;//这里会报错,但是并不会影响效果

    @Override
    public int addUser(UserDomain user) {

        return userDao.insert(user);
    }

    @Override
    public List selectAll() {
        return userDao.selectAll();
    }

    @Override
    public UserDomain selectById(int userId) {
        return userDao.selectById(userId);
    }

    @Override
    public int deleteUser(int userId) {
        return userDao.deleteUser(userId);
    }

    @Override
    public int updateUser(UserDomain userDomain) {
        return userDao.updateUser(userDomain);
    }
}

14、项目最终结构
6、intellij idea中Springboot整合Mybatis实现增删改查_第9张图片

15、测试
项目搭建完成了,运行启动类SpringbootMybatisDemoApplication
不报错,基本就搭建成功了。
6、intellij idea中Springboot整合Mybatis实现增删改查_第10张图片

17、测试可以使用了idea一个很用心的功能。
可以发http请求的插件:
6、intellij idea中Springboot整合Mybatis实现增删改查_第11张图片

18、测试添加数据,按下图操作,运行绿色三角即可成功插入数据
由于UserId是自动自增的,不需要输入
6、intellij idea中Springboot整合Mybatis实现增删改查_第12张图片

19、删除数据
6、intellij idea中Springboot整合Mybatis实现增删改查_第13张图片

20、修改数据
6、intellij idea中Springboot整合Mybatis实现增删改查_第14张图片

21、查询某个user,注意切换请求方式
6、intellij idea中Springboot整合Mybatis实现增删改查_第15张图片

完整项目下载地址:
https://download.csdn.net/download/nba_linshuhao/10678029

你可能感兴趣的:(SpringBoot)