idea插件开发

成果

引入依赖

image
image
比如需要MYSQL的连接依赖
image

image
image

GPT提供的其他办法

当您开发 IntelliJ IDEA 插件时,如果您的插件依赖于第三方库或框架,您可以使用配置文件来指定这些依赖。以下是一种常见的方法:

在您的插件项目中创建一个 lib 文件夹(如果还不存在)。

将您的第三方依赖 JAR 文件复制到 lib 文件夹中。您可以从 Maven 仓库、Gradle 或其他途径获取这些 JAR 文件。

在您的插件项目中创建一个名为 plugin.xml 的文件,如果还不存在的话。

在 plugin.xml 文件中,找到 标签,然后在其下方添加一个 标签。在 标签中,您可以列出您的插件所依赖的所有 JAR 文件。以下是一个示例:

<idea-plugin>
    <!-- 其他插件配置 -->

    <depends> <!-- 开始定义依赖 -->
        <plugin id="org.jetbrains.kotlin" /> <!-- Kotlin 插件依赖 -->
        <lib>lib/my-library.jar</lib> <!-- 您的第三方依赖 JAR 文件 -->
    </depends>

    <!-- 其他插件配置 -->
</idea-plugin>

在上面的示例中, 标签指定了您的插件项目中的 lib 文件夹中的 JAR 文件路径。

编译并运行您的插件项目。IntelliJ IDEA 会自动加载并使用这些依赖。

这样,您就可以通过配置文件来指定您的插件所依赖的第三方库或框架。请注意,确保您的 JAR 文件位于正确的位置,并在配置文件中正确地指定路径。另外,如果您的插件有其他的依赖项,您可以按照类似的方式将它们添加到 标签中。

集成mybatis

Gpt答复

要在 IntelliJ IDEA 插件开发中集成 MyBatis,您可以按照以下步骤操作:

在您的插件项目中,将 mybatis 相关的依赖添加到 build.gradle 或 pom.xml 文件中。确保您的插件项目能够访问到 MyBatis 的类和资源。

创建一个自定义的 MyBatis 插件类,它将实现 com.intellij.openapi.components.ApplicationComponent 接口。在这个插件类中,您可以初始化 MyBatis 的配置、创建 SqlSessionFactory,并将其注册为单例组件。

public class MyBatisPlugin implements ApplicationComponent {
    private SqlSessionFactory sqlSessionFactory;

    @Override
    public void initComponent() {
        // 初始化 MyBatis 配置
        Configuration configuration = new Configuration();
        configuration.set...

        // 创建 SqlSessionFactory
        sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

        // 注册 SqlSessionFactory 为单例组件
        ServiceManager.getService(Application.class).registerService(SqlSessionFactory.class, sqlSessionFactory);
    }

    @Override
    public void disposeComponent() {
        // 销毁 SqlSessionFactory
        if (sqlSessionFactory != null) {
            sqlSessionFactory.close();
        }
    }
}

在插件的 plugin.xml 文件中,将您的自定义 MyBatis 插件类添加到 标签中。

<idea-plugin>
    <!-- 其他插件配置 -->

    <application-components>
        <component>
            <implementation-class>com.example.MyBatisPlugin</implementation-class>
        </component>
    </application-components>

    <!-- 其他插件配置 -->
</idea-plugin>

现在,您可以在您的插件项目中使用 MyBatis 来执行数据库操作。通过获取 SqlSessionFactory 实例并创建 SqlSession 对象,您可以执行 MyBatis 的各种数据库操作。

// 获取 SqlSessionFactory 实例
SqlSessionFactory sqlSessionFactory = ServiceManager.getService(SqlSessionFactory.class);

// 创建 SqlSession
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
    // 执行数据库操作
    MyMapper myMapper = sqlSession.getMapper(MyMapper.class);
    myMapper.insertData(data);
    sqlSession.commit();
}

在这个示例中,MyMapper 是一个 MyBatis 的 Mapper 接口,您可以定义和使用自己的 Mapper 接口来执行数据库操作。

通过以上步骤,您可以在 IntelliJ IDEA 插件开发中集成 MyBatis,并使用 MyBatis 来执行数据库操作。请确保您的插件项目中包含了正确的 MyBatis 依赖,并按照插件开发的规范进行配置和使用。

在 IntelliJ IDEA 插件中直接执行 SQL 的方法,可以通过使用 MyBatis 的 SqlSession 对象来实现。下面是一个示例:

首先,确保您的插件项目中已经集成了 MyBatis,并获得了 SqlSessionFactory 实例。

使用 SqlSessionFactory 创建一个 SqlSession 对象。

// 获取 SqlSessionFactory 实例
SqlSessionFactory sqlSessionFactory = ServiceManager.getService(SqlSessionFactory.class);

// 创建 SqlSession
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
    // 执行 SQL
    String sql = "SELECT * FROM my_table";
    List<Map<String, Object>> result = sqlSession.selectList("org.example.MyMapper.executeSql", sql);
    // 处理查询结果
    for (Map<String, Object> row : result) {
        // 处理每一行数据
        // ...
    }
}

在这个示例中,我们使用 SqlSession 的 selectList 方法来执行 SQL 查询,"org.example.MyMapper.executeSql" 是一个 MyBatis 的 Mapper 接口方法的全限定名,用于执行传递的 SQL。

创建一个 Mapper 接口,并在其中定义一个方法,用于执行 SQL。

public interface MyMapper {
    List<Map<String, Object>> executeSql(@Param("sql") String sql);
}

创建一个对应的 Mapper XML 文件,指定这个方法的 SQL 语句。

<!-- MyMapper.xml -->
<mapper namespace="org.example.MyMapper">
    <select id="executeSql" resultType="java.util.Map">
        ${sql}
    </select>
</mapper>

在这个示例中,我们使用 ${sql} 占位符来接收传递的 SQL。

通过以上步骤,您可以在 IntelliJ IDEA 插件中直接执行 SQL。请根据您的具体需求调整 SQL 的执行方式和结果处理方式。

集成数据库的问题

  • No suitable driver found for jdbc
    用Hutool的db包时一直包这个玩意儿,开始以为是连接字符串没配置好,驱动没配置好什么的
    结果只需要再连接数据库connection前 设置一下就好
    try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

参考

8:41:04
IDEA 插件开发 - antlord - 博客园 https://www.cnblogs.com/antlord/p/12863323.html

8:41:07
基于IDEA2020.1的JAVA代码提示插件开发例子_枫舞飘零的博客-CSDN博客_idea代码提示插件 https://blog.csdn.net/weixin_45781803/article/details/105935826?utm_medium=distribute.wap_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-4.wap_withpaiwithsearchfrombaidu

8:41:04
IntelliJ-插件开发教程(六)-UI篇-杂项组件-EditorTextField(代码、文本编辑器)_hse的博客-CSDN博客 https://blog.csdn.net/qq_39017064/article/details/115670944?utm_medium=distribute.wap_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-2.wap_withpaiwithsearchfrombaidu&depth_1-utm_source=distribute.wap_relevant.none-task-blog-2~default~BlogCommendFromBaidu~default-2.wap_withpaiwithsearchfrombaidu

如何在插件中使用三方包

https://blog.csdn.net/liudonglovehemin/article/details/130682997

https://baijiahao.baidu.com/s?id=1770009138463649119&wfr=spider&for=pc

Swing 组件
https://blog.csdn.net/liudonglovehemin/article/details/130740949
插件如何存储值

https://blog.csdn.net/justweb/article/details/134343116

插件开发系列
https://www.jianshu.com/nb/43512704

posted @ 2021-09-15 08:45  方东信  阅读(376)  评论(0编辑  收藏  举报