Mybatis入门(五)属性名和字段名不一致解决


在学Mybatis的时候都需要创建一个实体类,但创建实体类的变量必须和数据库的一样,这章就来解决这个有趣的问题

 

目录:

 

 

问题是这样:

 

 

输出的结果是:

 

 

 

password为空,这就很难受;

解决方法:

第一种:

改UserMapper.xml配置文件的SQL语句:

<mapper namespace="com.hdlf.dao.UserMapper">
    <!--id就是UserMapper里的方法名字,里面写执行MySQL的命令 resultType返回的类型-->
    <select id="getUser" resultType="com.hdlf.pojo.User">
        SELECT id, name, pwd as password FROM mybatis.user where id = #{id}
    </select>
</mapper>

这是最暴力的方法

 

第二种:

使用resultMap方法映射到实体类中:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--绑定UserMapper接口,大白话就是实现UserMapper这个接口的功能--> <mapper namespace="com.hdlf.dao.UserMapper"> <!--结果集映射--> <resultMap id="MapUser" type="User"> <!--column是数据库中的字段,property是实体类中的变量名--> <result column="id" property="id"></result> <result column="name" property="name"></result> <result column="pwd" property="password"></result> </resultMap> <!--使用resultMap映射,resultMap就是上面resultMapd的id--> <select id="getUser" resultMap="MapUser"> SELECT * FROM mybatis.user where id = #{id} </select> </mapper>

 

测试结果:

 

 

如果遇到这样的问题就用第二种方法吧。


免责声明!

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



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