mybatis——解决属性名和数据库字段名不一致问题


首先说一下,我的数据库名字叫mybatis,里边有一张user表,表中有三个字段,id、name、pwd;然后实体类中对应三个属性id、name、password(id和name跟数据库字段名一致,但是第三个属性password和数据库的字段pwd不同)

 

 解决方案

方式一:起别名

  在映射文件中给sql语句里的字段取别名

<select id="getUserById" parameterType="int" resultType="user">
        select id,name,pwd AS password from mybatis.user WHERE id = #{id}
</select>

*注意:

  若数据库字段名和实体类的属性名相同,则可以不用取别名

 

方式二:使用resultMap(结果集映射)

<resultMap id="UserMap" type="user">
  <result column="pwd" property="password"/>
</resultMap>
<select id="getUserById" parameterType="int" resultMap="UserMap">
    select * from mybatis.user WHERE id = #{id}
</select>

注意:

  若数据库字段名和实体类的属性名相同,则resultMap中可以不用写它们的result标签。当然写上也是没关系的,例如:

<resultMap id="UserMap" type="user">
  <result column="id" property="id">
  <result column="name" property="name">   <result column="pwd" property="password"/> </resultMap> <select id="getUserById" parameterType="int" resultMap="UserMap"> select * from mybatis.user WHERE id = #{id} </select>

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM