1. 程式人生 > >MyBatis中parameterType的錯誤使用情況

MyBatis中parameterType的錯誤使用情況

我知道,如果mapper的介面中使用一個引數的情況下,可以使用parameterType進行接受引數型別的指定,現在mapper.xml中的內容如下:


parameterType可以接受簡單的型別,也可以接受複雜來行,如map,自定義pojo等等,但是看看上面的程式碼並沒有什麼問題,不過也確實沒有什麼問題,再來看看mapper對應的介面類:


 貌似也沒什麼問題,因為Long型在service中方便判斷是否是空等情況,所以我也沒有在意,就這樣一直用下來了,然後就悲劇了,報錯資訊如下:


看到這個報錯介面我瞬間蒙了,不是說簡單型別的可以這樣使用嗎,直接用parameterType,報這個錯誤的意思明顯是將Long當作了一個pojo物件來處理了,思前想後的找不到答案那,還把之前的學習資料翻出來看,也沒問題啊,是簡單型別啊。。。簡直是要瘋的感覺,然後突然發現,之前的示例中,介面中的型別使用的是,int,long之類的,而不是Integer,Long,抱著試一試的心態做了如下修改:


將這裡改為了long了,再次檢視結果:


可以看到,錯誤資訊變成了,找不到這個方法了,還是納悶啊,命名有這個方法啊,但是引數有問題,是Long型的,但是我這裡介面是long的,所以檢視一下呼叫的程式碼:


很明顯,這裡面傳入的是Long型的,問題肯定是出在這裡了,所以把這裡的Long型改為了long,如圖:


修改之後還是不行

所以,還是使用@Param註解,之後就解決了,或者像網上說的使用

_parameter

相關推薦

MyBatisparameterType錯誤使用情況

我知道,如果mapper的介面中使用一個引數的情況下,可以使用parameterType進行接受引數型別的指定,現在mapper.xml中的內容如下: parameterType可以接受簡單的型別,也可以接受複雜來行,如map,自定義pojo等等,但是看看上面的程式碼並沒

mybatisparameterType可以寫的別名

    mybatis中parameterType可以寫的別名    https://blog.csdn.net/sdzhangshulong/article/details/51749807 _byte byte

Mybatis --03.mybatisparameterType引數型別

parameterType有三種類型的輸入引數 1、基本資料型別 2、hashmap 3、pojo包裝類 前面已使用過了基本資料型別和pojo型別的引數。下面使用hashmap型別 UserD

mybatisparameterType 物件傳值欄位匹配問題

眾所周知,parametertype傳入引數分為以下兩種: (1)java基本資料型別 (2)複雜資料型別(java實體類和Map,List)  本文的重點討論的分頁查詢中是java實體類的欄位匹配問題 分頁的通用實體類如下: public abstract cla

Maven+Spring+SpringMVC+Mybatis的常見錯誤

tis ntc nes nec nag ttpClient uil uestc alt 1 org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘us

mybatismybatisinsert 主鍵自增和不自增的插入情況【mysql】

pro SQ class TE IV rop generate mys bat 主鍵不自增:返回值是插入的條數 <insert id="add" parameterType="EStudent"> insert into TStudent(name,

MyBatisMapper對映檔案的輸入(parameterType)和輸出(resultType)對映

Mapper.xml對映檔案中定義了操作資料庫的sql,每個sql是一個statement,對映檔案是mybatis的核心。 輸入型別parameterType 1)傳遞簡單型別 傳遞簡單型別,前兩節課都見過,這裡只給出案例: 2)傳遞pojo物件 MyBat

Mybatis傳參 錯誤

一、發現問題 <select id="queryStudentByNum" resultType="student" parameterType="string">   select num,name,phone from student &

關於mybatis不執行的其中一種情況

問題 我在mapper中寫<collection/> 作聯合查詢的時候,返回的結果裡沒有聯合查詢的資料。使用debug在控制檯把sql語句打印出來後,發現根本沒有執行聯合查詢對應的sql語

mybatisresultMap丟失查詢結果,association“錯誤”去除重複資料的問題

  <resultMap id="commissionRec" type="CommissionRec" >         <result property="sourceName" column="cmr_sourceName"/>        

Mybatis配置對映檔案parameterType的用法

在mybatis對映介面的配置中,有select,insert,update,delete等元素都提到了 parameterType的用法,parameterType為輸入引數,在配置的時候,配置相應的 輸入引數型別即可。parameterType有基本資料型別和複雜的資料型別配置。 1.基

mybatis 使用 parameterType="Map" 傳入值後 資料庫得到的卻是 NULL

mybatis 對映檔案: <select id="queryFuzzyMessagesByUser" parameterType="Map" resultType="MessageDto"> select <include refid="mess

Mybatis對於Mysql資料庫NULL的日期資料報錯 mysql錯誤: Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP

原 mysql錯誤: Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP 2010年06月01日 17:38:00 閱讀數:5307

mybatismapper.xml定義錯誤伺服器啟動不了,並且沒有報錯

錯誤:mapper.xml 有錯誤語法 錯誤跟蹤:org.mybatis.spring.SqlSessionFactoryBean類下的方法 buildSqlSessionFactory()中468行: throw new NestedIOException("Faile

MyBatis的jdbcType、resultType、resultMap、parameterType

1 jdbcType MyBatis的jdbcType是一個列舉類,有以下型別: public enum JdbcType { ARRAY(2003), BIT(-7), TINYINT(-6), SMALLINT(5), INTE

mybatis怎麼使用like形成動態模糊查詢,錯誤使用CONCAT拼接sql的看過來

這個問題曾經困擾了我很長時間,因為我需要動態引數的模糊查詢,上網找了很多,都說用CONCAT但我用ORACLE的時候發現並不能滿足我的需求。 今天就說一下,我是怎麼解決這個問題的。 其實我當時為了拼sql一經頭昏腦脹了,但是你想想看,為什麼一定要在sql中拼湊sql呢?

MyBatis的對映檔案標籤屬性 parameterType

mybatis可以傳入的引數型別1.基本資料型別       可以通過#{引數名}直接獲取。每次只能傳入一個值<select id="selectTeacher" parameterType="int" resultType="com.myapp.domain.Te

MybatisresultType為hashmap的情況

現在有一張user表   id ,name,age 我們進行一個簡單的查詢: <select id="test" resultType="Uer">          select id ,name,age  from user </select&

Mybatissql語句的in查詢,一定要判斷null的情況

不嚴謹的寫法,可能會報錯:in (),這種情況不符合mysql的語法。    select from loanwhere LOAN_ID in <foreach item="item" index

Mybatis引數為物件包含list情況處理

mybatis是一個非常好用且靈活的持久層框架,但也正是因為太過靈活,導致有時候引數很難整理。我把我在專案中遇到的一個特殊情況列出來,希望下次再碰到時,也有個印象。 實體類如下: package com.kxlive.erp.sc.stock.vo; import jav