Mybatis通過原生sql查詢Map結果集註意事項

背景:

開發中有時會遇到各種事,比如項目組有Utils類方法,解析腳本後得到一個較長的sql語句,通過原生jdbc的原生ps方法查詢時查不到數據的情況。

首先個人肯定是不建議在Utils裏解析腳本後拼接sql的,存在sql注入的危險。

那如何用myabtis動態生成sql(整個sql都是動態的,不確定性非常大,sql來源於腳本),又得防止sql注入問題?

最好的辦法還是在腳本生成的步奏進行限制,對某些關鍵字進行限制,保存時進行過濾。

 

現在項目趕着上線,ps出現了映射問題,查詢交給了mybatis去查詢,參數只有一個,就是這個解析後的sql,返回結果爲hashmap(屬性和值都不確定)

需要注意的是$符號,因爲整個sql語句裏一定存在關鍵符號,防止被轉義使用${str}把原sql完整設置上去。

 mapper接口裏要加上@Param

 最後查詢結果map裏只會有有值的key-value對

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章