【RuoYi-SpringBoot3-Pro】:想要什么数据库都有!三步教你轻松添加新支持

0 阅读1分钟

【RuoYi-SpringBoot3-Pro】:想要什么数据库都有!三步教你轻松添加新支持

RuoYi-SpringBoot3-Pro 已经提供了对MySQL、PostgreSQL、达梦、瀚高、高斯数据库的支持,但是还有很多其他的数据库,这里介绍下如何添加新的数据库

相关文章

【RuoYi-SpringBoot3-Pro】:多数据库支持,再也不用为数据库选型烦恼了

【RuoYi-SpringBoot3-Pro】:使用 Dify + AI 快速生成多数据库建表语句

上述两篇文章介绍了多数据库支持和AI表生成。没看的小伙伴可以先看下。

点击获取最新AI资讯、n8n工作流、开发经验分享

初始化SQL脚本

  • 国内的数据库大部分是基于 PostgreSQL 改造的。可以先尝试直接使用 ./sql/ruoyi-pgsql.sql
  • 再可以查看新数据库官方是否提供转换工具
  • 如果上面2种方法都不可行,可以使用AI转换

原生的 MyBatis 改造

  1. ruoyi-framework\src\main\java\com\ruoyi\framework\config\MyBatisConfig.java 文件中,修改 databaseIdProvider 方法,添加新数据库的配置。
 @Bean
    public DatabaseIdProvider databaseIdProvider() {
        DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
        Properties p = new Properties();
        p.setProperty("MySQL", "mysql");
        p.setProperty("PostgreSQL", "pgsql");
        p.setProperty("Highgo", "hg");
        p.setProperty("DM DBMS", "dm");
        databaseIdProvider.setProperties(p);

        return databaseIdProvider;
    }
  1. XML 文件中,支持新数据库的语法。示例:
<!-- ruoyi-system\src\main\resources\mapper\system\SysUserMapper.xml -->
<choose>
            <when test="'pgsql' == _databaseId || 'hg' == _databaseId">
				'${deptId}' = ANY (string_to_array(ancestors, ','))
            </when>
            <!-- 金仓数据库 -->
            <when test="'jincang' == _databaseId">
               <!--  金仓数据库的语法 -->
            </when>
            <otherwise>
                find_in_set(#{deptId}, ancestors)
            </otherwise>
        </choose>

新增 Dify 建表智能体

  1. 添加新的数据库

  1. 条件分支添加新的数据库分支

  1. 添加新的 LLM 节点,参照其他节点修改 system 提示词

至此,从系统改造到AI建表智能体生成就已完成。