SpringBoot集成MybatisPlus

5 篇文章 0 订阅
2 篇文章 0 订阅

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官网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在SpringBoot集成MybatisPlus需要完成以下步骤: 1. 添加依赖:在项目的pom.xml文件中添加MybatisPlus和Mybatis的依赖。 2. 配置数据源:在application.properties或application.yml文件中配置数据库连接信息和MybatisPlus的相关配置信息,比如Mapper映射文件的路径等。 3. 创建Mapper接口:定义一个Mapper接口,继承MybatisPlus提供的BaseMapper接口,并添加相应的注解。 4. 创建实体类:创建与数据库表对应的实体类,并使用注解来映射实体类属性和数据库表字段。 5. 编写业务代码:在Service层中编写相应的业务代码,包括调用Mapper接口中的方法来完成对数据库的操作。 6. 测试:编写测试代码来测试上述功能是否正常运行。 以上就是SpringBoot集成MybatisPlus的基本步骤,希望能对您有所帮助。 ### 回答2: Spring Boot集成MyBatis Plus是一种常见的组合方式,可以快速、简单地进行Java开发。下面我会简单介绍一下集成的步骤和优势。 首先,为了集成Spring Boot和MyBatis Plus,我们需要在pom.xml中添加相关依赖。这些依赖将负责将 MyBatis Plus 和 Spring Boot 连接起来。然后,我们需要在配置文件中配置数据库连接信息和MyBatis Plus的一些参数。 接下来,我们可以开始编写我们的实体类和Mapper接口。MyBatis Plus提供了很多方便的注解和接口,可以省去我们编写大量的CRUD操作代码。例如,使用@TableName注解来指定表名,使用@Mapper注解来标识Mapper接口等。 然后,我们可以在Service类中使用MyBatis Plus提供的方法来进行数据操作。例如,使用getById()方法来根据主键查询数据,使用insert()方法来插入数据等。MyBatis Plus还提供了更多的方法和条件查询的支持,可以根据具体的业务需求选择合适的方法来使用。 最后,可以使用Spring Boot提供的Web框架来暴露我们的接口,并进行测试和使用。可以使用Postman等工具来发送HTTP请求,验证我们的接口是否正常工作。 通过集成Spring Boot和MyBatis Plus,我们可以大大提高开发效率和代码质量。MyBatis Plus提供了许多便捷的功能,可以简化我们的开发过程,减少编码工作量。而Spring Boot则提供了一种快速、简单的开发框架,可以帮助我们更好地构建和管理我们的项目。 总结一下,Spring Boot集成MyBatis Plus是一种常用且优秀的开发方式。它可以帮助我们快速搭建项目、简化开发流程,同时提供了很多便捷的功能和工具,可以提高我们的开发效率和代码质量。希望这些信息对你有所帮助! ### 回答3: Spring Boot为我们提供了很多便利,可以简化我们的开发工作。MyBatis Plus是一个优秀的ORM框架,能够帮助我们更加轻松地操作数据库。 要在Spring Boot项目中集成MyBatis Plus,首先需要在pom.xml文件中添加相关的依赖。可以使用Maven或Gradle管理项目依赖,建议使用Maven。添加MyBatis Plus的依赖后,可以在项目中使用MyBatis Plus提供的各种功能,如分页查询、条件查询、条件更新等。 在Spring Boot中配置MyBatis Plus也非常简单。只需要在application.properties或application.yml文件中添加相应的配置项即可。配置项包括数据源信息、MyBatis Plus的配置信息等。在配置数据源信息时,可以使用Spring Boot提供的自动配置功能,根据配置文件中的相关配置自动创建数据源并注入到项目中。在配置MyBatis Plus信息时,可以自定义表名前缀、表名生成策略等。 在编写代码时,可以直接使用MyBatis Plus提供的各种查询方法,也可以使用自定义的SQL语句进行操作。MyBatis Plus还提供了实体类生成器工具,可以根据数据库表结构自动生成实体类,减少手动编写实体类的工作量。 总的来说,Spring Boot集成MyBatis Plus非常简单且方便。通过集成MyBatis Plus,我们可以更加轻松地操作数据库,提高开发效率。同时,MyBatis Plus在性能优化上也做了很多工作,对于大型系统的开发也有很好的支持。希望以上回答能够对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值