java中帶參數的方法,8、SpringBoot+Mybatis整合------參數取值方式

 2023-10-08 阅读 34 评论 0

摘要:前言: 我們知道,在mybatis中,參數取值方式有兩種: #{ } 和 ${ } 下面,我們來探討下#{ }與${ }不同。 ? 一、#{ } 例: select * from student where name=#{name} 編譯后執行的sql語句: select * from student where nam

前言:

我們知道,在mybatis中,參數取值方式有兩種:

#{ } 和 ${ }

下面,我們來探討下#{ }與${ }不同。


?

一、#{ }

例:

select * from student where name=#{name}

編譯后執行的sql語句:

select * from student where name=?

說明:

          ? #{ }實現的是JDBC 中preparedStatement中的占位符。

#{ }適合sql語句中的參數傳值,構建sql語句#{ }是不可以的。

例如:

select * from #{tablename} ;

編譯后的sql語句為:

select * from ?

這在sql中是不允許的,所以要用${ 拼接}

#{ }試用的場景

1.where語句里的判斷:

????????? a=#{a},a>#{a},a in {#{a}},a like #{a}........

?         2.set語句:

          ???????????? set a=#{a}

         3.插入語句中:

          ??????????? values(#{a},.......)

         4.其他大部分適合${ }進行拼接

二、${ }

例:

select * from student where name=${name}

編譯后執行的sql語句:

select * from student where name=name

說明:

${ }取參方式是簡單的字符串拼接,不適合進行參數傳值,不然會有sql語句注入的危險。

它更加適合的是構建sql語句。


java中帶參數的方法。?

                                                                      ????????????????????????????2018-07-03

轉載于:https://www.cnblogs.com/TimerHotel/p/springboot_matatis_08.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/130517.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息