系统mysql、sqlserver数据库兼容方案

这篇具有很好参考价值的文章主要介绍了系统mysql、sqlserver数据库兼容方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、技术选型

springboot2.4+、mybatisplus3.4+、mysql5.7+、redis3.0+

二、编写目的

如果产品开发默认数据库采用mysql,但是当客户提出数据库需要采用Sqlserver或者Oracle以及其他国产数据库时,程序中就不能出现方言性的sql语句,否则程序在个性化的sql上做不到数据库兼容,因此要想产品能兼容多种数据类型,则在编码时就要考虑将个性化的方言sql抽离出来。

三、数据库兼容方案

实现思路:
(1)应用启动时要根据数据源知道当前链接的数据库类型,并存到全局变量
(2)根据数据库类型自动设置mybatis-plus分页方言
(3)个性化方言实现不要在主业务中耦合(如:if mysql … else if sqlserver…)
(4)个性化方言实现可以多种数据库类型复用(如mysql、mariadb可以用一种实现)
(5)个性化方言实现类能根据数据库类型自动注入
代码实现:
根据url获取数据库类型

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils;
/**
 * 数据库类型
 */
public class Dialect {
   

    private static DbType dbType = null;
    private static final String DB_URL = "spring.datasource.url";
    /**
     * 获取数据库类型
     * @return
     */
    public synchronized static DbType getDbType(){
   
        if(dbType == null){
   
            String url = PropUtil.getValue(DB_URL);
            dbType = JdbcUtils.getDbType(url);
        }
        return dbType;
    }
}

自定义注解(实现方言实现的选择注入)

import com.baomidou.mybatisplus.annotation.DbType;
import org.springframework.context.annotation.Conditional;

import java.lang.annotation.*;

/**
 * Configuration annotation for a conditional element that depends on the dbType.
 *
 * @author luoxiaolin5
 * @date 14:34 2023/4/12
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({
    ElementType.TYPE, ElementType.METHOD })
@Documented
@Conditional(DbTypeCondition.class)
public @interface ConditionalOnDbType {
   
    /**
     * condition dbType or {@code false} if it fails.
     * @return the DbType
     */
    DbType[] types() default DbType.OTHER;
}

注解条件实现文章来源地址https://www.toymoban.com/news/detail-437724.html

import com.baomidou.mybatisplus.annotation.DbType;
import org.springframework.context

到了这里,关于系统mysql、sqlserver数据库兼容方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql和sqlserver查询数据库表的数量的方法

    一、mysql查询数据库表的数量 1、查询mysql下所有数据库表的数量 2、查询指定数据库的表的数量   二、sqlserver查询数据库表的数量 1、查询指定数据库的表的数量(选择指定的sqlserver数据库后再执行语句) 2、xtype 的描述 (1)数据类型:char(2)。  (2)对象类型。常用列。

    2024年02月07日
    浏览(43)
  • 医院管理系统数据库,课程设计,SQLserver,纯代码设计

    首先创建数据库,并建立各个表之间的主外键约束等,并插入数据。 此时数据库已经建立好了,下面进行数据库的基本操作。 下面是各个表的实体图        下面是数据流图  下面是医院管理E-R图 下面是医院功能结构图 随着计算机技术的飞速发展,计算机在医院管理中应用

    2024年01月16日
    浏览(45)
  • 数据库课程设计——学生信息管理系统(Sqlserver,C#,Winform)

    目录 需求分析 一.登录功能 二.注册功能 三.管理员登录后跳转到功能页面: 四.学生信息管理(主界面,删除功能在主界面代码中) 五.学生信息添加和修改(设计在一个页面上,修改需要选中行) 六.课程信息管理(删除功能在主界面中)  七.课程信息添加和修改  八.成绩

    2024年02月02日
    浏览(49)
  • Sqlserver_Oracle_Mysql_Postgresql不同关系型数据库之主从延迟的理解和实验

    关系型数据库主从节点的延迟是否和隔离级别有关联,个人认为两者没有直接关系,主从延迟在关系型数据库中一般和这两个时间有关:事务日志从主节点传输到从节点的时间+事务日志在从节点的应用时间 事务日志从主节点传输到从节点的时间,相关因素有以下2点: 1、事

    2024年02月14日
    浏览(52)
  • 重装操作系统win10+重装sqlserver+数据库可视化工具

    操作系统win10镜像 原因:sqlserver无数次失败让我放弃原来操作系统。 重装操作系统三步骤 1下载大白菜一键装机工具 2有一个u盘,8G以上存储空间 3win10系统镜像 详细讲解: win10系统镜像下载4.5G,iso文件。 下载地址http://windows.xnjzv.cn/win10/ 这里 选择系统之家。 下载一般需要20分

    2024年02月05日
    浏览(65)
  • 阿里云PolarDB自研数据库详细介绍_兼容MySQL、PostgreSQL和Oracle语法

    阿里云PolarDB数据库是阿里巴巴自研的关系型分布式云原生数据库,PolarDB兼容三种数据库引擎:MySQL、PostgreSQL、Oracle(语法兼容),目前提供云原生数据库PolarDB MySQL版、云原生数据库PolarDB PostgreSQL版和云原生数据库PolarDB分布式版,阿里云百科aliyunbaike.com分享阿里云PolarDB数据

    2024年02月07日
    浏览(56)
  • asp.net老年大学教务管理信息系统VS开发sqlserver数据库web结构c#编程

    一、源码特点         asp.net 老年大学教务管理信息系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使 用c#语言开发 asp.net老年大学教务管理系统 应用技术:asp.net c#+sqlserver 开发工具:

    2024年02月07日
    浏览(64)
  • MySQL数据库同步方案

    MYSQL主从同步架构是目前使用最多的数据库架构之一,主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。 如上图所示,192.168.4.10(主机名为\\\"10.mysql\\\")作为MySQL主数据库,192.168.4.

    2024年02月10日
    浏览(41)
  • 【Sql】win11系统安装sqlserver2008r2数据库,找不到文件user.config line 5

    【问题描述】 在win11系统环境下, 安装sql server 2008 r2数据库的时候,提示【Microsoft.NET Framework】窗口错误。 如果点击继续,应用程序将忽略此错误并尝试继续。 具体错误明细: 创建userSettings/Microsoft.SqlServer.Configuration.LandingPageProperties.Settings的配置节处理过程是出错; 未能加

    2024年02月11日
    浏览(57)
  • asp.net古代服饰系统VS开发sqlserver数据库web结构c#编程包含购物答题功能点

    一、源码特点         asp.net 古代服饰系统 是一套完善的web设计管理系统(含购物 答题),系统采用mvc模式(BLL+DAL+ENTITY)系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境 为vs2010,数据库为sqlserver2008,使用c#语言开发 asp.net 月下逢古代服饰系统1 二、功能

    2024年02月07日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包