zoukankan      html  css  js  c++  java
  • IDEA常用插件

    1、Lombok

    简介:

    ​ Lombok是一款Java开发插件,使得Java开发者可以通过其定义的一些注解来消除业务工程中冗长和繁琐的代码,尤其对于简单的Java模型对象(POJO)。在开发环境中使用Lombok插件后,Java开发人员可以节省出重复构建,诸如hashCode和equals这样的方法以及各种业务对象模型的accessor和ToString等方法的大量时间。对于这些方法,它能够在编译源代码期间自动帮我们生成这些方法,并没有如反射那样降低程序的性能。

    官方网站:https://projectlombok.org/

    使用步骤

    1. 在IDEA中安装

      file》setting》Plugins》搜索Lombok》点击install安装

      image-20210111175421085

      如果无法搜索,可在官网下载,导入idea即可

      注:idea 2020.3.1版本已默认添加Lombok,无需下载

    2. 在项目中导入Lombok的jar包

      jar包下载:https://projectlombok.org/downloads/lombok.jar

      如果你使用的maven环境,可使用

      <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          <version>1.18.16</version>
          <scope>provided</scope>
      </dependency>
      
    3. 在你的实体类添加对应的注解即可使用

      import lombok.AllArgsConstructor;
      import lombok.Data;
      import lombok.NoArgsConstructor;
      
      @Data
      @AllArgsConstructor
      @NoArgsConstructor
      public class User {
          private Integer id;
          private String name;
          private String pwd;
      }
      
      @Getter and @Setter
      @FieldNameConstants
      @ToString
      @EqualsAndHashCode
      @AllArgsConstructor, @RequiredArgsConstructor and @NoArgsConstructor
      @Log, @Log4j, @Log4j2, @Slf4j, @XSlf4j, @CommonsLog, @JBossLog, @Flogger, @CustomLog
      @Data
      @Builder
      @SuperBuilder
      @Singular
      @Delegate
      @Value
      @Accessors
      @Wither
      @With
      @SneakyThrows
      @val
      @var
      experimental @var
      @UtilityClass
      Lombok config system
      Code inspections
      Refactoring actions (lombok and delombok)
      

      常用的注解:

      • @Data:包含无参构造,getter,setter,toString,hashCode,equals

      • @AllArgsConstructor:满参构造

      • @NoArgsConstructor:无参构造

      • @toString:重写父类toString方法

      • @Getter:生成get方法

      • @Setter:生成set方法

      • @EqualsAndHashCode:重写父类的equals和hashCode方法

    2、MyBatis插件

    2.1、mybatis-geneator

    mybatis-geneator 是一款 mybatis 自动代码生成工具,MyBatis 属于半自动化的 ORM 框架,需要手动书写 Mapping 映射文件,mybatis-gennerator 可以帮助我们自动生成 mybatis 所需要的 Model、Dao、mapper xml 文件。

    MyBatis Generator 官网地址:http://mybatis.org/generator/

    mybatis-geneator 有如下几种使用方式:

    • 命令行
    • Java 程序
    • Maven 插件
    • Eclipse 插件
    • Ant 方式

    Maven 插件方式实现

    1. 在pom.xml中加入依赖

      <build>
          <plugins>
              <plugin>
                  <groupId>org.mybatis.generator</groupId>
                  <artifactId>mybatis-generator-maven-plugin</artifactId>
                  <version>1.3.7</version>
                  <configuration>
                      <!-- generatorConfig.xml文件的位置,可根据实际情况修改 -->
                      <configurationfile>
                          ${basedir}/src/main/resources/generatorConfig.xml
                      </configurationfile>
                      <overwrite>true</overwrite>
                      <verbose>true</verbose>
                  </configuration>
                  <dependencies>
                      <!-- 添加自己对应的MySQL驱动 -->
                      <dependency>
                          <groupId>mysql</groupId>
                          <artifactId>mysql-connector-java</artifactId>
                          <version>5.1.47</version>
                      </dependency>
                  </dependencies>
              </plugin>
          </plugins>
      </build>
      
    2. 编写generatorConfig.xml配置文件

      <?xml version='1.0' encoding='UTF-8'?>
      <!DOCTYPE generatorConfiguration
              PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
              "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
      <generatorConfiguration>
          <!-- 导入数据库连接信息 -->
          <properties resource="jdbc.properties" />
          <context id="mybatisGenerator" targetRuntime="MyBatis3">
              <commentGenerator>
                  <!-- 是否去除自动生成的注释 true:是 : false:否 -->
                  <property name="suppressAllComments" value="true" />
              </commentGenerator>
              <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
              <jdbcConnection driverClass="${jdbc.driver}"
                              connectionURL="${jdbc.url}"
                              userId="${jdbc.username}"
                              password="${jdbc.password}">
              </jdbcConnection>
      
              <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
                  NUMERIC 类型解析为java.math.BigDecimal -->
              <javaTypeResolver>
                  <property name="forceBigDecimals" value="false" />
              </javaTypeResolver>
      
              <!-- targetProject:生成PO类的位置 -->
              <javaModelGenerator targetPackage="cn.bdqn.pojo"
                                  targetProject=".srcmainjava">
                  <!-- enableSubPackages:是否让schema作为包的后缀 -->
                  <property name="enableSubPackages" value="false" />
                  <!-- 从数据库返回的值被清理前后的空格 -->
                  <property name="trimStrings" value="true" />
              </javaModelGenerator>
              <!-- targetProject:mapper映射文件生成的位置 -->
              <sqlMapGenerator targetPackage="cn.bdqn.mapper"
                               targetProject=".srcmainjava">
                  <!-- enableSubPackages:是否让schema作为包的后缀 -->
                  <property name="enableSubPackages" value="false" />
              </sqlMapGenerator>
              <!-- targetPackage:mapper接口生成的位置 -->
              <javaClientGenerator type="XMLMAPPER"
                                   targetPackage="cn.bdqn.mapper"
                                   targetProject=".srcmainjava">
                  <!-- enableSubPackages:是否让schema作为包的后缀 -->
                  <property name="enableSubPackages" value="false" />
              </javaClientGenerator>
              <!-- 指定数据库表 -->
              <table tableName="blog"></table>
              <table tableName="student"></table>
              <table tableName="teacher"></table>
              <table tableName="user"></table>
          </context>
      </generatorConfiguration>
      
    3. 执行Maven命令

      image-20210116142803244

    2.2、MyBatisX

    MybatisX 是一款基于 IDEA 的快速开发插件,为效率而生。

    安装方法:打开 IDEA,进入 File -> Settings -> Plugins -> Browse Repositories,输入 mybatisx 搜索并安装。

    官方文档:https://baomidou.com/guide/mybatisx-idea-plugin.html

    它的主要功能如下:

    1、XML文件和接口之间跳转

    在xml通过namespace绑定对应的mapper接口文件后,会出现一只小鸟,点击它即可实现跳转

    跳转

    2、生成代码

    使用idea的Database工具连接数据库后,右键点击对应的表打开操作窗口

    image-20210114151908660

    点击后出现如下窗口,配置相关信息后点击ok即可生成对应的model,mapper及xml

    image-20210114152518376

    2.3、MyBatisCodeHelper-Pro

    官方文档地址:http://118.24.53.162/#/

    这是一款非常全面的myabtis辅助插件,它的主要功能如下

    • 通过方法名(不需要方法的返回值和参数 会自动推导出来)来生成sql 可以生成大部分单表操作的sql 只需要一个方法的名字即可 会自动补全好方法的参数和返回值 和springdatajpa的语句基本一致
    • sql全自动提示,sql正确性检测,插件会识别mybatis的一系列标签 如 include trim set where,在这些标签之后的sql可以自动提示数据库的字段,检测sql的正确性,从此不用担心sql写错
    • 直接从Intellij自带的数据库或者配置一个数据库生成crud代码 自动检测好 useGeneratedkey 自动配置好模块的文件夹 只用添加包名就可以生成代码了
    • xml代码格式化
    • 从java类生成建表语句
    • 数据库添加字段后可以继续生成,不会修改之前已经在接口或xml添加的自定义的方法 无需再去进行手动的添加
    • mybatis接口和xml的互相跳转 支持一个mybatis接口对应多个xml
    • mybatis接口中的方法名重构支持
    • xml中的 param 的自动提示 if test的自动提示 resultMap refid 等的自动提示
    • resultMap中的property的自动提示,检测,重构
    • resultMap中column自动提示,检测
    • xml中refid,resultMap等的跳转到定义
    • 检测没有使用的xml 可一键删除
    • 检测mybatis接口中方法是否有实现,没有则报红 可创建一个空的xml
    • mybatis接口中一键添加param注解
    • mybatis接口一键生成xml
    • 完整的typeAlias支持
    • param检测 检测#{ 中的内容是否有误
    • ognl 支持 if test when test foreach bind中的自动补全,跳转和检测
    • 支持spring 将mapper注入到spring中 intellij的spring注入不再报错 支持springboot
    • 一键生成mybatis接口的testcase 无需启动spring,复杂sql可进行快速测试
    • 一键生成表关联的join
    • 一键从sql语句中 导出resultMap

    平时主要使用的功能:

    • 快捷生成model、mapper、xml
    • mapper接口与xml之间跳转
    • 快捷测试sql语句

    注意:idea的插件之间可能存在冲突,mybatis的插件安装一个适合自己的即可。

    常见的mybatis插件有:MyBatisX,Free MyBatis plugin、MyBatisCodeHelper-Pro、MyBatis Log plugin……等等

    懂不懂,都是收获
  • 相关阅读:
    Vue-router(5)之 路由的before家族
    Vue-router(4)之路由跳转
    Vue-router(3)之 router-link 和 router-view 使用
    Vue-router(1)之component标签
    Vue.js(4)- 生命周期
    Vue.js 之 过渡动画
    Vue.js(2)- 过滤器
    函数节流和函数防抖
    认识与学习 BASH
    linux下创建文件与目录时默认被赋予了什么样的权限?
  • 原文地址:https://www.cnblogs.com/paidaxing0623/p/14285888.html
Copyright © 2011-2022 走看看