当前位置: 首页 > wzjs >正文

模板建站百汇游戏网站开发商

模板建站,百汇游戏网站开发商,青岛网站制作开发,国家工程建设标准化协会网站【MyBatisPlus】MyBatisPlus介绍与使用 文章目录 【MyBatisPlus】MyBatisPlus介绍与使用 1、什么MyBatisPlus2、MyBatisPlus的CRUD操作3、MyBatisPlus分页使用 1、什么MyBatisPlus MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具&…
【MyBatisPlus】MyBatisPlus介绍与使用

文章目录
      • 【MyBatisPlus】MyBatisPlus介绍与使用
        • 1、什么MyBatisPlus
        • 2、MyBatisPlus的CRUD操作
        • 3、MyBatisPlus分页使用
1、什么MyBatisPlus

MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率

  • 官网:https://baomidou.com/

MyBatisPlus特性:

  • 无侵入:只做增强不做改变,不会对现有工程产生影响
  • 强大的 CRUD 操作:内置通用 Mapper,少量配置即可实现单表CRUD 操作(如果只做单表增删查改不需要你写任何的sql)
  • 支持 Lambda:编写查询条件无需担心字段写错
  • 支持主键自动生成
  • 内置分页插件
  • ……

常见的开发方式:

  • 基于MyBatis使用MyBatisPlus
  • 基于Spring使用MyBatisPlus
  • 基于SpringBoot使用MyBatisPlus
2、MyBatisPlus的CRUD操作

使用mybatisplus的步骤

1. 导入mp的启动器
2. 编写application.yml文件,配置数据源,打印日志
3. 编写mapper接口,Mapper接口需要基础BaseMapper接口,BaseMapper接口需要指定操作的是哪个实体类。
4. 在启动类中扫描的Mapper包
5. 测试使用

正如官网所言:mybatis-plus在mybatis的基础上只做增强不做改变,因此只需把mybatis的依赖换成mybatis-plus的依赖

      <!-- mybatis-plus的驱动包 -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>
</dependency>

**注意:**这是mybatis-plus依赖,真正使用起来肯定是根据项目添加,如:mysql驱动、lombok等。

编写application.yml文件,配置数据源

mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: true

编写mapper接口,Mapper接口需要基础BaseMapper接口,BaseMapper接口需要指定操作的是哪个实体类。

public interface UserMapper extends BaseMapper<User> { //这里操作的是User这个实体类}

mybatis-plus为我们提供了一些标准数据层的CRUD功能,这些功能省去了我们自定义接口,也与我们自定义接口有部分差异,如下表:

功能

自定义接口

MP接口

新增

boolean save(T t)

int insert(T t)

删除

boolean delete(int id)

int deleteById(Serializable id)

修改

boolean update(T t)

int updateById(T t)

根据id查询

T getById(int id)

T selectById(Serializable id)

查询全部

List getAll()

List selectList()

分页查询

PageInfo getAll(int page, int size)

IPage selectPage(IPage page)

按条件查询

List getAll(Condition condition)

IPage selectPage(Wrapper queryWrapper)

新增

    /*** 增加*/@Testpublic void testInsert(){User user = new User();user.setName("小林");user.setGender("男");user.setPassword("root");user.setAge(19);user.setTel("18000110011");userMapper.insert(user);}

删除

    /*** 删除*/@Testpublic void testRemove(){userMapper.deleteById(1480751909521403906L);}

更新

    /*** 更新*/@Testpublic void testUpdate(){User user =new User();user.setId(7L);user.setName("张小炮");  //注意: 生成update语句设置的字段为非空字段。userMapper.updateById(user); //update user set xx=xx ,xxx=xx ,xx=xx where id =xx}

查询全部

    @Testpublic void testUserList(){List<User> users = userMapper.selectList(null);for (User user : users) {System.out.println(user);}}

条件查询

    /*** 条件查询*/@Testpublic void testFindByCondition(){//QueryWrapper代表就是条件QueryWrapper<User> queryWrapper  = new QueryWrapper<>();//添加条件//queryWrapper.lt()  greater than 小于//queryWrapper.le()  greater equal 小于等于//queryWrapper.ge()  greater equal 大于等于//queryWrapper.eq()  equal 等于//queryWrapper.gt()  greater than 大于queryWrapper.gt("age",18);List<User> userList = userMapper.selectList(queryWrapper);System.out.println("用户列表:"+ userList);}
3、MyBatisPlus分页使用

功能

MP接口

分页查询

IPage selectPage(IPage page)

如果需要使用到mybatis-plus的分页功能,必须存在一个配置类该配置类创建Mybatis的拦截器,这个拦截器的作用就是在你执行selectPage的方法的时候对sql进行拦截,然后拼接limit语句实现分页。

设置分页拦截器作为Spring管理的bean

  1. 在config包下创建一个配置类:MybatisPlusConfig

  2. 在类上添加@Configuration

  3. 编写方法

    1. 方法上使用@Bean注解:添加MybatisPlusInterceptor对象到容器中
    2. 创建MybatisPlusInterceptor拦截器对象
    3. 添加内部分页拦截器:创建PaginationInnerInterceptor

    @Configuration
    public class MybatisPlusInterceptorConfig {

    /*** 创建MybatisPlusInterceptor拦截器封装里面分页拦截器PaginationInnerInterceptor* 作用:实现对mp内置分页方法拦截增强,实现分页2条sql语句原理* @return*/
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());return mybatisPlusInterceptor;
    }
    

    }

在测试类中执行分页查询

  1. 创建分页对象,前面是接口IPage,后面是实现类Page(第几页,每页大小)

  2. 调用selectPage方法,传入page对象,无需接收返回值

  3. 获取分页结果

    @Test
    public void testPage(){//查询第一页,每页3条数据//1、创建Page对象,构造函数传入当前页码和每页显示多少条数据Page<User> page = new Page<>(1, 3); //当前页1  页面大小是3//2、执行selectPage方法page = userMapper.selectPage(page,null);//3、获取分页数据System.out.println("总条数:" + page.getTotal());List<User> records = page.getRecords();for (User record : records) {System.out.println(record);}//4、获取当前页System.out.println("当前页:" + page.getCurrent());System.out.println("每页大小:" + page.getSize());
    }
    
http://www.dtcms.com/wzjs/790623.html

相关文章:

  • 无锡抖音代运营公司合肥专业网站优化
  • 盐城网站开发代理咨询网站空间控制面板
  • 网站注册地址苏州seo排名外包
  • 免费推广网站途径有哪些集团公司简介模板
  • 河北衡水建设网站公司中英网站怎么做
  • 深圳商城手机网站建设微商做图王官方网站
  • 免费可商用素材网站comsenzexp wordpress
  • 网站推广员招聘泉州哪家网站建设公司好
  • 临高网站建设科威网络做网站怎么样
  • 开发一个网站的步骤怎么用PS做珠宝网站
  • 门户网站 移动端网站的类型有哪些
  • 网站建设合作关于网站建设的大学
  • 辽宁建设培训网站微信公众号 链接微网站
  • 网站哪个做的好设计一个电商网站的首页
  • 怎么做兼职类网站吗做公司网站麻烦吗
  • 中国建设信用卡网站首页汕头网络推广哪里好
  • 泊头做网站的公司my77731免费域名查询
  • 模板下载网站什么好企业查询宝下载
  • 网站标签设计黄页网页的推广
  • 网络股权设计培训课程网站优化推广是什么
  • 潍坊市住房和城乡建设局网站下载北京造价信息网官网
  • 一个公司做两个网站的多吗企业网站 源代码
  • asp 网站源码珠宝网站开发目的
  • 商务网站建设与维护 试题全球设计师网
  • 天威虎建设集团官方网站苏州做网站好的
  • 深圳网站建设工作室开发网站申请
  • wordpress 分享 网站用jsp做校园网站
  • 网站不做301可以吗有没有做美食的视频网站
  • 公司网站建设的目的乐云seo网站建设性价比高
  • 网站开发需求报告电子商务网站前台建设常用的技术有