Springboot + Mybatis 同时支持多类数据库SQL的解决方案

发布于:2023-09-10 ⋅ 阅读:(73) ⋅ 点赞:(0)

pg、Oracle、MySQL 的字符串转日志函数不同,可通过 _databaseId 来判断该执行哪段SQL

多余的代码就不写上了,直接根据下列代码就能理解。

			<choose>
                <when test="_databaseId == @com.yinhai.ta404.module.mybatis.support.DriverType@ORACLE.type">
                    WHERE t1.CH_TIME &gt;= TO_DATE(#{beginDate, jdbcType=VARCHAR}, 'YYYY-MM-DD')
                    AND t1.CH_TIME &lt; TO_DATE(#{endDate, jdbcType=VARCHAR}, 'YYYY-MM-DD')
                    AND (t1.EX_STATUS = '1' or t1.EX_STATUS = '3')
                </when>
                <when test="_databaseId == @com.yinhai.ta404.module.mybatis.support.DriverType@MYSQL.type">
                    WHERE t1.CH_TIME &gt;= STR_TO_DATE(#{beginDate, jdbcType=VARCHAR},'%Y-%m-%d')
                    AND t1.CH_TIME &lt; STR_TO_DATE(#{endDate, jdbcType=VARCHAR},'%Y-%m-%d')
                    AND (t1.EX_STATUS = '1' or t1.EX_STATUS = '3')
                </when>
                <when test="_databaseId == @com.yinhai.ta404.module.mybatis.support.DriverType@POSTGRESQL.type">
                    WHERE t1.CH_TIME &gt;= TO_DATE(#{beginDate, jdbcType=VARCHAR}, 'YYYY-MM-DD')
                    AND t1.CH_TIME &lt; TO_DATE(#{endDate, jdbcType=VARCHAR}, 'YYYY-MM-DD')
                    AND (t1.EX_STATUS = '1' or t1.EX_STATUS = '3')
                </when>
            </choose>
本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到