我的mybatis從oracle遷移轉換mysql的差異【原】


僅此作為筆記

分頁差異

oracle
<select id="select" parameterClass="java.util.Map" resultClass="com.bobo.code.model.LoginMember">
     select * from      
             (select  ROWNUM rn , D.*   FROM 
                          ( select
                                  <include refid= "selectSql" ></include>
                                <include refid= "pageCondition" ></include>
                             order by A.t_crt_tm DESC
                             ) D
                              <![CDATA[ 
                                 WHERE ROWNUM <= #maxRowNum:VARCHAR# 
                             ]]> 
                 )
                 <![CDATA[
                        WHERE rn > #minRowNum:VARCHAR# 
                 ]]> 
    </select>

 

mysql
    <select id="select" parameterClass="java.util.Map" resultClass="com.bobo.code.model.LoginMember">
                           select
                                  <include refid= "selectSql" ></include>
                                <include refid= "pageCondition" ></include>
                                 limit #minRowNum:VARCHAR# , #pageSize:VARCHAR#
    </select>

 

   

因為oracle分頁需要3個select 達到最佳性能,具體原因自行百度

 

而mysql分頁基本語句如下

收到客戶端{pageNo:1,pagesize:10} 
select * from table limit (pageNo-1)*pageSize, pageSize;
收到客戶端{pageNo:5,pageSize:30} 
select * from table limit (pageNo-1)*pageSize,pageSize;

 

所以仔細分析差異后, 還是使用oracle的參數,那么mysql的分頁條件就變成

表名差異

oracle是不關心表名大小寫的, 但是mysql卻大小寫敏感

oracle mysql
INSERT INTO WEB_KING_LOGIN_MEMBER INSERT INTO web_king_login_member

日期差異

oracle mysql timestamp
sysdate now()
TO_CHAR(t_crt_tm, 'YYYY-MM-DD HH24:MI:SS')    AS tCrtTm,  FROM_UNIXTIME( UNIX_TIMESTAMP(t_upd_tm) , '%Y-%m-%d %H:%i:%s')    AS tCrtTm, 
A.t_crt_tm = TO_DATE(#cCrtTm:VARCHAR#,'yyyy-mm-dd hh24:mi:ss'); A.t_crt_tm = unix_timestamp(#cCrtTm:VARCHAR#);

 

 

uuid差異

oracle mysql
SYS_GUID() REPLACE(UUID(),"-","")

 

like差異

oracle mysql
A.c_desc like '%' || #cDesc:VARCHAR# || '%'

 

A.c_desc like concat('%', #cDesc:VARCHAR#, '%')

 

 

其它差異

MySQL與Oracle 差異比較之三函數=>https://www.cnblogs.com/HondaHsu/p/3641190.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM