springboot整合mybatis使用一套程序切换不同的数据库

版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/weixin_39895109/article/details/83863838

因项目要求,需在满足要求的时候mysql与oracle是巨款进行切换,找到如下两种方式进行切换:

一、更改配置文件的扫描信息,使用springboot需在配置文件中配置mybatis的信息,将mybatis的文件扫描目录进行变更即可,我的项目的命名规则是mapper底下的是mysql的xml文件,oracle底下的是oracle的xml文件。

mysql的配置信息:

mybatis :
   mapper-locations: classpath:config/mybatis/mapper/**/*.xml
   type-aliases-package: com.etom.vc.admin.pojo.base
   configuration:
     map-underscore-to-camel-case: true

oracle的配置信息:

mybatis :
   mapper-locations: classpath:config/mybatis/oracle/**/*.xml
   type-aliases-package: com.etom.vc.admin.pojo.base
   configuration:
     map-underscore-to-camel-case: true

 二、使用同一份xml文件,但是里面写两个方法适用不同的数据库

1、在启动类配置bean文件

@Bean
public DatabaseIdProvider getDatabaseIdProvider(){
	DatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
	Properties properties = new Properties();
	properties.setProperty("Oracle","oracle");
	properties.setProperty("MySQL","mysql");
	databaseIdProvider.setProperties(properties);
	return databaseIdProvider;
}

2、更改xml文件

原xml文件:

<mapper namespace="com.xxx.mapper" > 

 <select id="list" resultType="com.xxx.base.TestDemo">
       SELECT * from test_demo
 </select>

</mapper>

现xml文件:方法名,参数类型以及返回类型都可不进行更改,只需加上databasrId为你配置的名称类型,如没添加databaseId名称,则默认方法mysql数据库和oracle数据库通用,当项目启用时,如果使用的是oracle则执行databaseId=”oracle”的语句,如果mysql值执行databaseId=”mysql”的语句

<mapper namespace="com.xxx.mapper" > 

<select id="list" resultType="com.xxx.base.TestDemo" databaseId="mysql">
       SELECT * from test_demo
</select>

<select id="list" resultType="com.xxx.base.TestDemo" databaseId="oracle">
       SELECT * from test_demo
</select>

</mapper>

 参考文献:

 [1]火柴盒zhang博客,http://blog.csdn.net/likewindy/article/details/51396576

猜你喜欢

转载自blog.csdn.net/weixin_39895109/article/details/83863838