IDEA插件之mybatisx 插件使用教程

目录
  • mybatisx 插件使用
    • 插件安装
    • 自动生成代码
    • 文件跳转
    • 代码自动补全
    • 自定义模板

MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。今天给大家介绍下mybatisx 插件使用。

mybatisx 插件使用

官网:https://baomidou.com/pages/ba5b24

插件安装

file ==> preferences ==> plugins:搜索mybatisx,安装插件

mybatisx 功能:

文件跳转:点击图标,可实现mapper接口、对应xml之间的互相跳转,serverImpl层跳转到注入的mapper接口

代码自动生成:根据表自动生成实体类、mapper接口、mapper xml、service、serverImpl类,模板可自定义

mapper方法自动填充:mapper接口中输入部分方法名,可自动补全代码,并在对应的mapper xml中生成sql语句

自动生成代码

连接数据源

mybatisx-generator 自动生成代码

说明:实体类的包名、类名,moduler path、base path、package name均可手动编辑

查看自动生成的代码

文件跳转

mapper接口:点击图标,跳转mapper xml文件

mapper xml:点击图标,跳转到mapper接口

PersonServiceImpl:点击图标,跳转到mapper接口

代码自动补全

mapper 接口写出方法名 ==> 右击 ==> show context actions

generate mybatis sql

mapper xml生成的sql

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.PersonMapper">
    <resultMap id="BaseResultMap" type="com.example.demo.pojo.Person">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="name" column="name" jdbcType="VARCHAR"/>
            <result property="age" column="age" jdbcType="INTEGER"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,name,age
    </sql>
    <!-- mapper xml自动生成的sql语句 -->
    <select id="selectAllByName" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"/>
        from person
        where
        name = #{name,jdbcType=VARCHAR}
    </select>
</mapper>

自动补全操作示例

自定义模板

mybatisx 模板:可对模板(ftl)进行修改、并恢复默认设置

.meta.xml

<?xml version="1.0" encoding="utf-8" ?>
<templates>
    <template>
        <property name="configName" value="serviceInterface"/>
        <property name="configFile" value="serviceInterface.ftl"/>
        <property name="fileName" value="${domain.fileName}Service"/>
        <property name="suffix" value=".java"/>
        <property name="packageName" value="${domain.basePackage}.service"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="${domain.basePath}"/>
    </template>
    <template>
        <property name="configName" value="serviceImpl"/>
        <property name="configFile" value="serviceImpl.ftl"/>
        <property name="fileName" value="${domain.fileName}ServiceImpl"/>
        <property name="suffix" value=".java"/>
        <property name="packageName" value="${domain.basePackage}.service.impl"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="${domain.basePath}"/>
    </template>
    <template>
        <property name="configName" value="mapperInterface"/>
        <property name="configFile" value="mapperInterface.ftl"/>
        <property name="fileName" value="${domain.fileName}Mapper"/>
        <property name="suffix" value=".java"/>
        <property name="packageName" value="${domain.basePackage}.mapper"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="${domain.basePath}"/>
    </template>
    <template>
        <property name="configName" value="mapperXml"/>
        <property name="configFile" value="mapperXml.ftl"/>
        <property name="fileName" value="${domain.fileName}Mapper"/>
        <property name="suffix" value=".xml"/>
        <property name="packageName" value="mapper"/>
        <property name="encoding" value="${domain.encoding}"/>
        <property name="basePath" value="src/main/resources"/>
    </template>
</templates>

mapperInterface.ftl

package ${mapperInterface.packageName};
import ${tableClass.fullClassName};
<#if tableClass.pkFields??>
    <#list tableClass.pkFields as field><#assign pkName>${field.shortTypeName}</#assign></#list>
</#if>
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author ${author!}
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
public interface ${mapperInterface.fileName} extends BaseMapper<${tableClass.shortClassName}> {
}

serviceInterface.ftl

package ${baseInfo.packageName};
import ${tableClass.fullClassName};
<#if baseService??&&baseService!="">
import ${baseService};
    <#list baseService?split(".") as simpleName>
        <#if !simpleName_has_next>
            <#assign serviceSimpleName>${simpleName}</#assign>
        </#if>
    </#list>
</#if>
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
public interface ${baseInfo.fileName} extends IService<${tableClass.shortClassName}> {
}

serviceImpl.ftl

package ${baseInfo.packageName};
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import ${tableClass.fullClassName};
import ${serviceInterface.packageName}.${serviceInterface.fileName};
import ${mapperInterface.packageName}.${mapperInterface.fileName};
<#if baseService??&&baseService!="">
import ${baseService};
    <#list baseService?split(".") as simpleName>
        <#if !simpleName_has_next>
            <#assign serviceSimpleName>${simpleName}</#assign>
        </#if>
    </#list>
</#if>
import org.springframework.stereotype.Service;
/**
* @author ${author!}
* @description 针对表【${tableClass.tableName}<#if tableClass.remark?has_content>(${tableClass.remark!})</#if>】的数据库操作Service实现
* @createDate ${.now?string('yyyy-MM-dd HH:mm:ss')}
*/
@Service
public class ${baseInfo.fileName} extends ServiceImpl<${mapperInterface.fileName}, ${tableClass.shortClassName}>
    implements ${serviceInterface.fileName}{
}

mapperXml.ftl

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${mapperInterface.packageName}.${baseInfo.fileName}">
    <resultMap id="BaseResultMap" type="${tableClass.fullClassName}">
        <#list tableClass.pkFields as field>
            <id property="${field.fieldName}" column="${field.columnName}" jdbcType="${field.jdbcType}"/>
        </#list>
        <#list tableClass.baseFields as field>
            <result property="${field.fieldName}" column="${field.columnName}" jdbcType="${field.jdbcType}"/>
        </#list>
    </resultMap>
    <sql id="Base_Column_List">
        <#list tableClass.allFields as field>${field.columnName}<#sep>,<#if field_index%3==2>${"\n        "}</#if></#list>
    </sql>
</mapper>

模版文件恢复为默认设置

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

(0)

相关推荐

  • MybatisX 快速开发插件过程详解

    目录 简介 基础功能 1.xml跳转 2.代码生成 3.JPA提示和生成语句 简介 MybatisX 是一款基于 IDEA 的快速开发插件,方便在使用mybatis以及mybatis-plus开始时简化繁琐的重复操作,提高开发速率. 注:idea得用最新的版本才能生效一些功能,我用的是2020.3版本的 基础功能 1.xml跳转 添加插件后在dao层会多一只戴红色头巾的小鸟,同样在对应xml文件方法前也会对应一直戴蓝色头巾的小鸟,点击即可在dao和xml文件之间跳转 2.代码生成 在开发中在到中

  • IDEA插件之mybatisx 插件使用教程

    目录 mybatisx 插件使用 插件安装 自动生成代码 文件跳转 代码自动补全 自定义模板 MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生.今天给大家介绍下mybatisx 插件使用. mybatisx 插件使用 官网:https://baomidou.com/pages/ba5b24 插件安装 file ==> preferences ==> plugins:搜索mybatisx,安装插件 mybatisx 功能: 文件跳转:点击图标,可实现mapper接口.对应xml

  • Yii2组件之多图上传插件FileInput的详细使用教程

    在前面给大家写个有关文件上传的文章,包括最基本的yii2文件上传.异步上传到又拍云以及百度编辑器图片上传的问题,貌似不说点多图上传的就不完美. 今天介绍一款多图上传的插件 FileInput,至于为什么选中了TA作为我们上传的插件,一来这货跟Yii2有一腿,用起来方便:二来嘛,用这个插件不仅添加的时候好操作,修改的时候也可以直接通过异步的方式将图片悄无声息的删掉:最值得一提的是,界面效果融合了bootstrap,清爽简洁美观,看起来舒服. 说重点,看具体步骤 首先还是先安装组件 复制代码 代码如

  • IntelliJ IDEA 热部署插件JRebel 安装使用图文教程

    IntelliJ IDEA 简介 IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本工具(git.svn.github等).JUnit.CVS整合.代码分析. 创新的GUI设计等方面的功能可以说是超常的.IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主.它的旗舰版本还支持HTML,CSS,

  • JS 音频可视化插件Wavesurfer.js的使用教程

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的音频播放器插件,本文主要记录它及其视觉效果插件Regions插件的使用方法. 1.创建实例 引入插件 import WaveSurfer from "wavesurfer.js"; 创建实例对象 this.wavesurfer = WaveSurfer.create(options); options 参数 默认值 说明 audioRate 1 音频的播放速度,数值越小越慢 barWidth none 如

  • IDEA实用好用插件推荐及使用方法教程详解(必看)

    当前使用的IDEA版本是2020.1.随着IDEA版本的升级,有些插件不再支持,而有些插件变成了收费插件,这些插件将不再推荐.以下列举的,都是亲测可以在2020.1版本的IDEA中使用的插件. Translation 简介 翻译插件,支持google翻译.百度翻译.有道翻译. 使用 快捷键Ctrl + Shift + O Key promoter X 简介 Key Promoter X 是一个提示插件.在IDEA里使用鼠标操作时,会有这个操作的快捷键在界面的右下角进行告知.有个小缺点是有些没有快

  • 如何在IDEA上安装scala插件并创建工程(图文教程)

      大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新.但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客主页:https://buwenbuhuo.blog.csdn.net/   关于scala的安装并配置环境变量的问题,小伙伴们感兴趣

  • IDEA插件推荐之Maven-Helper的教程图解

    这个插件能可以通过 UI 界面的方式来查看 maven 项目的依赖关系,当然还有最重要的功能 解决依赖冲突 ,使用起来非常的方便,效果图: 在开发 JAVA 项目的时候,经常会由于 maven 依赖冲突导致项目启动失败,这个时候往往会懵逼,到底哪个依赖冲突了,需要排除哪个子依赖,有了这个插件之后就可以很快的定位到冲突的组件,并进行排除. 安装 首先进入 IDEA plugins 市场,搜索 Maven Helper 进行安装: 这里需要注意的是国内网络连接 jetbrains 服务器会比较慢,可

  • intellij idea中安装、配置mybatis插件Free Mybatis plugin的教程详解

    场景: 使用intellij idea开发,持久层dao使用了mybatis,经常需要编辑mybatis的××Mapper.java和××Mapper.xml,因为是接口里一个方法对应xml里的一个SQL的id,当需要找找个方法时候得拷贝找个方法名,然后在对应文件中ctrl+f全文查找,相当麻烦.本篇讲述的使用mybatis的插件后将极大的提高效率.效果如图: 即从××Mapper.java接口和××Mapper.xml中能由箭头直接点进去查看相对应的方法及SQL. 步骤: 1.ctrl+alt

  • Idea防沉迷插件StopCoding的安装使用教程

    前言 当初年少懵懂,那年夏天填志愿选专业,父母听其他长辈说选择计算机专业好.从那以后,我的身上就有了计院深深的烙印.从寝室到机房,从机房到图书馆,C.C++.Java.只要是想写点自己感兴趣的东西,一坐就是几个小时,但那时年轻,起身,收拾,一路小跑会女神,轻轻松松.现在工作了,毫无意外的做着开发的工作,长时间久坐.写代码一忙起来就忘了起来活动一下,也不怎么喝水.经常等到忙完了就感觉腰和腿不舒服.直到今年的体检报告一下来,才幡然醒悟:没有一个好身体,就不能好好打工,让老板过上他自己想要的生活了.

  • 基于Bootstrap3表格插件和分页插件实例详解

    首先看下实现效果图,如果觉得还不错,请参考实现代码. 上面数据 下面分页 使用方法 1 导入bootstrap的css <link rel="stylesheet" href="css/v3/bootstrap.min.css"> 2 导入jquery <script src="js/jquery-1.10.1.min.js" type="text/javascript"></script>

随机推荐