項目中一直使用了mysql-connector-java-5.0.7-bin.jar驅動包,
近來更新成:mysql-connector-java-5.1.7-bin.jar,
在一個關鍵地方,應用總是報異常,左思右想,我換過包,下面做一些簡單測試:
1、工程使用mysql-connector-java-5.0.7-bin.jar
mysql> select version();
+-----------------+
| version() |
| 5.1.16-beta-log |
+-----------------+
+-----------+
| version() |
| 5.1.48 |
+-----------+
調用方法:
getXXMap()
調用語句:
<select id="getXXMap" resultClass="java.util.HashMap">
select concat(countryId,gender,medalType) as conKey,countryId,gender,medalType,medalCount from tableName
</select>
select concat(countryId,gender,medalType) as conKey,countryId,gender,medalType,medalCount from tableName
傳回結果
{CHNW3={medalCount=2, countryId=CHN, conKey=CHNW3, gender=W, medalType=3}, NGRM2={medalCount=1, countryId=NGR, conKey=NGRM2, gender=M, medalType=2}, FRAM2={medalCount=1, countryId=FRA, conKey=FRAM2, gender=M, medalType=2}, UZBM3={medalCount=2, countryId=UZB, conKey=UZBM3, gender=M, medalType=3}}
conkey類型:class java.lang.String
兩台資料庫伺服器測試通過,擷取資料類型正常。
2、工程使用mysql-connector-java-5.1.7-bin.jar
{{[B@1555185={medalCount=2, countryId=RUS, conKey=[B@1555185, gender=W, medalType=1}, [B@1f51e5c={medalCount=2, countryId=BRA, conKey=[B@1f51e5c, gender=M, medalType=3}, [B@1612190={medalCount=1, countryId=FRA, conKey=[B@1612190, gender=M, medalType=3}, [B@df8b14={medalCount=1, countryId=CUB, conKey=[B@df8b14, gender=M, medalType=2}, [B@834cfb={medalCount=3, countryId=CHN, conKey=[B@834cfb, gender=W, medalType=1}, [B@5585dc={medalCount=1, countryId=GER}
兩台資料庫伺服器測試通過,但擷取資料類型無法識别。
conKey類型:class [B
後記:
後來使用jdbcTemplate查詢
傳回結果是:
{conKey=[B@c713d2, countryId=ARG, gender=M, medalType=1, medalCount=1}
類型:class [B
可見,依然還是驅動包問題,換成mysql-connector-java-5.0.7-bin.jar即可。
上一步所做的,引發下一步的錯誤,那麼可以懷疑上一步是有問題;如果N久後才發現這個錯誤,那麼這個錯誤還不一定好找出來,在開發過程中,每一步的測試,還是需要做到位!
本文轉自jooben 51CTO部落格,原文連結:http://blog.51cto.com/jooben/382632