zoukankan      html  css  js  c++  java
  • 数据库的表的字段名称与实体类(pojo)不对应解决方案

    数据库的表的字段名称与实体类(pojo)不对应解决方案

    数据库表

    ![image-20200429130200825](C:%5CUsers%5C%E6%9E%97%E6%AD%A3%E6%98%8E%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20200429130200825.png

    对应的实体类为

    image-20200429130352648

    首先在数据库的表的字段名称与实体类(pojo)不对应的时候我们查表

    • 创建一个接口,定义一个方法查询所有用户

    • image-20200429130628870

    • 在对应的Mapper配置文件中配置

      <?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">
      <mapper namespace="com.lin.Dao.UserMapper">
      <!--    <resultMap id="user" type="com.lin.pojo.User">-->
      <!--        <result column="pswd" property="psw"></result>-->
      <!--    </resultMap>-->
      <!--  <select id="getuser" parameterType="_int" resultMap="user">-->
      <!--            select * from mybatis.user where id= #{id}-->
      <!--  </select>-->
          <select id="getAllUser" resultType="com.lin.pojo.User" >
              select *from user
          </select>
      </mapper>
      
    • 测试

      @Test
      public void test1(){
          SqlSession sqlSession = MybatisUtils.getSqlSession();
          UserMapper mapper = sqlSession.getMapper(UserMapper.class);
          List<User> user = mapper.getAllUser();
          for (User i : user) {
              System.out.println(i);
      
          }
      
    • 输出结果

      User{id=1, name='hsay', psw='null'}
      User{id=2, name='哈哈哈', psw='null'}
      User{id=3, name='林正明3', psw='null'}
      User{id=4, name='哈哈哈', psw='null'}

      发现未查到psw,原因就是数据库的字段名称与实体类属性不对应获取不到值

      解决方案

      1.resultmap

      在xml配置中配置resultmap

      <resultMap id="user" type="com.lin.pojo.User">
          <result column="pswd" property="psw"></result>
      </resultMap>
      

      column是表的字段名也就是列名称 property是实体的属性 他俩形成映射关系

      <select id="getAllUser" resultMap="user" >
          select *from user
      </select>
      

      查查询结果

      User{id=1, name='hsay', psw='1222'}
      User{id=2, name='哈哈哈', psw='123abc'}
      User{id=3, name='林正明3', psw='12345'}
      User{id=4, name='哈哈哈', psw='123abc'}

      2.起别名

      在编写sql命令中使用起别名的方法将表中的字段名称起一个名字与实体类的属性相同,这样就能把表中的数据映射到实体类中

      <select id="getAllUser" resultType="com.lin.pojo.User" >
          select id,name,pswd as psw from user
      </select>
      

      查询结果

      User{id=1, name='hsay', psw='1222'}
      User{id=2, name='哈哈哈', psw='123abc'}
      User{id=3, name='林正明3', psw='12345'}
      User{id=4, name='哈哈哈', psw='123abc'}

  • 相关阅读:
    weekly review 200819: Burn the midnight oil
    如何进行Android单元测试
    Android开发教程
    使用SQLite方式存储数据
    图像的平移、旋转及缩放
    JSON数据解析
    Android 多线程下载网络文件
    10套华丽的 Windows 8 Metro 风格图标【2000+免费图标】
    学习新技术的 10 个建议
    BugFree快速使用入门
  • 原文地址:https://www.cnblogs.com/qingfeng5438/p/12801675.html
Copyright © 2011-2022 走看看