SpringBoot整合Mybatis(技术分享)

大家好,我是猿猴小冷,一只小小的猿猴,今天给大家分享一下SpringBoot整合Mybatis(一个小小的案例)

  1. 首先,添加SpringBoot整合Mybatis所需要的依赖
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.3</version>
        </dependency>`
  1. 创建application.yml配置文件(注:SpringBoot扫描时只认application配置文件名称)
    一个项目会有多个环境,一般分为三个环境:

    a. 开发环境
    b. 测试环境
    c. 生产环境

    当你需要使用哪个环境只需要在主配置文件(application.yml)中将用的配置文件写上就行,在Spring Boot中多环境配置文件名需要满足application-{profile}.yml的格式,其中{profile}对应你的环境标识(如:application-dev.yml的dev就是环境的标识),比如你想用到开发环境,你就得在主配置文件中配置spring: -->profiles: -->active: 你的环境标识application-{profile}.yml格式的{profile}名称

application.yml

#yml格式配置文件 空格是关键 它有层次之分
spring:
  profiles:
    active: dev

application-dev.yml

#开发环境
server:
  #设置端口号
  port: 8080
  #设置项目根目录
  servlet:
    context-path: /demo
mybatis:
  mapper-locations: classpath:mapper/*.xml
#jdbc连接
spring:
  datasource:
    username: root
    password: 111111
    url: jdbc:mysql://localhost:3306/springboot
    driver-class-name: com.mysql.jdbc.Driver
  1. 实体类定义
package com.lq.sbdemo.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
public class User {
    private Integer id;
    private String userCode;
    private String userName;
    private String userPassword;
    private Integer gender;
    private Date birthday;
    private String phone;
    private String address;
    private Integer userRole;
    private Integer createdBy;
    private Date creationDate;
    private Integer modifyBy;
    private Date modifyDate;
    private String idPicPath;
    private String workPicPath;
    }
}

在这里给大家介绍一个插件,lombok,它是是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。它里面的@Data注解能给属性提供getset方法,
@NoArgsConstructor提供无参构造,
@AllArgsConstructor提供带参构造。

  1. 三层架构
    a. dao层(数据访问层)
package com.lq.sbdemo.dao;

import com.lq.sbdemo.entity.User;
import com.lq.sbdemo.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户数据访问层接口
 */
public interface UserMapper {
    /**
     * 根据用户编号查询用户数据
     * @param id 用户编号
     * @return 用户数据对象集合
     */
    public User selectUserById(@Param("id") Integer id);
}

b. 动态Sql的映射

	<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">
<mapper namespace="com.lq.sbdemo.dao.UserMapper">
    <select id="selectUserById" resultType="com.lq.sbdemo.entity.User">
        SELECT * FROM smbms_user WHERE id=#{id}
    </select>
</mapper>

c. service层(业务逻辑层)

package com.lq.sbdemo.service;

import com.lq.sbdemo.entity.User;
import com.lq.sbdemo.entity.UserEntity;

import java.util.List;

/**
 * 业务逻辑层接口
 */
public interface UserService {
    /**
     * 根据用户编号查询用户数据
     * @param id 用户编号
     * @return 用户数据对象集合
     */
    public User findUserByid(Integer id);
}

d. service接口实现类

package com.lq.sbdemo.service.impl;

import com.lq.sbdemo.dao.UserMapper;
import com.lq.sbdemo.entity.User;
import com.lq.sbdemo.entity.UserEntity;
import com.lq.sbdemo.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
/**
 * 业务逻辑层接口实现类
 */
@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserMapper userMapper;
    @Override
    public User findUserByid(Integer id) {
        return userMapper.selectUserById(id);
    }
}
  1. 控制器API的定义
	package com.lq.sbdemo.controller;

import com.lq.sbdemo.entity.User;
import com.lq.sbdemo.service.UserService;
import com.lq.sbdemo.service.impl.UserServiceImpl;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;
    @GetMapping("/getUserById.html/{id}")
    public User getUserById(@PathVariable Integer id){
        return userService.findUserByid(id);
    }
}
  1. 运行效果图(表示层,后台返回的JSON数据)

在这里插入图片描述
7. 总结SpringBoot的一些优势

 (1)快速构建项目。
 (2)对主流开发框架的无配置集成。
 (3)项目可独立运行,无须外部依赖Servlet容器。
 (4)提供运行时的应用监控。
 (5)极大地提高了开发、部署效率。

我的分享到此结束,谢谢大家!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值