SpringBoot集成MybatisPlus

springBoot启动程序

    package cn.ps;
  
    import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    //集成了Controller和ResponseBody
    @RestController
    @SpringBootApplication
    public class SpringBootStart {
    //SpringBoot集成mybatisPlus无分页,需加此函数
        @Bean
        public PaginationInterceptor paginationInterceptor() {
            PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
            return paginationInterceptor;
        }
        //运行测试
        @GetMapping("/")
        public String test(){
            return "好人一生平安";
        }
  //注:运行项目只需启动springBoot,只扫描该类所在包及子类,无xml文件,配置文件只有一个application.properties
         public static void main(String[] args) throws Exception {
            SpringApplication.run(SpringBootStart.class, args);
         }
    }

Controller层

package cn.ps.contro;

import java.sql.SQLException;
import javax.validation.Valid;
import cn.ps.bean.Result;
import cn.ps.bean.UserBean;
import cn.ps.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.ui.Model;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.*;

@RestController
@SpringBootApplication
public class UserContoller {

	@Autowired
	UserService us;
	//返回自定义Result类,返回json字符串,初始化及条件查询函数
	@GetMapping(value="userServlet")
	public Result userList(UserBean userBean, String page, String limit) throws SQLException {
		return us.queryUser(userBean,page,limit);
	}

	//springboot继承了get|post|put|delete+Mapping四个方法注解
	@PostMapping(value="addUser")
	public Result addUser(UserBean userBean) {
		Result r=new Result();
		try {
			us.addUser(userBean);
		}catch (Exception e){
			r.setCode(1);
			r.setMsg("新增出错"+e.getMessage());
		}
		return r;
	}

	//Rest风格路径参数获取用@PathVariable,若名字不同,则需定义名字@PathVariable("key")
	@DeleteMapping(value="delUser/{userId}")
	public Result delUser(@PathVariable String userId){
		Result r=new Result();
		try {
			us.delUser(userId);
		}catch (Exception e){
			r.setCode(1);
			r.setMsg("删除出错"+e.getMessage());
		}
		return r;
	}

	@PutMapping(value="updateUser/{userId}")
	public Result updateUser(@PathVariable String userId,@Valid UserBean userBean, Errors er, Model mod){
		Result r=new Result();
		try {
			us.updateUser(userBean,userId);
		}catch (Exception e){
			r.setCode(1);
			r.setMsg("修改出错"+e.getMessage());
		}
		return r;
	}
}

Service层

package cn.ps.service.ServImpl;

import cn.ps.bean.Result;
import cn.ps.bean.UserBean;
import cn.ps.mapper.UserMapper;
import cn.ps.service.UserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.sql.SQLException;

@Service
public class UserServiceImpl implements UserService {
	@Autowired
	private UserMapper userMapp;

	@Override
	public Result queryUser(UserBean userBean, String curPage, String pageOfNum) throws SQLException {
		int curPageIn=StringUtils.isNotEmpty(curPage)&& !"0".equals(curPage) ? Integer.parseInt(curPage) : 1;
		int pageOfNumIn= StringUtils.isNotEmpty(pageOfNum) ? Integer.parseInt(pageOfNum) : 10;

		//查询方法使用该对象
		QueryWrapper<UserBean> qw=new QueryWrapper<>();

		//QueryWrapper类中封装的方法like,eq,and,gt... ,
		// isNotEmpty方法返回false则该sql忽略本条件查询
		qw.like(StringUtils.isNotEmpty(userBean.getUserName()),"userName", userBean.getUserName());
		qw.eq(StringUtils.isNotEmpty(userBean.getUserAge()),"userAge",userBean.getUserAge());
		//从IPage中获取结果集参数
		IPage<UserBean> ipage=userMapp.selectPage(new Page<>(curPageIn,pageOfNumIn),qw);
		
		Result r=new Result();
		r.setCode(0);
		r.setCount((int)ipage.getTotal());
		r.setData(ipage.getRecords());
		return r;
	}
	//增删改都是Mapper继承的父类BaseMapper中的方法,可带条件
	@Override
	public void addUser(UserBean userBean) {
		userMapp.insert(userBean);
	}

	@Override
	public void delUser(String userId) {
		userMapp.deleteById(userId);
	}
	//属性类已定义主键userId,自动设为修改条件
	@Override
	public void updateUser(UserBean userBean,String userId) {
		userMapp.updateById(userBean);
	}
}

mapper 接口

package cn.ps.mapper;

import cn.ps.bean.UserBean;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

//mybatisPlus 单表sql全部省略
@Mapper
public interface UserMapper extends BaseMapper<UserBean> {
	
}

Result查询结果容器

package cn.ps.bean;

import java.util.List;

public class Result {
	 //标记是否有错误,异常信息
     private int code;
     
     //返回错误信息内容
     private  String msg;
     
     //数据总条数
     private  int count;
     
     //查询的数据容器
     private  List data;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public List getData() {
        return data;
    }

    public void setData(List data) {
        this.data = data;
    }
}

属性类

package cn.ps.bean;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import org.hibernate.validator.constraints.Range;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

//标记要查询到表名,类名与表面同名可省略
@TableName("users")
public class UserBean {
	//标记userId为主键
	@TableId(type=IdType.AUTO,value="userId")
	private String userId;

	//有驼峰名字都需要加 TableField 注解,否则找不到字段
	@TableField("userAge")
	@Range(min=0,max=150,message = "年龄不合法")
	private String userAge;
	
	@Pattern(regexp="男|女",message = "性别类型错误")
	private String sex;
	
	@NotBlank(message = "用户名不能为空")
	@TableField("userName")
	private String  userName;
	
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserAge() {
		return userAge;
	}

	public void setUserAge(String userAge) {
		this.userAge = userAge;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "UserBean [userId=" + userId + ", userAge=" + userAge + ", sex=" + sex + ", userName=" + userName + "]";
	}
	
	
}

页面信息

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>userList</title>
    <link rel="stylesheet" href="layui/css/layui.css" />
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript" src="layui/layui.js"></script>
    <script type="text/javascript">
        layui.use('form', function() {
            var form=layui.form;
            form.on('submit(myForm)', function (data) {
                data.field.page=1;
                layui.table.reload("userTable",{
                    url:"userServlet",
                    where:data.field
                })
                return false;
            });
            form.on('submit(addForm)', function (data) {
                $.ajax({
                    url:"addUser",
                    dataType:"json",
                    data:data.field,
                    type:'post',
                    success:function (da) {
                        if (da.code==0){
                            alert("新增成功");
                            layer.close(addWindow);
                            layui.table.reload("userTable",{
                                url:"userServlet"
                            })
                        } else{
                            alert(da.msg);
                        }
                    }
                })
                return false;
            });
            form.on('submit(updaForm)', function (data) {
                data.field["_method"]="put";
                $.ajax({
                    url:"updateUser/"+data.field.userId,
                    dataType:"json",
                    data:data.field,
                    type:'post',
                    success:function (da) {
                        if (da.code==0){
                            alert("修改成功");
                            layer.close(addWindow);
                            layui.table.reload("userTable",{
                                url:"userServlet"
                            })
                        } else{
                            alert(da.msg);
                        }
                    }
                })
                return false;
            });
        });
        layui.use('table', function() {
            var table = layui.table;
            table.render({
                elem: '#userTable'
                , height: 465
                , width:'100%'
                , url: 'userServlet' //数据接口
                , page: true //开启分页
                , cols: [[ //表头
                    {field: 'userId', title: '编号', width: 200, sort: true, fixed: 'left'}
                    , {field: 'userName', title: '姓名', width: 200}
                    , {field: 'sex', title: '性别', width: 200, sort: true}
                    , {field: 'userAge', title: '年龄', width: 200}
                    , {field: 'aa', title: '操作', width: 200 ,sort:true, templet:function (d) {
                            return "<input type='button' onclick='toDelete("+d.userId+")' class='inline-block layui-btn' value='删除'>" +
                                "<input type='button' onclick='toUpdate()' datas='"+JSON.stringify(d)+"' class='inline-block layui-btn' value='修改'>";
                        }}
                ]]
            });
        });
        var addWindow=null;
        function  toAdd(){
            layui.use('layer', function(){
                addWindow=layer.open({
                    type: 1,
                    area:['400px','350px'],
                    content:$("#addForm")
                });
            });
        }

        function toUpdate(){
            var obj=JSON.parse(event.srcElement.getAttribute("datas"));
            layui.use('layer', function(){
                addWindow=layer.open({
                    type: 1,
                    area:['400px','350px'],
                    content:$("#updaForm")
                });
            });
            layui.form.val('updaForm', obj);
        }
        function toDelete(userId) {
            $.ajax({
                url:"delUser/"+userId,
                dataType:"json",
                data:{"_method":"delete"},
                type:'post',
                success:function (da) {
                    if (da.code==0){
                        alert("删除成功");
                        layui.table.reload("userTable",{
                            url:"userServlet"
                        })
                    } else{
                        alert(da.msg);
                    }
                }
            })
        }
    </script>
    <style type="text/css" >
        .widthe{
            width:300px;
        }
        .margin-top{
            margin:20px 0 0 0;
        }
        .inline-block{
            display: inline-block;
            line-height: 30px;
        }
        .alert-input-style{
            margin: 15px 5px;
            width: 220px;
        }
    </style>
</head>
<body>
    <form class="layui-form" action="userServlet" id="myForm">
     <div class="layui-form-item margin-top">
        <label class="layui-form-label">查询姓名</label>
        <div class="layui-input-block">
            <input type="text" name="userName"  placeholder="请输入" autocomplete="off" class="inline-block layui-input widthe ">
            <button class="layui-btn inline-block" lay-submit lay-filter="myForm">查询</button>
            <a href="javascript:toAdd()" class="layui-btn">新增</a>
        </div>
    </div>
    </form>
    <table id="userTable" lay-filter="test"></table>
</body>
</html>

<form id="addForm" class="layui-form" style="display: none" >
     <div class="layui-form-item">
         <label class="layui-form-label">姓名</label>
         <div class="layui-input-block">
             <input type="text" name="userName" autocomplete="off" class="layui-input alert-input-style">
         </div>
     </div>
     <div class="layui-form-item">
         <label class="layui-form-label">年龄</label>
         <div class="layui-input-block">
             <input type="text" name="userAge" lay-verify="number" autocomplete="off" class="layui-input alert-input-style">
         </div>
     </div>
    <div class="layui-form-item">
        <label class="layui-form-label">性别</label>
        <div class="layui-input-block">
            <input type="radio" name="sex" value="0" title="" checked>
            <input type="radio" name="sex" value="1" title="" checked>
        </div>
    </div>
    <div class="layui-btn-group" >
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="addForm">保存</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>
<form id="updaForm"  lay-filter="updaForm" class="layui-form" style="display: none">
    <div class="layui-form-item">
        <label class="layui-form-label">编号</label>
        <div class="layui-input-block">
            <input type="text" name="userId" autocomplete="off" class="layui-input alert-input-style" id="userId" readonly>
        </div>
    </div>
     <div class="layui-form-item">
         <label class="layui-form-label">姓名</label>
         <div class="layui-input-block">
             <input type="text" name="userName" autocomplete="off" id="userName" class="layui-input alert-input-style">
         </div>
     </div>
     <div class="layui-form-item">
         <label class="layui-form-label">年龄</label>
         <div class="layui-input-block">
             <input type="text" name="userAge" lay-verify="number" id="userAge" autocomplete="off" class="layui-input alert-input-style">
         </div>
     </div>
    <div class="layui-form-item">
        <label class="layui-form-label">性别</label>
        <div class="layui-input-block">
            <input type="radio" name="sex" value="" title="" >
            <input type="radio" name="sex" value="" title="" >
        </div>
    </div>
    <div class="layui-btn-group" >
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="updaForm">保存</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>

</form>

spring.io spring官网
github.com 开源代码文库
runoob.com w3c教程
localhost:8080/druid/index.html springboot监控页面
http://druid.com druid官网
http://mp.baomidou.com mybatisplus官网

猜你喜欢

转载自blog.csdn.net/qq1073674233/article/details/84593629