MyBatis之适配不同数据库

本文介绍了如何在Java项目中使用DBIdEnum枚举类与MyBatis的DatabaseIdProvider配合,以根据不同数据库类型动态选择SQL语句,展示了如何配置和在SQL标签中使用databaseId属性。
摘要由CSDN通过智能技术生成

DBIdEnum.class
下面的productName可以通过SqlSession获取,获取方式:Java之获取SqlSession和ProductName

package com.qdbeiqi.bpm.domain.visitor.db.adaptation;

import lombok.AllArgsConstructor;

/**
 * @author Jalon
 * @since 2023/11/2 17:20
 **/
@AllArgsConstructor
public enum DBIdEnum {
    SqlServer("Microsoft SQL Server", "sqlserver"),
    KingBase("KingbaseES", "kingbase");

    public static DBIdEnum getEnumer(String _databaseId) {
        DBIdEnum[] values = DBIdEnum.values();
        for (DBIdEnum v : values) {
            if (_databaseId.equals(v.getValue())) {
                return v;
            }
        }
        throw new RuntimeException("DBIdEnum中找不到给定的_databaseId:" + _databaseId);
    }

    // 数据库厂商提供的productName
    private String name;
    // 根据productName自定义应用中使用的值
    private String value;

    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }
}

MyBatisConfig.class

package com.qdbeiqi.bpm.domain.visitor.db.adaptation;

import org.apache.ibatis.mapping.DatabaseIdProvider;
import org.apache.ibatis.mapping.VendorDatabaseIdProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

/**
 * @author Jalon
 * @since 2023/11/2 17:56
 **/
@Configuration
public class MyBatisConfig {

    @Bean
    public DatabaseIdProvider databaseIdProvider() throws Exception {
        VendorDatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
        Properties props = new Properties();
        DBIdEnum[] values = DBIdEnum.values();
        for (DBIdEnum v : values) {
            props.put(v.getName(), v.getValue());
        }
        databaseIdProvider.setProperties(props);
        return databaseIdProvider;
    }
}

通过if判断

<if test="_databaseId == 'sqlserver'">
       CONVERT(VARCHAR(10), visit_time, 23)
</if>
<if test="_databaseId == 'kingbase'">
    to_char(visit_time, 'YYYY-MM-DD')
</if>

通过标签databaseId

<select id="" databaseId="sqlserver" resultType="">
</select>
<select id="" databaseId="kingbase" resultType="">
</select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MyBatis-Plus支持达梦数据库,可以通过下面的示例来实现对达梦数据库适配:1. 在pom.xml文件中添加达梦数据库的驱动依赖: <dependency> <groupId>dm</groupId> <artifactId>dm-driver</artifactId> <version>7.7</version> </dependency>2. 在application.yml文件中配置达梦数据库的连接:spring: datasource: url: jdbc:dm://localhost:5236/test username: user password: 123456 driver-class-name: dm.jdbc.driver.DmDriver3. 在Mybatis-Plus的配置文件中添加对达梦数据库的自定义配置:mybatis-plus: configuration: dm: sql-injector: com.baomidou.mybatisplus.extension.injector.LogicSqlInjector4. 重新启动应用,MyBatis-Plus就可以正常使用达梦数据库了。 ### 回答2: MyBatis-Plus是一款优秀的持久层框架,它在MyBatis基础上进行了扩展和增强,提供了更为便捷的开发方式。 要适配达梦数据库,首先需要在项目的依赖管理中添加达梦数据库的驱动,可以通过Maven或Gradle下载并配置。 然后,在项目的配置文件中配置数据库连接信息,包括数据库类型、URL、用户名和密码等。 接下来,在项目中引入MyBatis-Plus的依赖,并配置相应的插件和拦截器,以支持MyBatis-Plus的特性和功能。可以使用@EnableMybatisPlus注解开启MyBatis-Plus的自动配置。 在编写数据访问层的代码时,可以使用MyBatis-Plus提供的通用Mapper接口和Wrapper查询构造器来实现便捷的数据库操作。通用Mapper接口提供了常见的增删改查方法,可以不再需要手动编写SQL语句,大大简化了开发工作。而Wrapper查询构造器提供了更为灵活的查询方式,可以进行复杂的条件查询。 此外,MyBatis-Plus还提供了代码生成器,可以根据数据库表结构自动生成实体类和Mapper接口的代码,极大地减少了手动创建的工作量。 综上所述,适配达梦数据库的示例主要包括添加数据库驱动、配置数据库连接信息、引入MyBatis-Plus依赖、配置插件和拦截器、使用通用Mapper接口和Wrapper查询构造器、以及使用代码生成器等步骤。通过这样的配置和操作,我们可以方便地使用MyBatis-Plus来操作达梦数据库,提高开发效率。 ### 回答3: MyBatis-Plus是一个在MyBatis基础之上进行扩展的数据库持久化框架,它提供了一系列的增强功能,简化了数据库操作的编写流程。但是,默认情况下,MyBatis-Plus并不支持达梦数据库,因为达梦数据库和其他主流数据库有一些不同之处。 要在MyBatis-Plus中适配达梦数据库,首先需要引入达梦数据库的相关的驱动包。可以下载达梦数据库官方提供的JDBC驱动包,并将其添加到项目的依赖中。 接着,在配置文件中,需要指定使用达梦数据库数据库方言。可以通过设置 `mybatis-plus.global-config.db-config.db-type` 属性来指定数据库方言为`dm`。 然后,需要配置数据源,指定连接达梦数据库的相关信息,比如数据库的URL、用户名和密码等。可以通过在配置文件中配置数据源相关的属性来完成这一步骤。 接下来,可以使用MyBatis-Plus提供的各种操作方法来进行数据库的增删改查等操作。MyBatis-Plus中的操作方法和MyBatis中的类似,只是在一些语法和使用上有一些不同,需要根据达梦数据库的特点进行相应的调整。 最后,根据实际需求进行一些其他的配置和优化。比如,可以通过配置文件中的属性来设置一些缓存策略、分页方言等。 总之,适配达梦数据库主要包括引入相关的驱动包、配置数据源、设置数据库方言和使用MyBatis-Plus的操作方法等步骤。通过这些步骤的完成,就可以在MyBatis-Plus中成功适配达梦数据库,并进行相应的数据库操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会功夫的李白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值