栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis项目实战 快速将MySQL转换成Oracle语句

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis项目实战 快速将MySQL转换成Oracle语句

一、前言

因项目需求,小编要将项目从mysql迁移到oracle中 ~

之前已经完成 数据迁移 (https://zhengqing.blog.csdn.net/article/details/103694901)

现在将完成 基于MyBatis-Plus将项目中的MySQL语句全部转换成Oracle语句

大概实现步骤:
  1. 将项目改成支持双库配置(因项目基于mysql数据库已经全部完成,也不想直接替换掉,于是新增oracle库,让整个项目可支持多个数据库,这里不是多数据源哦!)
  2. Oracle中创建常用函数
  3. 遍历项目中的xxxMapper.xml文件,找到mysql与oracle语句的区别,然后替换绝大部分SQL
  4. 最后将一些特殊的mysql语句手动修改为oracle语句
二、MyBatis-Plus 支持双库配置 【mysql,oracle】 1、application.yml中配置mybatis-plus的database-id
# mybatis-plus配置
mybatis-plus:
  configuration:
    jdbc-type-for-null: 'null' # 解决oracle更新数据为null时无法转换报错
    database-id: oracle # 支持多库配置 mysql,oracle
2、MybatisPlus核心配置文件 -> 根据不同的数据库厂商执行不同的SQL
@Configuration
@MapperScan("com.zhengqing.demo.modules.**.mapper*")
public class MybatisPlusConfig {

    
    @Bean
    public DatabaseIdProvider getDatabaseIdProvider(){
 DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
 Properties properties = new Properties();
 // 为不同的数据库厂商起别名
 properties.setProperty("MySQL","mysql");
 properties.setProperty("Oracle","oracle");
 databaseIdProvider.setProperties(properties);
 return databaseIdProvider;
    }

}
3、xxxMapper.xml中通过databaseId指定数据库类型

    SELECT * FROM 表名 LIMIT 1