日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Mybatis 將table表名作為參數傳入操作

瀏覽:100日期:2023-10-20 18:13:29

使用 $ 符

如在mapper.xml里面的使用:

Mybatis 將table表名作為參數傳入操作

在mapper層就把這個表名當做普通的參數傳入即可:

Mybatis 將table表名作為參數傳入操作

同理,其實如果真的使用了$ ,在不考慮安全的范疇里面,也可以把一些手動拼接的sql語句作為參數傳入。

補充知識:MyBatis動態傳入表名,字段名參數的解決辦法--用于分表--表名是動態的

一直在使用Mybatis這個ORM框架,都是使用mybatis里的一些常用功能。今天在項目開發中有個業務是需要限制各個用戶對某些表里的字段查詢以及某些字段是否顯示,如某張表的某些字段不讓用戶查詢到。這種情況下,就需要構建sql來動態傳入表名、字段名了。現在對解決方法進行下總結,希望對遇到同樣問題的伙伴有些幫助。

動態SQL是mybatis的強大特性之一,mybatis在對sql語句進行預編譯之前,會對sql進行動態解析,解析為一個BoundSql對象,也是在此處對動態sql進行處理。下面讓我們先來熟悉下mybatis里#{}與${}的用法:

在動態sql解析過程,#{}與${}的效果是不一樣的:

#{ } 解析為一個 JDBC 預編譯語句(prepared statement)的參數標記符。

如以下sql語句

select * from user where name = #{name};

會被解析為:

select * from user where name = ?;

可以看到#{}被解析為一個參數占位符?。

${ } 僅僅為一個純碎的 string 替換,在動態 SQL 解析階段將會進行變量替換

如以下sql語句:

select * from user where name = ${name};

當我們傳遞參數“sprite”時,sql會解析為:

select * from user where name = 'sprite';

可以看到預編譯之前的sql語句已經不包含變量name了。

綜上所得, ${ } 的變量的替換階段是在動態 SQL 解析階段,而 #{ }的變量的替換是在 DBMS 中。 

#{}與${}的區別可以簡單總結如下:

#{}將傳入的參數當成一個字符串,會給傳入的參數加一個雙引號

${}將傳入的參數直接顯示生成在sql中,不會添加引號

#{}能夠很大程度上防止sql注入,${}無法防止sql注入

${}在預編譯之前已經被變量替換了,這會存在sql注入的風險。如下sql

select * from ${tableName} where name = ${name}

如果傳入的參數tableName為user; delete user; --,那么sql動態解析之后,預編譯之前的sql將變為:

select * from user; delete user; -- where name = ?;

--之后的語句將作為注釋不起作用,頓時我和我的小伙伴驚呆了!!!看到沒,本來的查詢語句,竟然偷偷的包含了一個刪除表數據的sql,是刪除,刪除,刪除!!!重要的事情說三遍,可想而知,這個風險是有多大。

${}一般用于傳輸數據庫的表名、字段名等

能用#{}的地方盡量別用${}

進入正題,通過上面的分析,相信大家可能已經對如何動態調用表名和字段名有些思路了。示例如下:

<select resultType='java.util.Map' parameterType='java.lang.String' statementType='STATEMENT'> select ${columns} from ${tableName} where COMPANY_REMARK = ${company} </select>

要實現動態調用表名和字段名,就不能使用預編譯了,需添加statementType='STATEMENT'' 。

statementType:STATEMENT(非預編譯),PREPARED(預編譯)或CALLABLE中的任意一個,這就告訴 MyBatis 分別使用Statement,PreparedStatement或者CallableStatement。默認:PREPARED。這里顯然不能使用預編譯,要改成非預編譯。

其次,sql里的變量取值是${xxx},不是#{xxx}。

因為${}是將傳入的參數直接顯示生成sql,如${xxx}傳入的參數為字符串數據,需在參數傳入前加上引號,如:

String name = 'sprite';

name = '’' + name + '’';

mybatis動態調用表名和字段名,還可以應用于日志的收集上,如數據庫的日志表,每隔一個月動態建一個日志表,表名前綴相同(如log_201610,log_201611等),這樣實現日志的分月分表存儲,方便日志的分析。

以上這篇Mybatis 將table表名作為參數傳入操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产一区二区三区不卡av| 欧美在线资源| 在线手机中文字幕| 国产欧美另类| 日韩福利一区| 一区二区三区四区日本视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美亚洲网站| 日韩和欧美的一区| 91欧美日韩| 亚洲天堂免费| 日韩三级一区| 在线日韩电影| 国产精品片aa在线观看| 色88888久久久久久影院| 天堂√8在线中文| 婷婷色综合网| 欧美xxxx性| 欧美精选一区二区三区| 99国产精品一区二区| 欧美午夜三级| 欧美日韩四区| 免费中文字幕日韩欧美| 久久精品福利| 日韩欧美在线精品| 欧洲亚洲一区二区三区| 亚洲婷婷免费| 精品国产不卡| 免费看的黄色欧美网站| 精品视频自拍| 99pao成人国产永久免费视频 | 91精品在线观看国产| 丁香六月综合| 伊人精品在线| 国产色99精品9i| 免费在线观看一区二区三区| 91成人超碰| 欧美日韩午夜| 天堂√8在线中文| 国产黄大片在线观看| 日韩av一区二区三区四区| 亚洲欧美日本视频在线观看| 97在线精品| 老司机免费视频一区二区三区| 美美哒免费高清在线观看视频一区二区| 在线精品福利| 日韩av电影一区| 欧美黑人做爰爽爽爽| 午夜电影一区| 亚洲资源av| 丝袜美腿一区| 久久精品高清| 一区在线免费| 久久国产高清| 亚洲一区二区网站| 妖精视频成人观看www| 中文字幕成在线观看| 里番精品3d一二三区| 日韩一区二区三区在线看| 国产日韩一区二区三免费高清| 亚洲精品第一| 91精品推荐| 免费在线小视频| 精品理论电影在线| av资源新版天堂在线| 91国语精品自产拍| 日韩精品国产精品| 99精品电影| 欧美日韩国产一区二区在线观看| 99久久夜色精品国产亚洲1000部| 日韩精品三区四区| 男人的天堂久久精品| 国产一区二区三区四区二区 | 欧美国产日本| 欧美美女一区| 成人在线免费观看网站| 中国女人久久久| 国产精品毛片aⅴ一区二区三区| 四虎4545www国产精品 | 色天使综合视频| 日韩国产欧美三级| 91精品一区国产高清在线gif | 日韩综合精品| 亚洲三级毛片| 精品国产精品久久一区免费式| 亚洲网站视频| 中文一区一区三区免费在线观 | 国产精品天天看天天狠| 国产一区二区三区黄网站| 亚洲欧美日韩国产综合精品二区| 丁香婷婷久久| 亚洲精品高潮| 午夜久久福利| 精品成人免费一区二区在线播放| 欧美亚洲免费| 中文字幕日韩高清在线| 亚洲不卡av不卡一区二区| 国产精品激情| 麻豆9191精品国产| 日韩综合精品| 加勒比视频一区| 国产欧美在线观看免费| 日韩精品一级二级 | 亚洲精品一级| 亚洲激情欧美| av一区在线| 激情综合五月| 国产伦精品一区二区三区千人斩| 亚洲一区二区小说| 91九色精品| 蜜桃精品在线| 精品久久影院| 深夜福利视频一区二区| 国产综合婷婷| 久久精品网址| 亚洲免费婷婷| 一区在线免费观看| 香蕉精品视频在线观看| 98精品久久久久久久| 国产欧美一区二区三区米奇| 综合在线一区| 黄色亚洲精品| 日韩久久视频| 欧美亚洲日本精品| 国产欧美日韩精品一区二区三区| 麻豆国产精品| 日韩激情一区二区| 男人的天堂亚洲一区| 天堂av一区| 欧美有码在线| 精品久久久亚洲| 久久91导航| 黑丝一区二区| 日韩欧美中文字幕电影| 国产欧美一区二区色老头| 麻豆久久一区| 亚洲人成在线网站| 亚洲韩日在线| 美女视频网站久久| 深夜日韩欧美| 国产999精品在线观看| 日韩一区二区三免费高清在线观看 | 欧美男人天堂| 久久精品国产免费| 久久男人av资源站| 亚洲a在线视频| 欧美成人综合| 日韩影院免费视频| 制服诱惑一区二区| 天堂成人免费av电影一区 | 激情综合自拍| 激情六月综合| 蜜桃免费网站一区二区三区| 国产视频亚洲| 综合国产视频| 视频一区日韩| 欧美另类中文字幕| 精品国产欧美| 久久久精品网| 亚洲在线成人| 日韩精品国产精品| 国产欧美日韩一区二区三区四区| 国产毛片一区二区三区| 国产va免费精品观看精品视频| 日韩精品欧美| 亚洲一区日本| 国产精品sss在线观看av| 久久中文在线| 国产精品久久久一区二区| 精品国产一区二区三区av片| 国产一区二区三区久久| 老色鬼精品视频在线观看播放| 欧美激情在线精品一区二区三区| 婷婷五月色综合香五月| 青青国产91久久久久久| 国产免费久久| 国产一区欧美| 久久av在线| 麻豆中文一区二区| 国产精品videossex| 国产精品三p一区二区| 久久久久国产一区二区| 亚洲丝袜美腿一区| 99久久亚洲精品| sm久久捆绑调教精品一区| 久久亚洲欧洲| 久久亚洲精品伦理| 青青久久av| 成人午夜亚洲| 加勒比视频一区| 欧美aa在线观看| 国产亚洲精品v| 视频在线在亚洲| 日本一二区不卡| 免费看欧美美女黄的网站| 久久精品国产福利| 亚洲免费一区二区| 欧美国产美女| 日韩欧美激情电影| 婷婷成人在线|