mysql和oracle兼容

Posted 爬行的蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql和oracle兼容相关的知识,希望对你有一定的参考价值。

Mybatis中提供了两个常用的内置参数: _parameter和_databaseId
_parameter:代表整个参数
单个参数:_parameter就是这个参数
多个参数:参数会被封装为一个map:_parameter就是代表这个map
_databaseId:如果配置了databaseIdProvider标签
_databaseId 就是代表当前数据库的别名oracle或者mysql

如果你的项目是spring.springmvc,mybatis 可以在配置文件中加上配置:
//数据源
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="${jdbc.dbDriver}" />
<property name="driverUrl" value="${jdbc.dburl}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="alias" value="Pool_dbname" />
<property name="prototypeCount" value="0" />
<property name="maximumConnectionCount" value="50" />
<property name="minimumConnectionCount" value="2" />
<property name="simultaneousBuildThrottle" value="50" />
<property name="houseKeepingTestSql" value="select CURRENT_DATE from dual" />
</bean>
//mybatis 文件配置
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:/你自己的xml文件位置" />
<property name="databaseIdProvider" ref="databaseIdProvider" />
</bean>
<!-- databaseIdProvider -->
<bean id="vendorProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="Oracle">oracle</prop>
<prop key="MySQL">mysql</prop>
</props>
</property>
</bean>
<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
<property name="properties" ref="vendorProperties"/>
</bean>

这样配置好以后,你就可以使用(_databaseId)你所配置的这个参数了;比如下面这个例子:
<select id="" parameterType="string" resultType="int">
select count(1) from table where
<if test="_databaseId == ‘mysql‘">
clum = ‘‘
</if>
<if test="_databaseId == ‘oracle‘">
clum like ‘‘
</if>
</select>

对于 _parameter 的用法可以看下面的例子:
_parameter相当于传入的参数employee,判断employee是否为空,若不为空则执行where条件
<select id="" resultType="com.hand.mybatis.bean.Employee">
SELECT * FROM emp
<if test="_parameter!=null">
where ename=#{_parameter.eName}
</if>
</select>

以上是关于mysql和oracle兼容的主要内容,如果未能解决你的问题,请参考以下文章

mysql和oracle兼容

AS 兼容性:“.. from T as a..”适用于 MySQL 和 SQL Server,而不适用于 Oracle? [复制]

oracle的批量插入和mysql的批量插入不一致,mybatis要怎么做兼容

Web项目(原数据库用Oracle)MySql兼容

mysql和sql server和oracle的区别

如何编写通用 SQL 查询以与所有 RDBMS(Oracle、SQL 服务器、MySql、DB2 等等)兼容的 (YYYY-MM-DD) 形式提取日期