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

好程序员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);

    }

原文地址:https://blog.51cto.com/14573321/2446419

时间: 2024-09-28 16:06:40

好程序员Java教程分享MyBatis Plus介绍的相关文章

好程序员Java教程分享Javamain常见面试问题

好程序员Java教程分享Javamain常见面试问题,Java程序员在参加面试的时候,在Javamain方面都会被问到哪些问题呢?为大家准备一些常见的Javamain的基础知识问题,帮助大家在面试前做好准备: 1.不用main方法如何定义一个类? 不行,没有main方法我们不能运行Java类. 在Java7之前,你可以通过使用静态初始化运行Java类.但是,从Java7开始就行不通了. 2.main()方法需要的参数不是字符串数组? 不是的,main()方法的参数必须是字符串数组. 但是,在引进

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

好程序员Java实用教程之设计模式,首先来讲一下单例设计模式 单例设计模式 /* * 设计模式:前人总结出来的对一些常见问题的解决方案,后人直接拿来使用. * 常用的设计模式:单例,工厂,代理,适配器,装饰,模板,观察者等,一共有23种 * 单例:一个类只允许有一个对象,建立一个全局的访问点,提供出去供大家使用. * * 分析: * 1.我们肯定要建立一个单例类来描述 * 2.只允许有一个对象 * 3.全局的访问点:说的就是当前的s----通过static实现的 * 4.提供出去 * 5.给大家

好程序员Java教程分享Java中String类型的10个问题

如何比较两个字符串?用"="还是equals简单来说,"=="是用来检测俩引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等.只要你想检测俩字符串是不是相等的,你就必须得用equals()方法. 如果你知道"字符串保留(string intern)"的概念那就更好了. 为什么安全敏感的字符串信息用char[]会比String对象更好?String对象是不可变的就意味着直到垃圾回收器过来清扫之前它们都不会发生变化

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

好程序员Java教程分享Java系列之异常定义 异常定义 异常:就是程序在运行的过程中遇到的种种不正常的情况. 特点:如果一个程序在运行中遇到了一个未经处理的异常,则这个异常会终止程序的运行. ? 但是如果程序出现的异常被处理了,此时程序不会被终止.所以我们需要知道怎么去处理异常. 其实在Java中,异常也是一个类. 类的体系: Throwable: 是所有的异常的根类 Error: 发生在编译器级别的,我们程序无法处理的错误. Exception: 我们可以去处理的异常. RuntimeExc

好程序员Python教程分享python之变量

好程序员Python教程分享python之变量,变量(variable)是必经之路,它是学习python初始时,就会接触到的一个新的知识点,也是一个需要熟知的概念.python是一种动态类型语言,在赋值的执行中可以绑定不同类型的值,这个过程叫做变量赋值操作,赋值同时确定了变量类型. 什么是变量 在玩蛇网python学习过程中会用到许多数据,那为了方便操作,需要把这些数据分别用一个简单的名字代表,方便在接下来的程序中引用.变量就是代表某个数据(值)的名称. python变量赋值如何定义操作 变量定

好程序员Java干货分享Spring框架之IOC原理

好程序员Java干货分享Spring框架之IOC原理,前言:Spring框架是我们进行企业级开发的最常用框架,本章我们将了解Spring框架,并学习Spring的IOC特性以及IOC的实现原理:注解和反射. Spring框架简介 Spring是一种轻量级的控制反转(IOC)和面向切面编程(AOP)的容器框架,能够为企业级开发提供一站式服务. Spring的优点有 1.方便解耦,简化开发 通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度

好程序员Java教程解读什么是swing

好程序员Java教程解读什么是swing,swing是java GUI应用程序,也就是java做的桌面应用.运行swing程序要求用户电脑上有java环境,这一点不太现实也不方便.现在的java主要以web方向为主,做移动应用和网站开发,分布式.多线程.高并发等都是java程序员发展的方向. 虽然企业开发中用到的不多,事实上在我十几年的开发生涯中没有用到过,我的朋友也没有做swing的.但也不能说学习它就没有用. 比如swing中的控件,如表格.树.面板.菜单等控件,各种事件如键盘.鼠标事件.结

好程序员Java教程Java动态代理机制详解

好程序员Java教程Java动态代理机制详解:在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface).另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的.首先我们先来看看java的API帮助文档是怎么样对这两个类进行描述的: InvocationHandler: 1InvocationHandler is the interface implemented by the invocation handle

好程序员Java教程解读JDBC是什么

JDBC简介-?JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序 -?Java 具有坚固.安全.易于使用.易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言.所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法. -?JD