SpringBoot+Mybatis实战使用

写在开始:一个搬砖程序员的随缘记录

上篇记录了SpringBoot+Mybatis整合
链接:从零开始,SpringBoot+Mybatis整合详细步骤
目录结构
在这里插入图片描述

这篇文章来具体写下SpringBoot+Mybatisd的具体实战使用

楼上链接文章用mybatis的generator生成文件生成满足基本需求的单表增删改查,可以满足日常使用,像一些需求复杂的,需要关联表查询的一些操作需要去mapper类下手写sql,下面给出增删改查实例,上代码

controller

package com.cn.mybatis.controller;

import com.cn.mybatis.entity.TbUserDat;
import com.cn.mybatis.service.MybatisService;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 下面的都是根据请求方式进行区分不同的操作
 * @Author: demo
 * @Date: 2020-05-19 14:54
 */
@RestController
public class MybatisController {
    @Autowired
    private MybatisService mybatisService;

    /**
     * 分页查询用户列表
     *
     * @param pageNum
     * @param pageSize
     * @return 用户列表List
     * */
    @GetMapping("/user")
    public PageInfo<TbUserDat> getUserList(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) {
        if (pageNum == null) {
            pageNum = 1;
        }
        if (pageSize == null) {
            pageSize = 10;
        }
        return mybatisService.getUserList(pageNum, pageSize);
    }

    /**
     * 根据用户id查询用户信息
     *
     * @param id
     * @return 用户信息
     */
    @GetMapping("/user/{id}")
    public TbUserDat getUserByid(@PathVariable("id") Integer id) {
        return mybatisService.getUserByid(id);
    }

    /**
     * 新增用户
     *
     * @Validated 注解是用来校验必填字段
     * @param tbUserDat
     * @return 用户id
     * */
    @PostMapping("/user")
    public int addUser(@RequestBody TbUserDat tbUserDat) {
        return mybatisService.addUser(tbUserDat);
    }

    /**
     * 修改用户
     *
     * @param tbUserDat
     * @return 用户id
     * */
    @PatchMapping("/user")
    public int updateUser(@RequestBody TbUserDat tbUserDat) {
        return mybatisService.updateUser(tbUserDat);
    }
}

service

package com.cn.mybatis.service;

import com.cn.mybatis.entity.TbUserDat;
import com.github.pagehelper.PageInfo;

/**
 * @Author: demo
 * @Date: 2020-05-19 14:53
 */
public interface MybatisService {
    /**
     * 分页查询用户列表
     *
     * @param pageNum
     * @param pageSize
     * @return 用户列表List
     * */
    PageInfo<TbUserDat> getUserList(int pageNum, int pageSize);

    /**
     * 根据用户id查询用户信息
     *
     * @param id
     * @return 用户信息
     * */
    TbUserDat getUserByid(Integer id);

    /**
     * 新增用户
     *
     * @param tbUserDat
     * @return 用户id
     * */
    int addUser(TbUserDat tbUserDat);

    /**
     * 修改用户
     *
     * @param tbUserDat
     * @return 用户id
     * */
    int updateUser(TbUserDat tbUserDat);
}

service实现类serviceImpl

package com.cn.mybatis.service.impl;

import com.cn.mybatis.entity.TbUserDat;
import com.cn.mybatis.entity.TbUserDatExample;
import com.cn.mybatis.mapper.TbUserDatMapper;
import com.cn.mybatis.service.MybatisService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * @Author: demo
 * @Date: 2020-05-19 14:54
 */
@Service
public class MybatisServiceImpl implements MybatisService {
    @Autowired
    private TbUserDatMapper tbUserDatMapper;

    @Override
    public PageInfo<TbUserDat> getUserList(int pageNum, int pageSize) {
        //分页
        PageHelper.startPage(pageNum, pageSize);
        //构造查询条件,现在构造的是查询is_delete字段为0的数据,其他的可以自己看了试一下,方便简单的查询
        TbUserDatExample example = new TbUserDatExample();
        example.createCriteria().andIsDeleteEqualTo(false);
        List<TbUserDat> tbUserdataList = tbUserDatMapper.selectByExample(example);
        PageInfo<TbUserDat> pageInfo = new PageInfo<>(tbUserdataList);
        return pageInfo;
    }

    @Override
    public TbUserDat getUserByid(Integer id) {
        //根据用户id查询用户信息
        //两种方式
        //第一种
        TbUserDat tbUserDat = tbUserDatMapper.selectByPrimaryKey(id);

        //第二种,适合带条件的查询,这里写出来只是方便了解
        TbUserDatExample example = new TbUserDatExample();
        example.createCriteria().andIdEqualTo(id).andIsDeleteEqualTo(false);

        List<TbUserDat> tbUserdataList = tbUserDatMapper.selectByExample(example);
        if (tbUserdataList.size() > 0) {
            return tbUserdataList.get(0);
        }
        return tbUserDat;
    }

    @Override
    public int addUser(TbUserDat tbUserDat) {
        tbUserDat.setCreateTime(new Date());
        tbUserDat.setUpdateTime(new Date());
        //两种方式
        //第一种,这是一种替换的方式,如果传过来的参数是空的话会把默认值也覆盖成null
        tbUserDatMapper.insert(tbUserDat);

        //第二种,这种方式回去校验传过来的参数是否为空,为空的就不会进行覆盖(建议这种方式)
        tbUserDatMapper.insertSelective(tbUserDat);
        return 0;
    }

    @Override
    public int updateUser(TbUserDat tbUserDat) {
        tbUserDat.setUpdateTime(new Date());
        if (tbUserDat.getId() == null) {
            return -1;
        }
        //两种方式
        //第一种,根据条件进行修改
        TbUserDatExample example = new TbUserDatExample();
        example.createCriteria().andIdEqualTo(tbUserDat.getId());

        tbUserDatMapper.updateByExampleSelective(tbUserDat, example);

        //第二种,根据id进行修改
        tbUserDatMapper.updateByPrimaryKeySelective(tbUserDat);
        return 0;
    }
}

Over

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值