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


  • 相关阅读:
    9-29 函数嵌套及作用域链
    9-29 函数进阶_命名空间和作用域
    9-28 函数
    9-27 文件的”改”、删、重命名
    9-26 联合文件的登录注册
    9-26 文件操作一些功能详解
    9-26 文件操作
    9-26 复习数据类型
    9-25 集合
    python基础day7_购物车实例
  • 原文地址:https://www.cnblogs.com/Alan0218/p/8471545.html
Copyright © 2011-2022 走看看