好程序员java教程分享mybatisplus介绍

     2022-04-02     665

关键词:

好程序员Java教程分享MyBatis Plus介绍:1.MyBatis Plus 介绍

  MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

  

  MyBatis Plus 的核心功能有:支持通用的 CRUD、代码生成器与条件构造器。

  

  通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper<T> 接口即可获得通用的增删改查功能,无需编写任何接口方法与配置文件

  

  条件构造器:通过 EntityWrapper<T> (实体包装类),可以用于拼接 SQL 语句,并且支持排序、分组查询等复杂的 SQL

2.添加依赖

  <dependency>

                    <groupId>com.baomidou</groupId>

                    <artifactId>mybatis-plus</artifactId>

                    <version>2.3</version>

            </dependency>

3.配置

<!-- MP 提供的 MybatisSqlSessionFactoryBean -->

    <bean id="sqlSessionFactoryBean"

            class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">

            <!-- 数据源 -->

            <property name="dataSource" ref="dataSource"/>

            <!-- 别名处理 -->

            <property name="typeAliasesPackage" value="com.qf.entity"/>

            <!-- 插件注册 -->

            <property name="plugins">

                    <list>

<!-- 注册分页插件 -->

                            <bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor" />

                    </list>

            </property>

    </bean>

4.Dao层

public interface IUserDao extends BaseMapper<User> {

}

5.实体类

@Data

@TableName(value="t_user")

public class User{

    @TableId(value="id",type=IdType.AUTO)

    private Integer id;

    @TableField(value="username")

    private String name;

    private Integer age;

    private String password;

    @TableField(exist=false)

    private Integer xxx;

}

6.常见注解

@TableField(exist = false):表示该属性不为数据库表字段,但又是必须使用的。

@TableField(exist = true):表示该属性为数据库表字段。

@TableName:数据库表相关

@TableId:表主键标识

@TableField:表字段标识

7.测试方法

  @Test

    public void testMybatisPlus(){

            System.out.println("selectById:"+userDao.selectById(4)); // 根据Id查询

            System.out.println("selectList:"+userDao.selectList(null)); // 查询全部

            com.baomidou.mybatisplus.plugins.Page<User> page = new com.baomidou.mybatisplus.plugins.Page<>();

            List<User> list = userDao.selectPage(page, null); // 分页查询

            page.setRecords(list); // 把结果封装到分页对象中

            System.out.println(page.getCurrent());

            System.out.println(page.getPages());

            System.out.println(page.getSize());

            System.out.println(page.getTotal());

            System.out.println(page.getRecords());

            EntityWrapper<User> entityWrapper = new EntityWrapper<>();

            entityWrapper.eq("id", 4);

            entityWrapper.or().like("username", "3");

            List<User> selectList = userDao.selectList(entityWrapper); // 条件查询

            System.out.println("wrapper:"+selectList);

    }

好程序员java教程分享javamain常见面试问题

好程序员Java教程分享Javamain常见面试问题,Java程序员在参加面试的时候,在Javamain方面都会被问到哪些问题呢?为大家准备一些常见的Javamain的基础知识问题,帮助大家在面试前做好准备:  1、不用main方法如何定义一个类?... 查看详情

好程序员java教程分享使用httpclient抓取页面内容

好程序员Java教程分享使用HttpClient抓取页面内容,使用HttpClient工具来发送Http请求1.简介HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版... 查看详情

好程序员java教程分享java之包装类与常用类

好程序员Java教程分享Java之包装类与常用类,首先来讲一下包装类基本数据类型(值类型):byte,short,int,long,float,double,char,boolean包装类:将基本数据类型,用一个类进行了一层包装,可以按照引用类型进行使用。同时还提供了若... 查看详情

好程序员java教程分享java之设计模式

好程序员Java实用教程之设计模式,首先来讲一下单例设计模式单例设计模式/**设计模式:前人总结出来的对一些常见问题的解决方案,后人直接拿来使用.*常用的设计模式:单例,工厂,代理,适配器,装饰,模板,观察者等,一共有23种*单... 查看详情

好程序员java教程分享java中string类型的10个问题

好程序员Java教程分享Java中String类型的10个问题如何比较两个字符串?用“=”还是equals简单来说,“==”是用来检测俩引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等。只要你想检测俩字符串... 查看详情

好程序员java教程系列之异常定义

好程序员Java教程分享Java系列之异常定义异常定义异常:就是程序在运行的过程中遇到的种种不正常的情况。特点:如果一个程序在运行中遇到了一个未经处理的异常,则这个异常会终止程序的运行。?但是如果程序出现的异常被... 查看详情

好程序员java学习路线分享5分钟了解基数排序

好程序员Java学习路线分享5分钟了解基数排序,前言:基数排序无需进行比较和交换,而是利用分配和收集两种基本操作实现排序。基数排序分为两种:第一种是LSD,从最低位开始排序;第二种是MSD,从最高位开始排序。基数排... 查看详情

好程序员web前端教程分享javascript简写方法

今天好程序员web前端教程为大家分享JavaScript简写方法,小伙伴们快来看一看吧。1.三元操作符当想写if...else语句时,使用三元操作符来代替。constx=20;letanswer;if(x>10){answer=‘isgreater‘;}else{answer=‘islesser‘;}简写:constanswer=x>10?... 查看详情

好程序员web前端教程分享前端javascript练习题

好程序员web前端教程分享前端javascript练习题,事件委托机制----------重要  eg:点击按钮往ul中添加li,使添加的li也有相同的事件varobtn=document.getElementById("btn");varolist=document.getElementById("list");//获取ulvaroli=olist.chi 查看详情

好程序员web前端教程分享前端javascript练习题之promise

好程序员web前端教程分享前端javascript练习题之promisepromise-ajax的封装functionajax(url){//创建promise对象varpromise=newPromise(function(resolve,reject){//创建ajax对象if(window.XMLHttpRequest){varxhr=newXMLHttpRequest();}else{va 查看详情

好程序员web前端教程分享前端javascript练习题三

好程序员web前端教程分享前端javascript练习题三,cookie一周内免登录样式代码:<formaction="">姓名:<inputtype="text"id="usename"/><br/>密码:<inputtype="text"i="mima" 查看详情

好程序员web前端教程分享前端javascript练习题ajax封装

好程序员web前端教程分享前端javascript练习题Ajax封装ajax的基本封装----必须掌握functionajax(url,fn){if(window.XMLHttpRequest){varxhr=newXMLHttpRequest();}else{varxhr=newActiveXObject("Microsoft.XMLHTTP");}xhr.open("get 查看详情

好程序员web前端教程分享前端javascript练习题之闭包案例

好程序员web前端教程分享前端javascript练习题之闭包案例,编写一个求和函数sum,使输入sum(2)(3)或输入sum(2,3),输出结果相同可以传入多个参数functionsum(){varnum=arguments[0];if(arguments.length==1){returnfunction(sec){returnnum+sec;}}else{varnum=0;for(va... 查看详情

阿里一手爆出:springboot整合mybatisplus(超详细)完整教程

...UserController.java中新增接口:postman测试:没问题。上面是mybatisplus测试成功,下面我们继续测试我们自己写的sql是否成功。在resources目录下新建mapper文件夹,新建UserMapper.xml文件:UserMapper.javaIUserService:UseServiceImpl.java:UserController.jav... 查看详情

好资源分享

JavaJavaGuide:【Java学习+面试指南】一份涵盖大部分Java程序员所需要掌握的核心知识。CS-Notes:技术面试必备基础知识、Leetcode题解、后端面试、Java面试、春招、秋招、操作系统、计算机网络、系统设计。advanced-java:互联网Jav... 查看详情

好程序员java分享jvm结构

  好程序员Java分享JVM结构,jvm的基本结构,也就是我们俗称概述。内容很多,而且概念量也很大,关于概念方面,让概念在你的脑子里变成图形,所以只要你有耐心、仔细,发挥自己的想象力,会让你充满信心。当然,不是... 查看详情

好程序员java分享sql语言之索引

好程序员Java分享SQL语言之索引,前言:本章我们将学习MySQL中的索引,本文将从索引的作用、索引的分类、创建索引的语法、索引的使用策略以及索引的实现原理等方面带大家了解索引。索引的作用索引的作用就是加快查询速度... 查看详情

好程序员web前端分享html基础篇

  好程序员web前端分享HTML基础篇,最近遇到很多新手,都会问,如果要学web前端开发,需要学什么?难不难学啊?多久能入门之类的问题?那么今天好程序员就先来给大家分享一下web前端学习路线:HTML基础学习目标1、本专业... 查看详情