idea插件怎么调用databaseTool工具?

背景

还是为了开发脚手架,打算新增一个根据表字段生成代码的demo,后续再去结合我们项目用的数据库生成框架,可以更高效的开发,就考虑使用idea的databasetool插件,来获取表信息

实践

要调用databasetool插件,首先需要将对应的idea类型改为IU IU是无限制版,IC是社区版,社区版是不支持databasetool插件的

 

python

代码解读

复制代码

intellij {     version.set("2022.1.4")     type.set("IU")     plugins.set(listOf("com.intellij.java","DatabaseTools","org.jetbrains.idea.maven")) }

完成之后,在plugin.xml文件中引入依赖,这样子就能使用databasetool了

 

xml

代码解读

复制代码

    <id>com.example.SaaSProjectScaffolding</id>     <depends>com.intellij.modules.platform</depends>     <depends>com.intellij.modules.lang</depends>     <depends>com.intellij.modules.java</depends>     <depends>com.intellij.database</depends>

接下来就是最普通的窗体构建流程了,我们是考虑做在右键窗体上

 所以需要定义action,在右键窗体的第一个新增一个新的选项

整理了一份好像面试笔记包括了:Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题

需要全套面试笔记【点击此处即可】免费获取

ini

代码解读

复制代码

        <action id="generate-action"                 class="com.example.saasprojectscaffolding.action.MybatisGeneratorMainAction"                 text="Code-Generator"                 description="generator idea plugin">             <add-to-group group-id="DatabaseViewPopupMenu" anchor="first"/>         </action>

继承AnAction

 

ini

代码解读

复制代码

public class MybatisGeneratorMainAction extends AnAction {     /**      * 点击后打开插件主页面      *      * @param e      */     @Override     public void actionPerformed(@NotNull AnActionEvent e) {         Project project = e.getProject();         PsiElement[] tableElements = e.getData(LangDataKeys.PSI_ELEMENT_ARRAY);         if (tableElements == null) {             return;         }         List<ColGenerateDTO> colGenerateDTOList = new ArrayList<>();         List<DbTable> dbTables = Stream.of(tableElements).filter(t -> t instanceof DbTable).map(t -> (DbTable) t).collect(Collectors.toList());         for (DbTable dbTable : dbTables) {             DasTable dasObject = dbTable.getDasObject();             JBIterable<? extends DasColumn> columns = DasUtil.getColumns(dasObject);             JBIterable<? extends DasIndex> indices = DasUtil.getIndices(dasObject);             int i = 1;             for (DasColumn column : columns) {                // 获取到表的每行结构的信息             }         }         ClassGenerateDialogWrapper classGenerateDialogWrapper = new ClassGenerateDialogWrapper(project,colGenerateDTOList);         classGenerateDialogWrapper.show();     }

最后的效果就是这样,获取到对应的字段名,字段描述,字段类型等

总结

要引入databaseTool插件,主要的就是要将对应的idea类型改为IU无限制版,然后在引入对应的依赖,在获取psi元素的时候,收集所有DbTable对象,最后获取对应的需要的字段数据即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值