springboot集成mybatis

一前提说明

  1. 熟悉maven构建项目
  2. 熟悉spring,mybatis,原理
  3. 本文使用idea工具开发
  4. 熟悉yml语法格式
  5. 熟悉mysql数据库和其他链接操作工具
  6. 熟悉http resful 设计风格
  7. 会使用postman或者类似调试工具
  8. 只是入门级别,实际生产情况根据不同公司架构稍有不同。
  9. 数据库mysql5.6.0
  10. 本次演示集成mybatis注解版

二pom.xml

   
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.1.RELEASE
         
    
        
        
        
            org.springframework.boot
            spring-boot-starter-web
            2.1.1.RELEASE
        
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.0
        
        
        
            mysql
            mysql-connector-java
            8.0.13
        
    

三在resource目录下创建 application.yml配置文件

server:
  port: 8082 #指定端口
spring:
  application:
    name: mybatis-annotation #应用名称
  datasource: #数据源
    url: jdbc:mysql://192.168.0.106:3306/springboot?useUnicode=true&characterEncoding=utf-8
    username: root #账号
    password: 123456 #密码
    driver-class-name: com.mysql.cj.jdbc.Driver #数据库驱动

mybatis:
  configuration:
    map-underscore-to-camel-case: true #开启驼峰命名法
logging:
  level:
    com.youku1327.mybatis.mapper: debug #日志级别

# 四创建包结构

springboot集成mybatis_第1张图片

# 五 数据库建表

CREATE TABLE `tb_user` (
  `usre_id` bigint(255) NOT NULL AUTO_INCREMENT COMMENT '用户id',
  `user_name` varchar(50) DEFAULT NULL COMMENT '用户名',
  `user_gender` varchar(2) DEFAULT NULL COMMENT '用户性别',
  `user_telephone` varchar(15) DEFAULT NULL COMMENT '用户电话',
  PRIMARY KEY (`usre_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

六建立用户实体

package com.youku1327.mybatis.entity;

/**
 * @Author lsc
 * @Description 用户实体
 * @Date 2019/9/20 23:58
 * @Version 1.0
 */
public class UserEntity {

    // 用户id
    private Long userId;
    // 用户名称
    private String userName;
    // 用户性别
    private String userGender;
    // 用户电话
    private String userTelephone;

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUserGender() {
        return userGender;
    }

    public void setUserGender(String userGender) {
        this.userGender = userGender;
    }

    public String getUserTelephone() {
        return userTelephone;
    }

    public void setUserTelephone(String userTelephone) {
        this.userTelephone = userTelephone;
    }
}

# 七编写控制层

package com.youku1327.mybatis.controller;

import com.youku1327.mybatis.entity.UserEntity;
import com.youku1327.mybatis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;


/**
 * @Author lsc
 * @Description 控制层
 * @Date 2019/9/20 23:55
 * @Version 1.0
 */
@RestController // 相当于 @Controller 注解 + @responseBody
@RequestMapping("user")
public class UserController {

    @Autowired
    UserService userService;

    @PostMapping(value = "info")
    public ResponseEntity addUser(@RequestBody UserEntity userEntity){
        int count = userService.addUser(userEntity);
        // 返回条数
        return ResponseEntity.status(HttpStatus.OK).body(count);
    }

    @GetMapping("info")
    public ResponseEntity getUsers(Long userId){
        UserEntity users = userService.getUsers(userId);
        return ResponseEntity.ok(users);
    }

    @PutMapping("info/{userId}")
    public ResponseEntity updateUser(@RequestBody UserEntity userEntity,@PathVariable Long userId){
        int count = userService.updateUser(userEntity,userId);
        // 返回条数
        return ResponseEntity.status(HttpStatus.OK).body(count);
    }

    @DeleteMapping("info/{userId}")
    public ResponseEntity delUser(@PathVariable Long userId){
        int count = userService.delUser(userId);
        return ResponseEntity.ok(count);
    }
}

八服务层

package com.youku1327.mybatis.service.impl;

import com.youku1327.mybatis.entity.UserEntity;
import com.youku1327.mybatis.mapper.UserMapper;
import com.youku1327.mybatis.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @Author lsc
 * @Description 用户服务层
 * @Date 2019/9/21 0:24
 * @Version 1.0
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;

    @Override
    public int addUser(UserEntity userEntity) {
        int count = userMapper.addUser(userEntity);
        return count;
    }

    @Override
    public UserEntity getUsers(Long userId) {
        UserEntity users = userMapper.getUser(userId);
        return users;
    }

    @Override
    public int updateUser(UserEntity userEntity,Long userId) {
        int count = userMapper.updateUser(userEntity,userId);
        return count;
    }

    @Override
    public int delUser(Long userId) {
        int count = userMapper.delUser(userId);
        return count;
    }
}

九mapepr

package com.youku1327.mybatis.mapper;

import com.youku1327.mybatis.entity.UserEntity;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

/**
 * @Author lsc
 * @Description
 * @Date 2019/9/21 0:13
 * @Version 1.0
 */
@Mapper
@Repository
public interface UserMapper  {

    @Insert("INSERT INTO `springboot`.`tb_user`(`user_name`, `user_gender`) VALUES (#{userEntity.userName},#{userEntity.userGender})")
    int addUser(@Param("userEntity") UserEntity userEntity);

    @Select(" select * from `tb_user` where `user_id` = #{userId}")
    @ResultType(UserEntity.class)
    UserEntity getUser(Long userId);

    @Update("UPDATE `tb_user` SET user_telephone = #{userEntity.userTelephone} WHERE `user_id`=#{userId}")
    int updateUser(@Param("userEntity") UserEntity userEntity,@Param("userId") Long userId);

    @Delete("DELETE FROM `tb_user` WHERE `user_id`=#{userId}")
    int delUser(@Param("userId")Long userId);
}

十启动类

package com.youku1327.mybatis;


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

/**
 * @Author lsc
 * @Description springboot启动类
 * @Date 2019/9/21 0:49
 * @Version 1.0
 */
@SpringBootApplication
@MapperScan("com.youku1327.mybatis.mapper")
public class MybatisAnnotationApplication {

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

}

十一测试

get
在这里插入图片描述
post
springboot集成mybatis_第2张图片
put
springboot集成mybatis_第3张图片
del
springboot集成mybatis_第4张图片

十二源码地址和微信公众号

源码在微信公众号对应文章的结尾链接,公众号更多java技术干货,学习资源等。

springboot集成mybatis_第5张图片

你可能感兴趣的:(springboot集成mybatis)