zoukankan      html  css  js  c++  java
  • Mybatis使用ResultMap

    解决字段名和属性名不一致的问题

      - 新建数据库表的字段-这里就不贴上了
      在下面链接有
    

    https://www.cnblogs.com/rzkwz/p/12853899.html

    设置实体类和数据库字段名不一致

    测试查询

    新建Mapper接口

      public interface UserMapper {
          //查询全部用户
          List<User> getUserAll();
      }
    

    新建Mapper.xml

      <?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.rzk.mapper.UserMapper">
          <!--查询全部用户-->
          <select id="getUserAll" resultType="User">
              select * from user
          </select>
      </mapper>
    

    测试

          @Test
          public void getUserAll(){
              SqlSession sqlSession = MybatisUtils.getSqlSession();
              UserMapper mapper = sqlSession.getMapper(UserMapper.class);
              List<User> all = mapper.getUserAll();
              for (User user : all) {
                  System.out.println(user);
              }
          }
    

    username和password为空

    解决方法

    起别名

           <!--查询全部用户-->
          <select id="getUserAll" resultType="User">
              select id,name AS username,pwd as password  from user
          </select>
    

    使用resultMapper

    • 结果集映射

        <resultMap id="UserMap" type="user">
        <!--property: 实体类中的属性    column:数据库中的字段-->
        <!--数据库中的一个列 映射成数据库中的字段-->
        <result property="username" column="name"/>
        <result property="password" column="pwd"/>
        </resultMap>
        <!--查询全部用户-->
        <select id="getUserAll" resultMap="UserMap">
             select * from user
        </select>
      

    Result总结

    resultMap元素是MyBatis中最重要、最强大的元素。它允许您去掉JDBC从resultset检索数据所需的90%的代码,并且在某些情况下允许您做JDBC甚至不支持的事情。实际上,为复杂语句的join映射之类的东西编写等价的代码可能需要跨越数千行代码。ResultMaps的设计是这样的:简单的语句根本不需要显式的结果映射,而更复杂的语句只需要描述这些关系即可。

  • 相关阅读:
    系统使用 aspose.cell , 使得ashx第一次访问会变很慢
    aspx页面生成html
    SQL Server 监控 使用sp_trace_create
    IE6 IE7: div中table宽度100%导致的宽度问题
    VSTO Word2003 添加菜单栏, 添加工具栏
    mysql主主同步的配置
    linux永久添加静态路由有两种方法
    centos 7 进入单用户系统并且更改所有系统文件
    rabbitmq-3.7.2编译安装全过程
    linux centos 升级 make 4.2
  • 原文地址:https://www.cnblogs.com/rzkwz/p/12859628.html
Copyright © 2011-2022 走看看