zoukankan      html  css  js  c++  java
  • 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>

    测试结果:

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

  • 相关阅读:
    shell脚本通过ping命令来获取平均延时
    源码大招:不服来战!撸这些完整项目,你不牛逼都难!
    最新最全的 Android 开源项目合集
    3.环境搭建-Hadoop(CDH)集群搭建
    mycat安装和测试
    LVS+keepalived
    Linux上利用NFS实现远程挂载
    CentOS下MySQL主从同步配置
    Nginx配置文件(nginx.conf)配置详解
    Storm集群搭建
  • 原文地址:https://www.cnblogs.com/jzfanqiejiang/p/12190632.html
Copyright © 2011-2022 走看看