Mybatis同时支持多种数据库(oracle 和MySQL)
2018-03-09 21:53
931 查看
这里说下对多种数据库的支持,不是多个数据源。
这里要用到mybatis的databaseId。如下:
在mapper.xml中加上databaseId就可以指定要用的sql,mybatis会根据链接过来的DataSource自动识别。
我这里使用的是spring boot,加上一个bean的配置:
我这里列出了所有支持的数据库类型,实际使用的时候根据自己要用的数据库添加就好。
在配置文件中正常配置数据库信息就可以了。
这里要用到mybatis的databaseId。如下:
<select id="isExist" resultType="Boolean" databaseId="mysql"> SELECT EXISTS(SELECT 1 FROM `${db}`.test_table WHERE table_id=#{tableId} LIMIT 1) </select> <select id="isExist" resultType="Boolean" databaseId="oracle"> SELECT COUNT(*) FROM ${db}."test_table " WHERE "table_id"=#{tableId} </select>
在mapper.xml中加上databaseId就可以指定要用的sql,mybatis会根据链接过来的DataSource自动识别。
我这里使用的是spring boot,加上一个bean的配置:
/** * 自动识别使用的数据库类型 * 在mapper.xml中databaseId的值就是跟这里对应, * 如果没有databaseId选择则说明该sql适用所有数据库 * */ @Bean public DatabaseIdProvider getDatabaseIdProvider(){ DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider(); Properties properties = new Properties(); properties.setProperty("Oracle","oracle"); properties.setProperty("MySQL","mysql"); properties.setProperty("DB2","db2"); properties.setProperty("Derby","derby"); properties.setProperty("H2","h2"); properties.setProperty("HSQL","hsql"); properties.setProperty("Informix","informix"); properties.setProperty("MS-SQL","ms-sql"); properties.setProperty("PostgreSQL","postgresql"); properties.setProperty("Sybase","sybase"); properties.setProperty("Hana","hana"); databaseIdProvider.setProperties(properties); return databaseIdProvider; }
我这里列出了所有支持的数据库类型,实际使用的时候根据自己要用的数据库添加就好。
在配置文件中正常配置数据库信息就可以了。
相关文章推荐
- tigercode是一款自动代码生产工具,支持springmvc+spring+mybatis或springmvc+spring+hibernate框架生成,数据库支持mysql ,oracle
- mysql、sqlServer、hsql、oracle、db2各数据库支持的字段类型与最大精度
- MyBatis中的批量插入、删除数据库数据(MySql和Oracle)
- 让一个软件系统同时支持多个多种数据库灵活配置,让客户可以任意配置各个核心数据库部分
- C++编写数据库备份程序,支持MSSQL\Oracle\MySQL
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(二)
- 使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
- 同时支持多语言,多种数据库的多用博客提供下载 i-favourite 1.5
- 【备用】非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(一)
- PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(四)
- [C#] zdbviewcs: 跨平台数据库查看器。支持SqlServer、Oracle、MySql等数据库
- 让一个软件系统同时支持多个多种数据库灵活配置,让客户可以任意配置各个核心数据库部分
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)
- c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)(三)
- 一个通用数据库操作组件DBUtil(c#)、支持SqlServer、Oracle、Mysql、Access、SQLITE
- 【经典】c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)
- MyBatis 3 自动生成 主键 针对不同的数据库(oracle/sqlserver/mysql)
- navicat--数据库管理软件(支持mysql,oracle,sqlserver,sqlite,postgreSQL)