Mybatis中解決數據庫字段名與實體類屬性名不同的問題


1.問題闡述:

 在Mybatis中,當根據id查詢用戶信息時,映射文件userMapper.xml進行配置查詢時,如果數據庫字段名與實體類屬性名稱不一致,查詢時,會出現為Null。

t_user表字段:

[java]   view plain  copy
  1. create table t_user(  
  2.    u_id int pramary key not null,  
  3.    u_name varchar(20) not null,  
  4.    u_pwd varchar(20) not null  
  5. )  
User.java實體類屬性字段

[java]   view plain  copy
  1. public class User{  
  2.     private int uid;  
  3.     private String name;  
  4.     private String pwd;  
  5. }  
2.解決方式:

1)在userMapper.xml中配置sql查詢語句時,給表中的字段起別名,最好字段別名與實體類中屬性名保持一致,如下:

userMapper.xml:

<注:!-- 編寫SQL語句 id是一個方法,id是唯一的  parameterType(輸入類型)、resultType(輸出類型) -->

[html]   view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3. <!-- namespace:命名空間,對應dao接口 -->  
  4. <mapper namespace="com.casv.entity.userMapper">  
  5.     <select id="getuser"  parameterType="int" resultType="users" >  
  6.         select u_id uid,u_name name,u_pwd pwd from t_user where u_id=#{uid};  
  7.     </select>  
  8. </mapper>  

2)在userMapper.xml中配置resultMap屬性,進行表字段與實體類屬性映射,如下:

userMapper.xml:

    <注:!-- 配置resultMap屬性,實現表字段和實體類屬性的映射  type:實體類的位置 -->

[java]   view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3. <!-- namespace:命名空間,對應dao接口 -->  
  4. <mapper namespace="com.casv.entity.userMapper">  
  5.     <!-- 配置resultMap屬性,進行表字段與實體類屬性映射 -->  
  6.     <resultMap id="BaseResultMap" type="users" >  
  7.        <result column="u_id" property="uid"></result>  
  8.        <result column="u_name" property="name"></result>  
  9.        <result column="u_pwd" property="pwd"></result>  
  10.     </resultMap>  
  11.     <!-- select中引入resultMap屬性,通過id將表字段與實體屬性映射加載進來 -->  
  12.     <select id="getuser"  resultMap="BaseResultMap" parameterType="int" resultType="users" >  
  13.         select * from t_user where u_id=#{sid}  
  14.     </select>  
  15. </mapper>  



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM