美文网首页SpringBootspringboot个人学习
SpringBoot+MyBatis+Swagger2整合进行增

SpringBoot+MyBatis+Swagger2整合进行增

作者: HeloWxl | 来源:发表于2020-03-08 14:35 被阅读0次

前言:
本片文章采用的是SpringBoot+Mybatis+Swagger2,目的是使用
Mybatis完成增删改查操作。第一部分讲的是通过xml文件进行增删改查操作,第二部分讲解的是通过注解进行增删改查操作。

Mybatis官网(官网内容很详细哦):Mybatis官网

一、增删改查操作(通过XML)

1.Sql语句

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) DEFAULT NULL,
  `sex` varchar(6) DEFAULT NULL,
  `birthday` date DEFAULT NULL,
  `address` varchar(20) DEFAULT NULL,
  `password` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
SET FOREIGN_KEY_CHECKS = 1;

2.项目结构

image.png

3.使用自动生成插件-生成代码

大家可以参考这篇文章,使用EasyCode插件生成代码:EasyCode(代码神器)
需要修改的地方

  • UserDao.java
    添加@Mapper注解


    image.png
  • 启动类
    添加@MapperScan注解


    image.png

4.pom.xml

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <!--热部署-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

5 配置文件

application.yml

spring:
#  数据源
  datasource:
#    用户名
    username: root
#    密码
    password: 123456
#    链接
    url: jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
#    驱动
    driver-class-name: com.mysql.jdbc.Driver
#mybatis配置
mybatis:
  mapper-locations: classpath:mapper/*Dao.xml
 #实体扫描,多个package用逗号或者分号分隔
  type-aliases-package: com.mb.helo.entity

6、entity

@Data
public class User implements Serializable {
    private static final long serialVersionUID = -75231801200113829L;
    private Integer id;
    private String username;
    private String sex;
    private Object birthday;
    private String address;
    private String password;
}

7、dao

@Mapper
public interface UserDao {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    User queryById(Integer id);

    /**
     * 查询指定行数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<User> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param user 实例对象
     * @return 对象列表
     */
    List<User> queryAll(User user);

    /**
     * 新增数据
     *
     * @param user 实例对象
     * @return 影响行数
     */
    int insert(User user);

    /**
     * 修改数据
     *
     * @param user 实例对象
     * @return 影响行数
     */
    int update(User user);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 影响行数
     */
    int deleteById(Integer id);

}

8、service

public interface UserService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    User queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    List<User> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param user 实例对象
     * @return 实例对象
     */
    User insert(User user);

    /**
     * 修改数据
     *
     * @param user 实例对象
     * @return 实例对象
     */
    User update(User user);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

}

9、serviceImpl

@Service("userService")
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public User queryById(Integer id) {
        return this.userDao.queryById(id);
    }

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit 查询条数
     * @return 对象列表
     */
    @Override
    public List<User> queryAllByLimit(int offset, int limit) {
        return this.userDao.queryAllByLimit((offset-1)*limit, limit);
    }

    /**
     * 新增数据
     *
     * @param user 实例对象
     * @return 实例对象
     */
    @Override
    public User insert(User user) {
        this.userDao.insert(user);
        return user;
    }

    /**
     * 修改数据
     *
     * @param user 实例对象
     * @return 实例对象
     */
    @Override
    public User update(User user) {
        this.userDao.update(user);
        return this.queryById(user.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.userDao.deleteById(id) > 0;
    }
}

10、controller

@RestController
@RequestMapping("user")
public class UserController {
    /**
     * 服务对象
     */
    @Resource
    private UserService userService;

    /**
    * @Description: 根据主键删除
    * @params: [id]
    * @return: com.mb.helo.entity.User
    * @Author: wangxianlin
    * @Date: 2020/3/8 5:15 AM
    */ 
        @GetMapping("queryById")
    public User queryById(@RequestParam("id") Integer id) {
        return this.userService.queryById(id);
    }


    /**
    * @Description: 分页查询用户列表
    * @params: [offset, limit]
    * @return: java.util.List<com.mb.helo.entity.User>
    * @Author: wangxianlin
    * @Date: 2020/3/8 5:14 AM
    */
    @GetMapping("queryAllByLimit")
    public List<User> queryAllByLimit(@RequestParam("offset") int offset,@RequestParam("limit")  int limit) {
        return this.userService.queryAllByLimit(offset, limit);
    }

   
    /**
    * @Description: 新增用户
    * @params: [user]
    * @return: com.mb.helo.entity.User
    * @Author: wangxianlin
    * @Date: 2020/3/8 5:14 AM
    */
    @PostMapping("insert")
    public User insert(@RequestBody User user) {
        return  this.userService.insert(user);
    }

  
    /**
    * @Description: 修改用户
    * @params: [user]
    * @return: com.mb.helo.entity.User
    * @Author: wangxianlin
    * @Date: 2020/3/8 5:14 AM
    */
    @PostMapping("update")
    public User update(@RequestBody User user) {
        this.userService.update(user);
        return this.queryById(user.getId());
    }

    /**
    * @Description: 根据主键删除用户
    * @params: [id]
    * @return: boolean
    * @Author: wangxianlin
    * @Date: 2020/3/8 5:14 AM
    */
    @GetMapping("deleteById")
    public boolean deleteById(Integer id) {
        return this.userService.deleteById(id);
    }
}

11、测试

  • 增加


    image.png
  • 分页查询


    image.png
  • 删除


    image.png
  • 根据主键查询


    image.png
  • 修改


    image.png

二、增删改查操作(通过注解)

  • UserDao.java
/***************************注解方式********************************/

    /**
    * @Description: 分页查询 -注解方式
    * @params: []
    * @return: java.util.List<com.mb.helo.entity.User>
    * @Author: wangxianlin
    * @Date: 2020/3/8 3:39 PM
    */ 
    @Select("select * from user limit #{page} , #{limit}")
    List<User> queryAllLimitByAnnotation(@Param("page") int page,@Param("limit") int limit);

    /**
    * @Description: 根据主键查询 -注解方式
    * @params: []
    * @return: int
    * @Author: wangxianlin
    * @Date: 2020/3/8 3:42 PM
    */ 
    @Select("select * from user where id = #{id}")
    User getUserByIdAnnotation(@Param("id") int id);

    /**
    * @Description: 添加 -注解方式
    * @params: [user]
    * @return: int
    * @Author: wangxianlin
    * @Date: 2020/3/8 3:53 PM
    */ 
    @Insert(" insert into user (username,sex,birthday,address,password) values(#{username}," +
            "#{sex},#{birthday},#{address},#{password}) ")
    int insertByAnnotation(User user);

    /**
    * @Description: 根据主键删除 - 注解方式
    * @params: [id]
    * @return: int
    * @Author: wangxianlin
    * @Date: 2020/3/8 3:58 PM
    */ 
    @Delete("delete from user where id = #{id}")
    int deleteByAnnotation(@Param("id") int id);

 /**
    * @Description: 修改
    * @params: [user]
    * @return: int
    * @Author: wangxianlin
    * @Date: 2020/3/8 6:53 PM
    */ 
    @PostMapping("updateUserById")
    public int updateUserById(@RequestBody User user) {
        return this.userService.updateUserById(user);
    }

测试

  • 分页操作


    分页
  • 根据主键进行查找


    根据主键进行查找
  • 根据主键进行删除


    根据主键进行删除
  • 添加


    添加
  • 修改


    image.png

相关文章

  • SpringBoot+MyBatis+Swagger2整合进行增

    前言:本片文章采用的是SpringBoot+Mybatis+Swagger2,目的是使用Mybatis完成增删改查...

  • iOS-SQLite数据库总结

    数据库存在的意义就是对数据进行整合和管理,即对数据进行增,删,改,查的操作。 1.创建表的格式为 create t...

  • java(4-运算符)

    自增自减运算符 前缀自增自减法(++a,--a): 先进行自增或者自减运算,再进行表达式运算。后缀自增自减法(a+...

  • 1.5项目经理的角色

    项目经理负责对横跨多个职能线的活动进行协调和整合。 由项目经理进行的整合工作包括: 整合制定项目计划所需的活动。 ...

  • Java运算符

    前缀自增自减法(++a,--a):先进行自增或者自减运算,再进行表达式运算。 后缀自增自减法(a++,a--):先...

  • java ee开发常用模板代码

    spring+springmvc+hibernate整合过程中底层通用的dao和daoImpl (主要实现的功能增...

  • [java]48、SSM整合

    1、概念 所谓的SSM整合即前面学的Spring、SpringMVC、MyBatis对其进行的整合 整合前存在的问...

  • 多个Spring boot 2.0.1 整合 JPA 自增失效,

    问题描述 整合 network、user、wechat、cent等模块后,用户ID 自增失效。 关键代码及问题重现...

  • SSM三大框架整合

    框架整合思路 springmvc+mybaits的系统架构 spring将各层进行整合 通过spring管理持久层...

  • SSM三大框架整合

    框架整合思路 springmvc+mybaits的系统架构 spring将各层进行整合 通过spring管理持久层...

网友评论

    本文标题:SpringBoot+MyBatis+Swagger2整合进行增

    本文链接:https://www.haomeiwen.com/subject/ufpddhtx.html