您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“mybatis查詢結果映射不到對象怎么處理”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“mybatis查詢結果映射不到對象怎么處理”這篇文章吧。
使用mybatis+springboot 進行數據庫的數據查詢操作,一直拿不到返回結果。
后端dao層(service層調mapper,方法的返回結果一直null)代碼一直空指針,
APP 中接收數據代碼:
//分類名稱 Integer blogCategoryId = blog.getBlogCategoryId();//這里有數據 22 BlogCategory category = blogCategoryMapper.getCategoryById(blogCategoryId);//這里返回結果就一直null blog.setBlogCategoryName(category.getCategoryName());//導致這里一調用方法就報空指針了。
仔細檢查了代碼(debug),controller層+ service層沒問題,那問題坑定再dao層。檢查xml文件,但發現xml文件中查詢方法的sql代碼寫的沒問題:
<select id="getCategoryById" parameterType="java.lang.Integer" resultType="com.hhh.blog.entity.BlogCategory"> SELECT category_id, category_name, category_icon, category_rank, create_time, is_deleted FROM tb_blog_category WHERE category_id = #{blogCategoryId} </select>
這里理論上沒啥問題,但特么的就是數據庫的數據映射不到對象中(實體類都是按照數據庫數據對應的,只多不少)。
resultType=“com.hhh.blog.entity.BlogCategory”
返回結果改成使用映射:
<select id="getBlogCategoryPage" resultMap="getBlogCategoryPageMap"> <resultMap id="getBlogCategoryPageMap" type="com.hhh.blog.entity.BlogCategory"> <id column="category_id" jdbcType="INTEGER" property="categoryId" /> <result column="category_name" jdbcType="VARCHAR" property="categoryName" /> <result column="category_icon" jdbcType="VARCHAR" property="categoryIcon" /> <result column="category_rank" jdbcType="INTEGER" property="categoryRank" /> <result column="is_deleted" jdbcType="TINYINT" property="isDeleted" /> <result column="create_time" jdbcType="DATE" property="createTime" /> </resultMap>
開啟駝峰式命名匹配也可能解決上述問題。沒試過。建議自己搞起來
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in POJO.User matching [java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String]
### The error may exist in Mapper/UserMapper
### The error may involve test.selectUserById
### The error occurred while handling results
### SQL: SELECT * FROM USER WHERE id=?
### Cause: org.apache.ibatis.executor.ExecutorException: No constructor found in POJO.User matching [java.lang.Integer, java.lang.String, java.lang.String, java.lang.String, java.lang.String]
最后,將User構造器中int改為Integer即可、
以上是“mybatis查詢結果映射不到對象怎么處理”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。