欧美色欧美亚洲高清在线视频-欧美色碰碰碰免费观看长视频-欧美色频-欧美色视频超清在线观看-国产精品免费看久久久-国产精品免费看久久久久

手機版 | 網站導航
觀察家網 > 專題 >

每日聚焦:springboot~mybatis-plus的DynamicTableNameInnerInterceptor實現分表

博客園 | 2023-05-24 15:06:54


【資料圖】

超輕量級

DynamicTableNameInnerInterceptor是mybatis-plug的一個攔截器插件,可以自己定義需要攔截的表單,然后對它進行加工,這時mybatis-plus就會把SQL代碼的表名加上你的這個裝飾。

封裝的思想

我們通常把mybatis做成一個包,公司其它同事直接使用咱們的包,包里會統一定義數據基類數據分頁數據脫敏、審計字段填充等特性,開發人員不需要關注這些內容,這些內容會被自己注冊;或者人開發人員可以直接繼承它們,直接使用即可。

  • 插件注冊器
@Configurationpublic class MybatisPlusConfig implements ApplicationContextAware {ApplicationContext applicationContext;/** * 攔截器 */@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();// 分頁插件, 對于單一數據庫類型來說,都建議配置該值,避免每次分頁都去抓取數據庫類型interceptor.addInnerInterceptor(new LindPaginationInnerInterceptor());// 防止全表更新與刪除interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());// 加載個性化的分表配置,它可能是用戶在當前項目定義的,然后我們統一對它們進行裝配Optional.ofNullable(applicationContext.getBeanNamesForType(DynamicTableNameInnerInterceptor.class)).ifPresent(o -> {for (String beanName : o) {DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = applicationContext.getBean(beanName, DynamicTableNameInnerInterceptor.class);interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);}});return interceptor;}.....}

通過上面的代碼我們知道,在外部定義的DynamicTableNameInnerInterceptor對象,會被自動的注冊到mybatis-plus的組件中,開發人員在具體項目里不需要再次注冊。

  • 開發人員在項目中定義一個t_log表,按時間進行分表
@Beanpublic DynamicTableNameInnerInterceptor tableNamePlusInterceptor() {DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();HashMap map = new HashMap();map.put("t_log", new DaysTableNameParser());dynamicTableNameInnerInterceptor.setTableNameHandlerMap(map);return dynamicTableNameInnerInterceptor;}

代碼的測試

@Test(expected = BadSqlGrammarException.class)public void insertLog() {TLog log = new TLog();log.setMessage("測試");logDao.insert(log);}

生成的sql代碼如下

[main] DEBUG com.lind.mybatis.dao.LogDao.insert - ==>  Preparing: INSERT INTO t_log_20230524 ( id, message, create_by, create_time, update_by, update_time, del_flag ) VALUES ( ?, ?, ?, ?, ?, ?, ? )

需要注意的是,無論是sharding-jdbc還是mybatis-plus-DynamicTableNameInnerInterceptor組成的分表,咱們都需要提前把數據表建立出來,他們這些組件是不會自動建表的。

標簽:

  • 標簽:中國觀察家網,商業門戶網站,新聞,專題,財經,新媒體,焦點,排行,教育,熱點,行業,消費,互聯網,科技,國際,文化,時事,社會,國內,健康,產業資訊,房產,體育。

相關推薦

主站蜘蛛池模板: 亚色影视| 精品一区二区三区视频在线观看免 | 天天色天天射综合网 | 成人久久18免费网 | 欧美日韩国产高清一区二区三区 | 中文字幕在线网 | 57pao国产成视频免费播放 | 黑丝袜照片| 精品国产成人a在线观看 | 久久精品不卡 | 国产第一页浮力影院-欢迎你 | 免费看美女毛片 | 亚洲欧美一区二区三区国产精品 | 中国xxxx视频播放50 | 国产中的精品一区的 | 2021天堂在线亚洲精品专区 | 国产一区二区三区在线观看视频 | 激情一区二区三区成人 | 天堂网亚洲 | 性xxxx毛茸茸俄罗斯 | 欧美日韩一本二本 | 色综合天天综合网国产人 | 日韩精品视频在线观看免费 | 国产高清在线精品一区免费97 | 最近的中文字幕视频完整 | 成人欧美一区二区三区黑人免费 | 大胸美女被强吻胸动态图片 | 天天碰天天操 | 久久综合九色综合97_ 久久久 | 欧美日韩 国产区 在线观看 | 亚洲香蕉一区二区三区在线观看 | 欧美日韩成人午夜免费 | 久草网免费| 国产第一草草影院 | 日本在线视频一区二区三区 | 日本精品免费 | 日本不卡在线视频 | 美女h片 | 亚洲欧美在线中文字幕不卡 | 国产一二三区在线观看 | 蜜桃日本一道无卡不码高清 |