写在开始:一个搬砖程序员的随缘记录
上篇记录了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