基于springboot2+mybatis-plus+vue的增删改查

发布时间:2019-12-29
技术:springboot2+mybatis-plus+vue+element-ui

概述

springboot2+mybatis-plus+vue+element-ui , 功能完善,代码极简, 一行代码顶过去十行代码, 是学mybatis-plus的最好的demo, 是上手element-ui最精简教程。

详细

一、需求(要做什么)

基于现今最流行的技术实现增删改查demo, 便于初学者上手.   springboot2+mybatis-plus+vue+element-ui 

二、理论概述

springboot2: 后端框架中springboot无疑是首选,约定优于配置使代码极简, 现在最新的版本2.x.x。

mybatis-plus: 大拿基于mybatis封装的框架,增删改查分页等功能已经封装好,dao。service层基本可以不写代码。

vue+element-ui : 前端用element-ui美观大方,代码更是一行顶过去十行, 更少的代码完成更多的事情。

三、代码分析

分页的代码,参数传userDto,可以随意扩展查询条件

	@Override
	public IPage<User> selectPage(IPage<User> page, User userDto) {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        if(StringsUtils.hasText(userDto.getName())) {
        	String nameLike = StringPool.PERCENT+userDto.getName()+StringPool.PERCENT;
       	    wrapper.like("name", nameLike);
        }
        if(StringsUtils.hasText(userDto.getSex())) {
       	 wrapper.eq("sex", userDto.getSex());
        }
        if(null!=userDto.getStartDate()) {
          	 wrapper.gt("birthday", userDto.getStartDate());
        }
        if(null!=userDto.getEndDate()) {
          	 wrapper.lt("birthday", userDto.getEndDate());
        }
		IPage<User> pageResult = userDao.selectPage(page, wrapper);
		return pageResult;
	}

前端通过:rules 轻松实现form校验

            rules: {
                name: [
                  { required: true, message: '请输入您的姓名', trigger: 'blur' },
                  { min: 3, max: 5, message: '长度在 2 到 5 个字符', trigger: 'blur' }
                ],
                pwd: [
                    { required: true, message: '请输入您的密码', trigger: 'blur' },
                    { min: 6, max: 30, message: '长度在 6  到 30 个字符', trigger: 'blur' }
                ],
                age: [
                    { required: true, message: '请输入年龄', trigger: 'blur' },
                    { type: 'number', message: '请输入数字', trigger: 'blur' }
                ],
                sex: [
                    { required: true, message: '请选择性别', trigger: 'change' }
                ],
                birthday: [
                  { type: 'string', required: true, message: '请选择出生日期', trigger: 'change' }
                ],
            }


日期格式化轻松实现前后端日期格式转换

@Component
public class DateConverter implements Converter<String, Date> {
 
    private static final List<String> FORMATS = new ArrayList<>(4);
    
    static{
        FORMATS.add("yyyy-MM");
        FORMATS.add("yyyy-MM-dd");
        FORMATS.add("yyyy-MM-dd HH:mm");
        FORMATS.add("yyyy-MM-dd HH:mm:ss");
    }
 
    @Override
    public Date convert(String source) {
        String value = source.trim();
        if ("".equals(value)) {
            return null;
        }
        if(source.matches("^\\d{4}-\\d{1,2}$")){
            return parseDate(source, FORMATS.get(0));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2}$")){
            return parseDate(source, FORMATS.get(1));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}$")){
            return parseDate(source, FORMATS.get(2));
        }else if(source.matches("^\\d{4}-\\d{1,2}-\\d{1,2} {1}\\d{1,2}:\\d{1,2}:\\d{1,2}$")){
            return parseDate(source, FORMATS.get(3));
        }else {
            throw new IllegalArgumentException("Invalid date value '" + source + "'");
        }
    }
 
    /**
     * 格式化日期
     * @param dateStr String 字符型日期
     * @param format String 格式
     * @return Date 日期
     */
    public  Date parseDate(String dateStr, String format) {
        Date date=null;
        try {
            DateFormat dateFormat = new SimpleDateFormat(format);
            date = dateFormat.parse(dateStr);
        } catch (Exception e) {
        	 e.printStackTrace();
        }
        return date;
    }
 
}

四、项目文件结构截图

image.png

五、启动部署流程

  1. 首先 在mysql创建数据库mybatis_plus,  在数据库执行sqlj脚本: sql/mybatis_plus.sql.

  2. 然后用eclipse导入maven项目springboot2-mybatis-plus, 待maven依赖jar包加载完成后, 得到目录结构.

    image.png

  3. 右击DemoApplication --> run as -->Java Application, 启动成功后访问: http://localhost:8080

六、演示效果


image.png

增:

image.png

删:

image.png

改:

image.png

查:

image.png



本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
手机上随时阅读、收藏该文章 ?请扫下方二维码