java

Mybatis使用ResultMap

rzk · 5月9日 · 2020年本文共1286个字 · 预计阅读5分钟81次已读

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

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

https://www.cnblo睿共享gs.com/rzkwz/p/12853899.html

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

Mybatis使用ResultMap

测试查询

新建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 = sqlSes睿共享sion.getMapper(UserMapper.class);
          List<User> all = mapper.getUserAll();
          for (User睿共享 user : all) {
              System.out.println(user);
          }
      }

username和password为空

Mybatis使用ResultMap

解决方法

###起别名

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

Mybatis使用ResultMap

使用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>
    

Mybatis使用ResultMap

##Result总结

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

0 条回应