IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> idea常用插件 -> 正文阅读

[开发工具]idea常用插件

本文纯属个人笔记自己使用有关文章是在其他渠道摘要过来将会附带摘要的路径

1.如何使用IDEA中自带的数据库database!

首先打开IDEA页面,我们先添加database
详情参考路径

首先打开IDEA页面,我们先添加database
在这里插入图片描述添加后我们就可以在这里打开了!
在这里插入图片描述
添加MySQL数据库
在这里插入图片描述
打开后自己填入信息(测试时,可能会出现无效时区问题,继续看有详细解决办法!)
点击确定后会下载相应驱动,等待即可!

在这里插入图片描述
注意: 如果在测试连接的时候出现了如下错误,点击如下博文解决此问题!
👉服务器返回无效时区解决
在这里插入图片描述
选择自己用的数据库
在这里插入图片描述

查看数据库中的表结构
在这里插入图片描述
查看表的SQL语句
在这里插入图片描述

新建查询,查询SQL语句
在这里插入图片描述
1.创建表
在这里插入图片描述
在这里插入图片描述
方法2:

参考别的表,直接用语句,右键-DDL and Sources-
在这里插入图片描述
然后直接在控制台修改
在这里插入图片描述
修改后直接运行,表就建好了
2.备份表

先用上面的建表方法建好相同字段的表,然后复制表数据就可以(下面直接展示如何复制内容) :右键-Copy Table to
在这里插入图片描述
然后直接确定就OK

3.查看表结构:右键-Modify Table

4.把表数据直接导出成实体类 右键-scripted Extensions-Generate POLOs.clj
在这里插入图片描述
然后选择你需要导出的文件夹就OK了
在这里插入图片描述

2.idea database生成表实体

  1. 配置数据源
    在这里插入图片描述
  2. 配置Generate POJOs.groovy
    数据库右击 Scripted Extensions - Go to Scripts Directory
import com.intellij.database.model.DasTable
import com.intellij.database.model.ObjectKind
import com.intellij.database.util.Case
import com.intellij.database.util.DasUtil
import java.io.*
import java.text.SimpleDateFormat

/*
 * Available context bindings:
 *   SELECTION   Iterable<DasObject>
 *   PROJECT     project
 *   FILES       files helper
 */
packageName = ""
typeMapping = [
        (~/(?i)tinyint|smallint|mediumint|int/)  : "Integer",
        (~/(?i)number/)                          : "Long",
        (~/(?i)bool|bit/)                        : "Boolean",
        (~/(?i)float|double|decimal|real/)       : "Double",
        (~/(?i)timestamp/)                       : "Timestamp",
        (~/(?i)datetime|date|time/)              : "Date",
        (~/(?i)blob|binary|bfile|clob|raw|image/): "InputStream",
        (~/(?i)/)                                : "String"
]

FILES.chooseDirectoryAndSave("Choose directory", "Choose where to store generated files") { dir ->
    SELECTION.filter { it instanceof DasTable && it.getKind() == ObjectKind.TABLE }.each { generate(it, dir) }
}

def generate(table, dir) {
    def className = javaClassName(table.getName(), true)
    def fields = calcFields(table)
    packageName = getPackageName(dir)
    PrintWriter printWriter = new PrintWriter(new OutputStreamWriter(new FileOutputStream(new File(dir, className + ".java")), "UTF-8"))
    printWriter.withPrintWriter { out -> generate(out, className, fields, table) }
}

// 获取包所在文件夹路径
def getPackageName(dir) {
    return dir.toString().replaceAll("\\\\", ".").replaceAll("/", ".").replaceAll("^.*src(\\.main\\.java\\.)?", "") + ";"
}
def generate(out, className, fields, table) {
    out.println "package $packageName"
    out.println ""
    out.println "import javax.persistence.GeneratedValue"
    out.println "import javax.persistence.Column;"
    out.println "import javax.persistence.Entity;"
    out.println "import javax.persistence.Table;"
    out.println "import javax.persistence.Id"
    out.println "import java.sql.Timestamp;"
    out.println "import com.fasterxml.jackson.annotation.JsonIgnoreProperties;"
    Set types = new HashSet()
    fields.each() {
        types.add(it.type)
    }
    if (types.contains("Date")) {
        out.println "import java.util.Date;"
    }
    if (types.contains("InputStream")) {
        out.println "import java.io.InputStream;"
    }
    out.println ""
    out.println "/**\n" +
            " *  \n" +
            " * @author  JunLin\n" +
            " * @Timestamp " + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()) + " \n" +
            " */"
    out.println ""
    out.println "@Entity"
    out.println "@Table(name =\"" + table.getName() + "\")"
    out.println "@SequenceGenerator(name = \"\", sequenceName = \"\", initialValue = 1, allocationSize = 1)"
    out.println "@JsonIgnoreProperties(ignoreUnknown = true)"
    out.println "public class $className  extends NonIDEntity<$className> {"
    out.println ""
    fields.each() {
        out.println ""
        // 输出注释
        if (isNotEmpty(it.commoent)) {
            out.println "\t/**"
            out.println "\t * ${it.commoent.toString()}"
            out.println "\t */"
        }
        if (it.annos != "") out.println "   ${it.annos.replace("[@Id]", "")}"

        // 输出成员变量
        out.println "\tprivate ${it.type} ${it.name};"
    }
    //输出get/set方法
    fields.each() {
        out.println ""
        out.println "\tpublic ${it.type} get${it.name.capitalize()}() {"
        out.println "\t\treturn this.${it.name};"
        out.println "\t}"
        out.println ""
        out.println "\tpublic void set${it.name.capitalize()}(${it.type} ${it.name}) {"
        out.println "\t\tthis.${it.name} = ${it.name};"
        out.println "\t}"
    }
    out.println ""
    out.println "}"
}

def calcFields(table) {
    DasUtil.getColumns(table).reduce([]) { fields, col ->
        def spec = Case.LOWER.apply(col.getDataType().getSpecification())
        def typeStr = typeMapping.find { p, t -> p.matcher(spec).find() }.value
        def comm = [
                colName : col.getName(),
                name    : javaName(col.getName(), false),
                type    : typeStr,
                commoent: col.getComment(),
                annos   : ""]
        if ("id".equals(Case.LOWER.apply(col.getName()))) {
            comm.annos += "\n\t@Id"
            comm.annos += "\n\t@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = \"\")"
            comm.annos += "\n\t@Column(name = \"" + col.getName() + "\", nullable = false, precision = 0 )"
        } else {
            comm.annos += "\t@Column(name = \"" + col.getName() + "\" ,nullable = true)"
        }
        fields += [comm]
    }
}

// 处理类名(这里是因为我的表都是以t_命名的,所以需要处理去掉生成类名时的开头的T,
// 如果你不需要那么请查找用到了 javaClassName这个方法的地方修改为 javaName 即可)
def javaClassName(str, capitalize) {
    def s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str)
            .collect { Case.LOWER.apply(it).capitalize() }
            .join("")
            .replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/, "_")
    // 去除开头的T 
    s = s[1..s.size() - 1]
    capitalize || s.length() == 1 ? s : Case.LOWER.apply(s[0]) + s[1..-1]
}

def javaName(str, capitalize) {
//    def s = str.split(/(?<=[^\p{IsLetter}])/).collect { Case.LOWER.apply(it).capitalize() }
//            .join("").replaceAll(/[^\p{javaJavaIdentifierPart}]/, "_")
//    capitalize || s.length() == 1? s : Case.LOWER.apply(s[0]) + s[1..-1]
    def s = com.intellij.psi.codeStyle.NameUtil.splitNameIntoWords(str)
            .collect { Case.LOWER.apply(it).capitalize() }
            .join("")
            .replaceAll(/[^\p{javaJavaIdentifierPart}[_]]/, "_")
    capitalize || s.length() == 1 ? s : Case.LOWER.apply(s[0]) + s[1..-1]
}

def isNotEmpty(content) {
    return content != null && content.toString().trim().length() > 0
}

static String changeStyle(String str, boolean toCamel) {
    if (!str || str.size() <= 1)
        return str

    if (toCamel) {
        String r = str.toLowerCase().split('_').collect { cc -> Case.LOWER.apply(cc).capitalize() }.join('')
        return r[0].toLowerCase() + r[1..-1]
    } else {
        str = str[0].toLowerCase() + str[1..-1]
        return str.collect { cc -> ((char) cc).isUpperCase() ? '_' + cc.toLowerCase() : cc }.join('')
    }
}

static String genSerialID() {
    return "\tprivate static final long serialVersionUID =  " + Math.abs(new Random().nextLong()) + "L;"
}

  1. 生成实体
    选择需要生成的table右击 Scripted Extensions - Generate POJOs.groovy

3.翻译插件–idea2021

File----Plugins----Translation----重启idea
快捷键 ctrl+shift+Y
在这里插入图片描述

一定不要勾选 使用translate.google.com
在这里插入图片描述

设置完成点击ok
3.选中单词或段落 使用快捷键 ctrl+shift+y 即可查看
在这里插入图片描述

4.idea免费试用30天

https://plugins.zhile.io
在这里插入图片描述

在这里插入图片描述点击该标识
在这里插入图片描述

5.分析pom的依赖书,并且可以分析版本冲突

IDEA内部下载Maven Helper插件
IDEA设置:已打开软件:File–> Setting–>Plugins
未打开IDEA内:Configure --> Project Defaults --> Settings–>Plugins
在这里插入图片描述
在这里插入图片描述
(2)官网下载
在这里插入图片描述
在这里插入图片描述
需要注意根据自己idea的版本下载插件
下载后本地安装
在这里插入图片描述
2.使用

安装后会提示重启,重启完以后打开pom文件在下方会有类似eclips的多选项卡,切换到dependency analyzer 选项卡即可。
在这里插入图片描述

注释:
在这里插入图片描述

6.实体类省略getset的方法

1.插件安装
打开Idea, 左上角菜单选择 ”File --> Settings", 在弹出的对话框中,左侧选择Plugins,搜索栏输入“lombok", 然后点击安装,如下图:
在这里插入图片描述
图中按钮是卸载,因为我这里已经提前安装好了。读者在安装后,IDE会提示重启生效。此时,重启IDEA即可开始使用。

2.插件使用

在项目的pom文件中添加lombok依赖,注意此处scope填写provided,代表这个包不需要打包发布,仅编译时需要用到,且已有提供方。

pom.xml

在模型类上,添加注解 @Data,即可省去手写getter, setter, toString的麻烦,如下图:
在这里插入图片描述
只需要这样一个简单的注解,在其他地方,就可以调用sysAdmin的getUsername()方法了。

7.彩虹代码块,更好看的代码高亮

通过 Settings-> Plugins -> Marketplace 进入插件市场选择并下载安装,完成后重启就生效了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.过滤筛选出来自己想看的日志,可以设置颜色----GrepConsole

配置好各级日志的前景色

在这里插入图片描述效果如下
在这里插入图片描述

9.生成bean,mapper,mapper.xml

MyBatisCodeHelperPro
在开发中编写生成bean,mapper,mapper.xml即费时也费力,可以通过MyBatisCodeHelper-Pro自动生成bean,dao,mapper.xml等文件,然后根据自己的需要进行修改。
下载MyBatisCodeHelper-Pro插件包到本地,在IDEA中安装此插件
在这里插入图片描述
在这里插入图片描述
重启IDEA即可,另外可以设置MyBatisCodeHelper-Pro插件属性
在这里插入图片描述
老版本激活方式:Tools -> MybatisCodeHelper -> offlineActivation,输入任意字符串
在这里插入图片描述

10.实体类自动生成建表语句

创建实体类Person

package com.coody.mtdemo.entity;
import java.util.Date;
import lombok.Data;
/** 
* @Classname Person 
* 
* @Description TODO 
* @Author lw 
* @Date 2020-03-16 10:56 */
@Datapublicclass 
Person {
 /** * 主键ID */
 private Integer id; 
 /** * 角色账户 */
 private String roleAcc; 
 /** * 角色代码 */
 private String roleCode;
  /** * 角色名称 */
  private String roleName; 
  /** * 创建时间 */
  private Date dateCreated;
  }
  

在实体累对象中,点击鼠标右键,选择Generate,再点击generate mybatis files
在这里插入图片描述
在这里插入图片描述
unique:唯一索引,不可重复;

index:普通索引,可重复;

根据需要进行编辑,然后点击OK
在这里插入图片描述
根据需要调整建表语句后,然后在数据库中执行即可。

2.表创建后,生成bean、mapper、mapper.xml

打开IDEA,Database窗口
在这里插入图片描述
选择要生成代码对应的表(如Person),点击右键
在这里插入图片描述
点击MyBatis generator,弹出生成代码窗口
在这里插入图片描述
在这里插入图片描述
点击OK,代码即生成,根据需要做对应的修改即可
在这里插入图片描述

11.CodeGlance 代码迷你缩放图插件

在编辑代码最右侧,显示一块代码小地图 这款插件使用效果图如下,个人感觉还是有点用处,滚动条太小,有这个地图,拖动起来更加方便一点
在这里插入图片描述
在这里插入图片描述

12.IDEA设置中文版API

首先,我们下载好对应的java最新的中文api文档。–待后期完善
在IDEA中设置文档的路径
在这里插入图片描述
这样我们就设置好啦
在这里插入图片描述

13.减少代码错误率代码提示

Codota
代码提示工具,扫描你的代码后,根据你的敲击完美提示

Codota基于数百万个开源Java程序和您的上下文来完成代码行,从而帮助您以更少的错误更快地进行编码。
在这里插入图片描述
安装
在这里插入图片描述

14.这个插件需要注意的–牛逼

Mybatis 使用MybatisCodeHelperPro插件快速开发 流程

如何达到最快的效率 下面是我的开发流程
java类生成crud 不再推荐使用 各种功能没有数据库生成crud 方便 数据库生成crud 在表字段 添加减少字段 合并代码也做得更好

数据库的话 首先要建表 直接写建表语句比较麻烦 我们可以通过java类生成建表语句来生成好

我们先写一个超级简单的java类 啥也不需要加 private也不需要 这个类只是用来生成建表语句
查看演示(打开如果有问题请不要关闭原网页再刷新一下原先的网址就可以了)
或者复制下面的连接打开查看演示视频(由于本文只支持腾讯视频、优酷视频、哔哩哔哩视频)

https://upload-images.jianshu.io/upload_images/11962894-4d6e4746758c2ffa.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/1101

生成好了建表语句后 到数据库执行下 然后从数据库来生成crud代码
(使用IDEA高级版的用户直接到IDEA高级版的数据库执行就行)
这时就可以选择各种配置了

在数据库添加 减少字段后 到数据库 重新生成下就好了

当我们数据库用的tinyInt 或者 smallInt这种 生成java类型 是 byte 和 short 两种类型

在java代码里面操作 byte 和 short 类型 比较麻烦 经常需要 强制转换 这是可以配置下 设置 使用Integer 来替代byte和short

作者:葛俊_0f97
链接:https://www.jianshu.com/p/30da9258aa81
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
在这里插入图片描述
在数据库生成crud时 部分用户可能会勾选 生成example 这个选项

我建议使用 方法名生成sql 来替代生成example这个

首先可以避免生成一大堆的example文件 xml中的example代码看起来也很恶心

写方法名生成sql 的效率也比写example来得快

看xml也很清楚 到底进行了啥操作

另外2.5版本 将支持 定制sql 数据库生成crud中 默认生成的那些语句 比如deleteByPrimaryKey 有不需要的可以一开始就给干掉
如果之后要的话 可以从数据库重新来生成 比如batchInsert 这种 只有当前表需要的时候才来生成

另外我也不推荐 mapper接口做继承 现在代码都是自动生成的,mapper做继承仅能减少一些代码量,没有看到什么其他的效率提升。搞了继承后 看mapper接口 对应的xml 也变得比较麻烦 哪些方法要放到继承里面也比较难定义,有可能某些接口继承的方法根本用不到, 我的建议是每个接口 只生成自己需要的xml方法, 比如batchInsert这个,有个表需要 有的表并不需要。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-08-07 12:17:48  更:2021-08-07 12:18:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 9:19:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码