原因分析:
這些代碼因為是工具自動生成的,所以也沒仔細檢查.一個小小的錯誤,導致的。
解決辦法:
1、由於使用ibatis的TempTestTableMapper.xml實現接口TempTestTableMapper.java中的方法的時候的id有重復的值,比如
<select id="queryTempTestTableMap" resultMap="TempTestTableResult"> 中的TempTestTableResult在一個xml文件中有兩個這樣的id,修改過來即可
2、刪除Mybatis.xml中的<mappers>標簽所有內容。因為如果user-mapper.xml與namespace的接口在同一路徑下,就不需要在mybaits.xml中再進行配置了。
3、insert 中的parameterType部分,之前我寫的是類名,后來改為完整的包名+類名就好用了,不過,這個問題,其實在之前的iBatise2.x,是允許這樣寫的,有些不解了,不過看來以后需要注意了,盡量都用完整的包名+類名
4、sql語句返回時,使用<select id="xxx" resultType="example">與<resultMap id="example" type=“xxx”>相沖突導致的。將resulttype更改為resultmap即可解決該問題。
5、eclipse編譯了一份在bin目錄下,將bin目錄或者WEB-INF下class目錄清空即可
6、下載了個可以直接運行的eclipse 項目,再與之前的項目對比,好像也沒什么不同。最后使絕招:代碼對比工具,發現生成的PetMapper.xml多了幾百行!原來是我在運行時沒有把之前已經生成的PetMapper.xml刪除掉,再次生成代碼時,又附加了上去!所以在運行代碼生成之前,要把以前已經生成的xml文件清掉,以防出錯。
7、包路徑配錯了,前面說了代碼是用工具自動生成的,所以生成resultType的配置和我真實項目的路徑不一致造成的.