欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

@insert mybatis踩坑記錄,實體接收前端傳遞的參數(shù)

 更新時間:2022年07月11日 11:26:31   作者:lv_ys_hao  
這篇文章主要介紹了@insert mybatis踩坑記錄,實體接收前端傳遞的參數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@insert mybatis踩坑實體接收前端傳遞的參數(shù)

插入方法使用的使用entity實體對象進行接收的

@Insert(" insert into infor (name,pass,salary) values (#{infor.name},#{infor.pass},#{infor.salary})")
? ? public int save(@Param("infor") Infor infor); ?

//必須添加@param這個注解,使得mybatis去解析這個數(shù)據(jù),否則一直提示infor的沒有g(shù)etter方法

@Insert(" insert into infor (name,pass,salary) values (#{name},#{pass},#{salary})")
? ? public int save( Infor infor); ?

經(jīng)過后來的工作才 認識到,使用上面的一種方式確實可行,同時我們可以直接使用這個實體類的屬性進行對應(yīng)的insert的操作,特此來更新博文。

錯誤提示:

org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'infor' in 'class com.ys.study.entity.Infor'
    at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:419) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:164) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:162) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:49) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.reflection.MetaObject.metaObjectForProperty(MetaObject.java:145) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:115) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:79) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:93) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:64) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:86) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:49) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198) ~[mybatis-3.4.6.jar:3.4.6]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185) ~[mybatis-3.4.6.jar:3.4.6]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_171]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_171]

mybatis獲取主鍵及參數(shù)傳遞的有關(guān)問題

獲取主鍵值

insert into emp values(null,#{ename},#{age},#{sex}) /*insert into emp values(null,'${ename}',${age},'${sex}')*/

不同的參數(shù)類型,${}和#{}的不同取值方式

1.當傳輸參數(shù)為單個String或基本數(shù)據(jù)類型及其包裝類

  • #{}:可以以任意的名字獲取參數(shù)值
  • :只能以{value}huo${_parameter}獲取

2.當傳輸參數(shù)為javabean時

#{}和都可以通過屬性名直接獲取屬性值,但是要注意{}的單引號問題

3.當傳輸多個參數(shù)時,mybatis會默認將這些參數(shù)放在map集合中

兩種方式:

(1) 鍵為01.2,3,…n-1 以參數(shù)為值

(2) 鍵為param1,param2,param3…param(n).以參數(shù)為值

  • #{}:#{arg0}/#{arg1};#{param1},#{param2}
  • :{param1},param2,{arg0},arg1.但是要注意{}的單引號問題

4.當傳輸map參數(shù)時

#{}和都可以通過鍵的名字直接獲值,但是要注意{}的單引號問題

5.命名參數(shù)

可以通過@param(:‘key’)為map集合指定鍵的名字

Emp getEmpByIDAndEnameParam(@Param(“eid”) Integer eid, @Param(“ename”) String ename);

#{}和都可以通過鍵的名字直接獲值,但要注意{}的單引號問題

6.當傳輸參數(shù)為List或Array,mybatis會將List或Array放在map中

List以list為鍵,Array以array為鍵

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot中EasyExcel實現(xiàn)execl導(dǎo)入導(dǎo)出

    SpringBoot中EasyExcel實現(xiàn)execl導(dǎo)入導(dǎo)出

    本文主要介紹了SpringBoot中EasyExcel實現(xiàn)execl導(dǎo)入導(dǎo)出,實現(xiàn)了如何準備環(huán)境、創(chuàng)建實體類、自定義轉(zhuǎn)換器以及編寫導(dǎo)入邏輯的步驟和示例代碼,感興趣的可以了解下
    2023-06-06
  • 如何使用@Value和@PropertySource注入外部資源

    如何使用@Value和@PropertySource注入外部資源

    這篇文章主要介紹了如何使用@Value和@PropertySource注入外部資源的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MyBatis-Plus中提供的各種注解詳細說明

    MyBatis-Plus中提供的各種注解詳細說明

    這篇文章主要介紹了MyBatis-Plus中提供的各種注解詳細說明,下面對MyBatis-Plus提供的注解進行整理,本文提供了部分示例代碼以方便理解,需要的朋友可以參考下
    2023-11-11
  • Spring boot項目部署到云服務(wù)器小白教程詳解

    Spring boot項目部署到云服務(wù)器小白教程詳解

    這篇文章主要介紹了Spring boot項目部署到云服務(wù)器小白教程詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • SpringBoot實現(xiàn)接口參數(shù)加密解密的示例代碼

    SpringBoot實現(xiàn)接口參數(shù)加密解密的示例代碼

    加密解密本身并不是難事,問題是在何時去處理?SpringMVC?中給我們提供了?ResponseBodyAdvice?和?RequestBodyAdvice,利用這兩個工具可以對請求和響應(yīng)進行預(yù)處理,非常方便。廢話不多說,我們一起來學(xué)習(xí)一下
    2022-09-09
  • Java StringUtils字符串分割轉(zhuǎn)數(shù)組的實現(xiàn)

    Java StringUtils字符串分割轉(zhuǎn)數(shù)組的實現(xiàn)

    這篇文章主要介紹了Java StringUtils字符串分割轉(zhuǎn)數(shù)組的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java Morris遍歷算法及其在二叉樹中的應(yīng)用

    Java Morris遍歷算法及其在二叉樹中的應(yīng)用

    Morris遍歷是一種基于線索二叉樹的遍歷算法,可以在不使用棧或遞歸的情況下,實現(xiàn)二叉樹的前序、中序和后序遍歷。該算法利用二叉樹中的空指針或線索指針,將遍歷序列嵌入到原二叉樹中,實現(xiàn)了常數(shù)級別的空間復(fù)雜度,適用于對空間要求較高的場景
    2023-04-04
  • Java實現(xiàn)線程的四種方式解析

    Java實現(xiàn)線程的四種方式解析

    這篇文章主要介紹了Java實現(xiàn)線程的四種方式解析,線程是進程中的一個執(zhí)行單元,負責(zé)當前進程中程序的執(zhí)行,一個進程中至少有一個線程,一個進程中是可以有多個線程的,這個應(yīng)用程序也可以稱之為多線程程序,需要的朋友可以參考下
    2023-10-10
  • springboot框架中如何整合mybatis框架思路詳解

    springboot框架中如何整合mybatis框架思路詳解

    這篇文章主要介紹了springboot框架中如何整合mybatis框架,本文通過示例圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Spring Boot對Future模式的支持詳解

    Spring Boot對Future模式的支持詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot對Future模式的支持的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧
    2019-01-01

最新評論