idea使用Mybatis逆向工程插件详情

目录
  • 一、使用mybatis连接数据库
  • 二、安装Better-Mybatis-Generator插件
  • 三、关于example类详解
    • 1、example成员变量
    • 2、example使用

一、使用mybatis连接数据库

添加连接的mysql的信息,测试链接成功即可。

二、安装Better-Mybatis-Generator插件

安装成功后,在需要生成的表上右键选择mybatis-generator。

添加要生成的一些配置。

点击OK,第一次生成会弹出窗口,需要输入数据库的帐号密码。可以看到生成该表对应的mapper接口、实体类和sql

三、关于example类详解

1、example成员变量

mybatis-generator会为每个字段产生Criterion,为底层的mapper.xml创建动态sql。如果表的字段比较多,产生的example类会十分庞大。理论上通过example类可以构造你想到的任何筛选条件。

 //作用:升序还是降序
 //参数格式:字段+空格+asc(desc)
 protected String orderByClause;  
 //作用:去除重复
 //true是选择不重复记录,false,反之
 protected boolean distinct;
 //自定义查询条件
 //Criteria的集合,集合中对象是由or连接
 protected List<Criteria> oredCriteria;
 // 分页的显示条数
 private Integer limit;
 // 分页的起始下标   
 private Long offset;
 //内部类Criteria包含一个Cretiron的集合,
 //每一个Criteria对象内包含的Cretiron之间是由  AND连接的
 public static class Criteria extends GeneratedCriteria {
  protected Criteria() {super();}
 }
 //是mybatis中逆向工程中的代码模型
 protected abstract static class GeneratedCriteria {......}
 //是最基本,最底层的Where条件,用于字段级的筛选
 public static class Criterion {......}

2、example使用

在MybatisDemoApplicationTests类中进行测试:

package org.ywz.test;
 
import org.junit.jupiter.api.Test;
import org.junit.platform.commons.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.ywz.dao.StudentDao;
import org.ywz.pojo.Student;
import org.ywz.pojo.StudentExample;
 
import java.util.List;
 
/**
 * Example类使用说明
 */
@SpringBootTest
class MybatisDemoApplicationTests {
    @Autowired
    private StudentDao studentDao;
 
    @Test
    void contextLoads() {
        StudentExample studentExample = new StudentExample();
 
        // 查询数据的总条数 类似于:select count(*) from student
        long l = studentDao.countByExample(studentExample);
        System.out.println("---------------总条数----------------");
        System.out.println("数据库的总条数:" + l);
        System.out.println("----------------and条件---------------");
        // where条件查询或多条件查询
        Student student = new Student();
        student.setName("王五");
        student.setSex("男");
        selectAndCondition(student);
        System.out.println("---------------or条件----------------");
        selectOrCondition(student);
        System.out.println("-----------------模糊查询--------------");
        student.setName("王");
        selectLikeCondition(student);
        System.out.println("-----------------分页查询--------------");
        selectLimit();
    }
 
    /**
     * where条件查询或多条件查询
     * 类似于:select * from student where name={#student.name} and sex={#student.sex} order by score asc;
     *
     * @param student
     */
    private void selectAndCondition(Student student) {
        StudentExample studentExample = new StudentExample();
        StudentExample.Criteria criteria = studentExample.createCriteria();
        studentExample.setOrderByClause("score asc"); //升序
        studentExample.setDistinct(false); //不去重
        if (StringUtils.isNotBlank(student.getName())) {
            criteria.andNameEqualTo(student.getName());
        }
        if (StringUtils.isNotBlank(student.getSex())) {
            criteria.andSexEqualTo(student.getSex());
        }
        List<Student> students = studentDao.selectByExample(studentExample);
        students.forEach(System.out::println);
    }
 
    /**
     * 类似于:select * from student where name={#student.name} or sex={#student.sex} ;
     *
     * @param student
     */
    private void selectOrCondition(Student student) {
        StudentExample studentExample = new StudentExample();
        StudentExample.Criteria criteria1 = studentExample.createCriteria();
        StudentExample.Criteria criteria2 = studentExample.createCriteria();
        if (StringUtils.isNotBlank(student.getName())) {
            criteria1.andNameEqualTo(student.getName());
        }
        if (StringUtils.isNotBlank(student.getSex())) {
            criteria2.andSexEqualTo(student.getSex());
        }
        studentExample.or(criteria2);
        List<Student> students = studentDao.selectByExample(studentExample);
        students.forEach(System.out::println);
    }
 
    /**
     * 类似于:select * from student where name like %{#student.name}%
     *
     * @param student
     */
    private void selectLikeCondition(Student student) {
        StudentExample studentExample = new StudentExample();
        StudentExample.Criteria criteria = studentExample.createCriteria();
        if (StringUtils.isNotBlank(student.getName())) {
            criteria.andNameLike("%" + student.getName() + "%");
        }
        List<Student> students = studentDao.selectByExample(studentExample);
        students.forEach(System.out::println);
    }
 
    /**
     * 类似于:select * from student limit offset,limit
     */
    public void selectLimit() {
        StudentExample studentExample = new StudentExample();
        studentExample.setOffset(2l);
        studentExample.setLimit(5);
        List<Student> students = studentDao.selectByExample(studentExample);
        students.forEach(System.out::println);
    }
}

运行结果:

 官方文档:MyBatis Generator Core – Example Class Usage Notes

到此这篇关于idea使用Mybatis逆向工程插件详情的文章就介绍到这了,更多相关idea使用Mybatis逆向工程插件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • idea2020安裝MybatisCodeHelper插件的图文教程

    1. 下载MybatisCodeHelper插件 亲测这个版本可以用在idea2020上 链接: https://pan.baidu.com/s/1xHNWWDrPvOuRHPEG5_-2Jg 提取码: dg8u 2. 离线安装MybatisCodeHelper插件 file->settings-plugins,选择工具按钮,从磁盘导入,选择下载好的zip插件包,这个是免费版的,功能没那么全,但是也够用了. 然后重启idea就可以了 3.激活插件 在idea的database视图中,导入一个可用

  • IDEA插件EasyCode及MyBatis最优配置步骤详解

    具体安装步骤,不再赘述,仅附上个人工作.学习中的对 EasyCode 的详细配置. 插件链接地址:https://gitee.com/makejava/EasyCode Type Mapper varchar(\(\d+\))? java.lang.String char(\(\d+\))? java.lang.String text java.lang.String decimal(\(\d+\))? java.lang.Double decimal(\(\d+,\d+\))? java.la

  • IDEA 使用mybatis插件Free Mybatis plugin的步骤(推荐)

    1.打开idea -> file -> settings ->Plugins 搜索Free Mybatis plugin,然后install,完成之后重启idea即可. 2.打开idea -> 右侧database-> 配置数据库连接 -> 右击数据库表 在需要生成配置文件的数据库上右键,就会出现mybatis-generator选项如图 3.打开如上图所示配置窗口,这里我们使用默认的就行,也可以选择自己需要的路径生成.如果不想使用lombok去掉这个勾选即可,然后我们

  • idea2019.2安裝MybatisCodeHelper插件的超详细教程

    1. 下载MybatisCodeHelper插件 下载已破解的插件压缩包,一定注意校验sha1sum!!! 在IDEA中本地安装插件 激活方法(自2.7.3):IDEA顶部菜单:Tools -> MybatisCodeHelper -> Activation -> OfflineActivation,在offline key框输入任意字符串 激活方法(旧):IDEA顶部菜单:Tools -> MybatisCodeHelper -> offlineActivation,输入任

  • 关于IDEA 2020使用 mybatis-log-plugin插件的问题

    mybatis-log-plugin:可以在控制台打印执行的SQL,具体自行百度 本文章只是抛砖,插件构建请各位百度IDEA构建插件. 一.背景 在IDEA 2020使用这个插件你可以采用以下方法 你可以将安装旧版本的IDEA,比如2019.自己构建该插件,各位可以自行下载源码安装 二.需要掌握技能 IDEA插件简单开发,只要能将插件打包即可 IDEA本地插件安装 三.github源码地址 目前源码是截至到2020年5月份左右 https://github.com/kookob/mybatis-

  • idea使用Mybatis逆向工程插件详情

    目录 一.使用mybatis连接数据库 二.安装Better-Mybatis-Generator插件 三.关于example类详解 1.example成员变量 2.example使用 一.使用mybatis连接数据库 添加连接的mysql的信息,测试链接成功即可. 二.安装Better-Mybatis-Generator插件 安装成功后,在需要生成的表上右键选择mybatis-generator. 添加要生成的一些配置. 点击OK,第一次生成会弹出窗口,需要输入数据库的帐号密码.可以看到生成该表

  • SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解

    一.添加所需依赖,当前完整的pom文件如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&q

  • Mybatis Plus插件三种方式的逆向工程的使用

    本文源码:GitHub·点这里 || GitEE·点这里 一.逆向工程简介 在Java开发中,持久层最常用的框架就是mybatis,该框架需要编写sql语句,mybatis官方提供逆向工程,可以把数据表自动生成执行所需要的基础代码,例如:mapper接口,sql映射文件,pojo实体类等,避免基础代码维护的繁杂过程. 在实际的使用中,常用的逆向工程方式如上,mybatis框架,mybatis-plus框架,插件方式. 二.Mybatis方式 1.基础描述 基于xml配置的方式,生成mybatis

  • Mybatis分页插件的实例详解

    Mybatis分页插件的实例详解 1.前言: 我们知道,在MySQL中,分页的sql是使用limit来做,如果我们自己写sql,那分页肯定是没有任何问题的.但是一旦model多了起来,复杂了起来,我们很自然的想到使用mybatis的逆向工程来生成相应的po和mapper,但是同时也会带来弊端,比如这里的分页问题就不好解决了. 可能有人会说,我可以修改生成的文件,没错,这是可行的,但是一般我们通过逆向工程生成的文件,都不会去动它,所以这个时候,就需要使用分页插件来解决了. 如果你也在用Mybati

  • MyBatis框架之mybatis逆向工程自动生成代码

    Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件. 逆向工程 1.什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po..) 企业实际开发中,常用的逆向工程方式: 由于数据库的表生成java代码. 2.下载逆向工程 my

  • MyBatis逆向工程的创建和使用

    1.什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml.po..) 企业实际开发中,常用的逆向工程方式: 由于数据库的表生成java代码. 2.下载逆向工程 mybatis-generator-core-1.3.2-bundle.zip 3.使用方法(会用) 3.1运行逆向工程 官方文档中提供的运行逆向工程的几种方法 Running MyBatis Gener

  • mybatis逆向工程与分页在springboot中的应用及遇到坑

    最近在项目中应用到springboot与mybatis,在进行整合过程中遇到一些坑,在此将其整理出来,便于以后查阅与复习. 项目运行环境为:eclispe+jdk1.8+maven 搭建Spring Boot环境 首先建立maven project,在生成的pom文件中加入依赖,代码如下: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

  • Mybatis逆向工程运行代码实例

    简单的理解,MyBatis逆向工程,就是通过相应插件,自动生成MyBatis数据库连接的一些文件. mybatis需要编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.mapper.xml.pojo-),提高工作效率. 命令: mvn mybatis-generator:generate 项目结构: generatorConfig.xml内容示例 <?xml version="1.0" encoding=&

  • Mybatis 逆向工程的三种方法详解

    Mybatis 逆向工程   逆向工程通常包括由数据库的表生成 Java 代码 和 通过 Java 代码生成数据库表.而Mybatis 逆向工程是指由数据库表生成 Java 代码.   Mybaits 需要程序员自己编写 SQL 语句,但是 Mybatis 官方提供逆向工程可以针对单表自动生成 Mybaits 执行所需要的代码,包括 POJO.Mapper.java.Mapper.xml -. 一.通过 Eclipse 插件完成 Mybatis 逆向工程 1. 在线安装 Eclipse 插件  

  • mybatis分页插件pageHelper详解及简单实例

    mybatis分页插件pageHelper详解及简单实例 工作的框架spring springmvc mybatis3 首先使用分页插件必须先引入maven依赖,在pom.xml中添加如下 <!-- 分页助手 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>3.7.5

随机推荐