日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mybatis-generator 插件扩展,生成支持多种数据库的分页功能

發布時間:2025/1/21 数据库 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis-generator 插件扩展,生成支持多种数据库的分页功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? ? 背景: 在使用mybatis的過程中,考慮到整合的框架在后期使用的過程中,有可能是需要兼容到多種數據庫的,在這種前提條件下,完成通用CRUD功能的編寫,本文前期先考慮到不同數據庫針對分頁功能的統一操作;例如mysql數據庫的分頁是limit關鍵字的使用, oracle數據庫的分頁是rownum關鍵字的使用;

? ? demo git地址部分:?http://git.oschina.net/alexgaoyh/MutiModule-parent/commit/8e83bb3e5eca7e711a88927905343e499cac359e

????此例中主要使用的屬性為 ?databaseIdProvider , 通過這個屬性的使用,來生成支持多種數據庫的sql分頁語句:

????MutiDatasourcePaginationPlugin ?類文件為擴展的mybatis-generator 插件,用來在生成代碼文件的過程中,完成不同數據庫支持下的分頁邏輯代碼部分;

? ? 此例中只需要關心生成的?MutiDatabaseMapper.xml:

? ?

<select id="selectByExample" resultMap="BaseResultMap"parameterType="com.alexgaoyh.MutiModule.persist.mutiDatabase.MutiDatabaseExample"><include refid="OracleDialectPrefix" />select<if test="distinct">distinct</if><include refid="Base_Column_List" />from mutidatabase mutiDatabase<if test="_parameter != null"><include refid="Example_Where_Clause" /></if><if test="orderByClause != null">order by ${orderByClause}</if><include refid="OracleDialectSuffix" /><include refid="MysqlDialect" /></select><sql id="OracleDialectPrefix"><if test="page != null and _databaseId == 'oracle'">select * from ( select row_.*, rownum rownum_ from (</if></sql><sql id="OracleDialectSuffix"><if test="page != null and _databaseId == 'oracle'"><![CDATA[ ) row_ ) where rownum_ > #{page.begin} and rownum_ <= #{page.end} ]]></if></sql><sql id="MysqlDialect"><if test="page != null and _databaseId == 'mysql'">limit #{page.begin} , #{page.length}</if></sql>




????這樣,通過? databaseIdProvider ?的不同,就完成不同sql語句的引入操作;

? ? 部分鏈接:

????????http://stackoverflow.com/questions/29139092/mybatis-multi-datasource-configuration-issue

????????https://mybatis.github.io/spring/factorybean.html

轉載于:https://my.oschina.net/alexgaoyh/blog/528034

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的mybatis-generator 插件扩展,生成支持多种数据库的分页功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。