【RuoYi-SpringBoot3-Pro】:想要什么数据库都有!三步教你轻松添加新支持
RuoYi-SpringBoot3-Pro 已经提供了对MySQL、PostgreSQL、达梦、瀚高、高斯数据库的支持,但是还有很多其他的数据库,这里介绍下如何添加新的数据库

相关文章
【RuoYi-SpringBoot3-Pro】:多数据库支持,再也不用为数据库选型烦恼了
【RuoYi-SpringBoot3-Pro】:使用 Dify + AI 快速生成多数据库建表语句
上述两篇文章介绍了多数据库支持和AI表生成。没看的小伙伴可以先看下。
初始化SQL脚本
- 国内的数据库大部分是基于 PostgreSQL 改造的。可以先尝试直接使用
./sql/ruoyi-pgsql.sql - 再可以查看新数据库官方是否提供转换工具
- 如果上面2种方法都不可行,可以使用AI转换
原生的 MyBatis 改造
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;
}
- 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 建表智能体
- 添加新的数据库

- 条件分支添加新的数据库分支

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

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