springboot整合mybatis-mile米乐体育
目录
- 一、mybatis-plus简介:
- 二、springboot整合mybatis-plus案例
一、mybatis-plus简介:
mybatis-plus(简称mp)是一个 mybatis 的增强工具,在 mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。这是官方给的定义,关于mybatis-plus的更多介绍及特性,可以参考mybatis-plus米乐app官网登录官网。那么它是怎么增强的呢?其实就是它已经封装好了一些crud方法,我们不需要再写xml了,直接调用这些方法就行,就类似于jpa。并且3.x系列支持lambda语法,让我在写条件构造的时候少了很多的"魔法值",从代码结构上更简洁了.
二、springboot整合mybatis-plus案例
pom.xml配置
application.yml配置
server: port: 10100 # 配置启动端口号 mybatis: config-location: classpath:mybatis.cfg.xml # mybatis主配置文件所在路径 type-aliases-package: com.demo.drools.entity # 定义所有操作类的别名所在包 mapper-locations: # 所有的mapper映射文件 - classpath:mapper/*.xml spring: #springboot的配置 datasource: #定义数据源 #127.0.0.1为本机测试的ip,3306是mysql的端口号。servertimezone是定义时区,照抄就好,mysql高版本需要定义这些东西 #usessl也是某些高版本mysql需要问有没有用ssl连接 url: jdbc:mysql://127.0.0.1:3306/test?servertimezone=gmt+8&usessl=false username: root #数据库用户名,root为管理员 password: 123456 #该数据库用户的密码 # 使用druid数据源 type: com.alibaba.druid.pool.druiddatasource # mybatis-plus相关配置 mybatis-plus: # xml扫描,多个目录用逗号或者分号分隔(告诉 mapper 所对应的 xml 文件位置) mapper-locations: classpath:mapper/*.xml # 以下配置均有默认值,可以不设置 global-config: db-config: #主键类型 auto:"数据库id自增" input:"用户输入id",id_worker:"全局唯一id (数字类型唯一id)", uuid:"全局唯一id uuid"; id-type: auto #字段策略 ignored:"忽略判断" not_null:"非 null 判断") not_empty:"非空判断" field-strategy: not_empty #数据库类型 db-type: mysql configuration: # 是否开启自动驼峰命名规则映射:从数据库列名到java属性驼峰命名的类似映射 map-underscore-to-camel-case: true # 如果查询结果中包含空值的列,则 mybatis 在映射的时候,不会映射这个字段 call-setters-on-nulls: true # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用 log-impl: org.apache.ibatis.logging.stdout.stdoutimpl
用户信息实体
package com.demo.drools.entity; import com.baomidou.mybatisplus.annotation.idtype; import com.baomidou.mybatisplus.annotation.tableid; import com.baomidou.mybatisplus.annotation.tablename; import lombok.data; /** * todo your comment * * @author yujiaqi * @date 2020/12/2 19:14 */ @data @tablename("user_info")//@tablename中的值对应着表名 public class userinfoentity { /** * 主键 * @tableid中可以决定主键的类型,不写会采取默认值,默认值可以在yml中配置 * auto: 数据库id自增 * input: 用户输入id * id_worker: 全局唯一id,long类型的主键 * id_worker_str: 字符串全局唯一id * uuid: 全局唯一id,uuid类型的主键 * none: 该类型为未设置主键类型 */ @tableid(type = idtype.auto) private long id; /** * 姓名 */ private string name; /** * 年龄 */ private integer age; /** * 技能 */ private string skill; /** * 评价 */ private string evaluate; /** * 分数 */ private long fraction; }
config类
package com.demo.drools.config; import com.baomidou.mybatisplus.extension.plugins.paginationinterceptor; import com.baomidou.mybatisplus.extension.plugins.performanceinterceptor; import org.springframework.context.annotation.bean; /** * todo your comment * * @author yujiaqi * @date 2020/12/2 19:14 */ public class mybatisplusconfig { /** * mybatis-plus sql执行效率插件【生产环境可以关闭】 */ @bean public performanceinterceptor performanceinterceptor() { return new performanceinterceptor(); } /** * 分页插件 */ @bean public paginationinterceptor paginationinterceptor() { return new paginationinterceptor(); } }
spring boot启动类
package com.demo.drools; import org.mybatis.spring.annotation.mapperscan; import org.springframework.boot.springapplication; import org.springframework.boot.autoconfigure.springbootapplication; /** * @author 于嘉琪 */ @springbootapplication //@mapperscan和dao层添加@mapper注解意思一样 @mapperscan(basepackages = "com.demo.drools.dao") public class droolsapplication { public static void main(string[] args) { springapplication.run(droolsapplication.class, args); } }
dao层
package com.demo.drools.dao; import com.baomidou.mybatisplus.core.mapper.basemapper; import com.baomidou.mybatisplus.core.metadata.ipage; import com.demo.drools.entity.userinfoentity; import org.apache.ibatis.annotations.mapper; import org.apache.ibatis.annotations.param; /** * 用户信息dao * * @author yujiaqi * @date 2020/12/2 19:16 */ @mapper public interface userinfodao extends basemapper
service层
package com.demo.drools.service; import com.baomidou.mybatisplus.core.metadata.ipage; import com.baomidou.mybatisplus.extension.service.iservice; import com.demo.drools.entity.userinfoentity; /** * todo your comment * * @author yujiaqi * @date 2020/12/2 19:17 */ public interface userinfoservice extends iservice
serviceimpl实现类层
package com.demo.drools.service.impl; import com.baomidou.mybatisplus.core.metadata.ipage; import com.baomidou.mybatisplus.extension.service.impl.serviceimpl; import com.demo.drools.dao.userinfodao; import com.demo.drools.entity.userinfoentity; import com.demo.drools.service.userinfoservice; import org.springframework.stereotype.service; import javax.annotation.resource; /** * todo your comment * * @author yujiaqi * @date 2020/12/2 19:18 */ @service public class userinfoserivceimpl extends serviceimpl
controller控制层
package com.demo.drools.controller; import com.baomidou.mybatisplus.core.metadata.ipage; import com.baomidou.mybatisplus.extension.plugins.pagination.page; import com.demo.drools.entity.userinfoentity; import com.demo.drools.service.userinfoservice; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.restcontroller; import java.util.arraylist; import java.util.collection; import java.util.hashmap; import java.util.list; import java.util.map; /** * todo your comment * * @author yujiaqi * @date 2020/12/2 19:20 */ @restcontroller @requestmapping("/userinfo") public class userinfocontroller { @autowired private userinfoservice userinfoservice; /** * 根据id获取用户信息 * @author sans * @createtime 2019/6/8 16:34 * @param userid 用户id * @return userinfoentity 用户实体 */ @requestmapping("/getinfo") public userinfoentity getinfo(string userid){ userinfoentity userinfoentity = userinfoservice.getbyid(userid); return userinfoentity; } /** * 查询全部信息 * @author sans * @createtime 2019/6/8 16:35 * @param userid 用户id * @return list
controller层用到lambda语法
package com.demo.drools.controller; import com.baomidou.mybatisplus.core.conditions.query.querywrapper; import com.baomidou.mybatisplus.core.metadata.ipage; import com.baomidou.mybatisplus.extension.plugins.pagination.page; import com.demo.drools.entity.userinfoentity; import com.demo.drools.service.userinfoservice; import org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.requestmapping; import java.util.hashmap; import java.util.list; import java.util.map; /** * todo your comment * * @author yujiaqi * @date 2020/12/2 19:28 */ public class userinfopluscontroller { @autowired private userinfoservice userinfoservice; /** * mp扩展演示 * @author sans * @createtime 2019/6/8 16:37 * @return map
以上就是mybatis-plus的小案例,mybatis-plus它像我之前使用的spring data jpa框架不用写sql语句,就可以实现简单的增删改查、批量操作、分页mybatis-plus功能还是比较强大,能减少我们写很多代码,我个人还是比较喜欢用这个mybatis-plus的
mybatis-plus只是mybatis的增强版,它不影响mybatis的使用,我们可以写我们自定的方法以及sql,接下来我们看一个小案例
dao层新增方法
/** * 查询大于该分数的学生 * @author sans * @createtime 2019/6/9 14:28 * @param page 分页参数 * @param fraction 分数 * @return ipage
service新增方法
/** * 查询大于该分数的学生 * @author sans * @createtime 2019/6/9 14:27 * @param page 分页参数 * @param fraction 分数 * @return ipage
serviceimpl层新增方法
/** * 查询大于该分数的学生 * @author sans * @createtime 2019/6/9 14:27 * @param page 分页参数 * @param fraction 分数 * @return ipage
controller层新增方法
/** * mp自定义sql * @author sans * @createtime 2019/6/9 14:37 * @return ipage
配置我们的mybatis的xml
以上配置就是我们的mybatis用法。
mybatis plus强大的条件构造器querywrapper、updatewrapper
1.querywrapper: entity 对象封装操作类
2.updatewrapper: update 条件封装,用于entity对象更新操作
3.条件构造器使用中的各个方法格式和说明
到此这篇关于springboot整合mybatis-plus的具体使用的文章就介绍到这了,更多相关springboot整合mybatis-plus 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!