激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 解決MyBatis @param注解參數類型錯誤異常的問題

解決MyBatis @param注解參數類型錯誤異常的問題

2021-08-05 11:44wangjinnan16 Java教程

這篇文章主要介紹了解決MyBatis @param注解參數類型錯誤異常的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

問題現象

今天使用mybatis遇到個很奇怪的問題,我使用一個參數@param("threshold"),類型是java的double,但是很奇怪,一直告訴我參數轉換錯誤,int不能轉double,我就奇怪了,哪里來的int。

解決辦法

我感覺可能使用用到了mybatis的關鍵字,所以就把threshold換了個名字,果然好了。

問題原因

某些關鍵詞,mybatis會認為是某種類型,下面列出來一些,后面發現再補充。

size, threshold, modCount是int類型

loadFactor是float類型

補充:mybatis使用@Param的坑

在mybatis中@Param注解的作用是為參數指定一個名稱,在mapper文件中使用,而不是使用mybatis的arguments[0,1…]代替。但是在非動態的mapper——mybatis根據mapper接口創建實現類,@param注解是不起作用的。

閱讀mybatis的源碼得知,檢查@param注解的方法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
private boolean hasNamedParams(Method method) {
   boolean hasNamedParams = false;
   final Object[][] paramAnnos = method.getParameterAnnotations();
   for (Object[] paramAnno : paramAnnos) {
    for (Object aParamAnno : paramAnno) {
     if (aParamAnno instanceof Param) {
      hasNamedParams = true;
      break;
     }
    }
   }
   return hasNamedParams;
  }

此方法位于 org.apache.ibatis.binding.MapperMethod 的內部類 MethodSignature 中。

根據源碼一步一步的遞歸:

MethodSignature的構造方法——>MapperMethod的構造方法——>MapperProxy的cachedMapperMethod 和invoke方法 ——> MapperProxyFactory中的 newInstance 方法。

?
1
2
3
4
5
6
7
8
9
10
@SuppressWarnings("unchecked")
 protected T newInstance(MapperProxy<T> mapperProxy) {
//jdk的動態代理生成mapper對象
  return (T) Proxy.newProxyInstance(mapperInterface.getClassLoader(), new Class[] { mapperInterface }, mapperProxy);
 }
 public T newInstance(SqlSession sqlSession) {
//MapperProxy實現了Invocation接口
  final MapperProxy<T> mapperProxy = new MapperProxy<T>(sqlSession, mapperInterface, methodCache);
  return newInstance(mapperProxy);
 }

在整合spring與mybatis,使用spring提供的sqlSessionTemplate進行查詢時,沒有從MapperRegistry的mapper緩存集合中取mapper,而是直接使用配置的sqlSessionTemplate。

所以這種清況下,@param注解是無效的。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/wangjinnan16/article/details/75284394

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕在线观看精品 | 黑人操穴 | lutube成人福利在线观看污 | 激情久久一区二区 | 成人精品aaaa网站 | 国产一区二区免费看 | 欧美一级做一级爱a做片性 毛片电影网址 | 精品国内视频 | 韩国19禁在线 | 国产亚洲精品久久久久5区 男人天堂免费 | 中文字幕在线永久视频 | 日韩av影片在线观看 | 色戒在线版 | 黄色片网站免费看 | 一区二区三区欧美在线观看 | 视频一区二区在线播放 | 92自拍视频| 亚洲一区二区三区高清视频 | 中文字幕四区 | 黄色羞羞视频在线观看 | xnxx 日本免费 | 免费观看一区二区三区视频 | 成年人在线视频免费 | 久久激情国产 | 永久av在线免费观看 | 国产精品一区二区三区在线播放 | 亚洲一区久久 | 亚洲小视频在线 | a网在线 | 久久超 | 视频在线亚洲 | 一级毛片在线看 | 日韩欧美中文字幕视频 | 美女毛片儿 | 久久国产一级 | 成人黄色网战 | 日韩高清影视 | 国产一区二区视频在线播放 | 2018亚洲男人天堂 | 一级裸体视频 | 成人精品一区二区三区中文字幕 |