首页 > 其他分享 >Mybatis中的resultMap理解

Mybatis中的resultMap理解

时间:2023-03-06 16:46:43浏览次数:55  
标签:username String hashedPassword resultMap public 理解 user Mybatis id

在xml文件中写SQL语句,若只是单独用到一张表,一般用resultType就够了,对于下划线和驼峰形式的转换一般在框架内配置一下即可实现;

但是在实际操作过程中往往会涉及到多表操作,一个类的属性也常常会使用另一个类作为其中一个属性;这个时候就要用到resultMap这个标签。

这个标签最本质解决的问题就是SQL语句查询结果与类属性对应问题。

 

 

 

对于这个标签,其实最简单的应用就是前面说的下划线与驼峰之间的转换。

// 实体类
public class User {
  private int id;
  private String username;
  private String hashedPassword;

  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getUsername() {
    return username;
  }
  public void setUsername(String username) {
    this.username = username;
  }
  public String getHashedPassword() {
    return hashedPassword;
  }
  public void setHashedPassword(String hashedPassword) {
    this.hashedPassword = hashedPassword;
  }
}
//原本中的xml文件中的SQL
<select id="selectUsers" resultType="User">
  select
    user_id,user_name,hashed_password
  from some_table
  where id = #{id}
</select>
// 实际xml文件中
<resultMap id="userResultMap" type="User">
  <id property="id" column="user_id" />
  <result property="username" column="user_name"/>
  <result property="password" column="hashed_password"/>
</resultMap> 



<select id="selectUsers" resultMap="userResultMap">
  select user_id, user_name, hashed_password
  from some_table
  where id = #{id}
</select>

 

 

注:(此处说的关系针对的是sql中的两张表之间的关系)

  对于一对一以及一对多关系,用<association>标签。

  对于多对多关系,用<collection>标签

  column表示查出来的列名;property表示类中的列名

  

 

参考链接:

https://blog.csdn.net/cijiancao/article/details/124532368

 

标签:username,String,hashedPassword,resultMap,public,理解,user,Mybatis,id
From: https://www.cnblogs.com/ReturnOfTheKing/p/17184236.html

相关文章

  • mybatis-plus返回json数据不出来
      使用 autoResultMap属性值,自动映射json类型  @TableName(opensnewwindow)描述:表名注解,标识实体类对应的表使用位置:实体类 @TableName("sys_user"......
  • Oracle使用MyBatis插入一条数据自动递增主键并返回主键值
    前期准备--创建t_table表createtablet_user(idnumber(10)primarykey,namevarchar2(20),agenumber(3));commentontablet_useris'用户信息表';......
  • RESTful架构的一些理解
    网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(highlatency)、高并发等特点。网站开发,完全可以采......
  • Mybatis映射文件配置
    <?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernam......
  • Mybatis配置文件
    1.结构配置的属性顺序不能错<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http:/......
  • 理解C#中装箱和拆箱是什么 有什么用
    前言C#是一种通用、面向对象的编程语言,由微软(Microsoft)开发的,属于强类型语言,变量需先声明数据类型、然后给变量赋初值,最后才能使用该变量。否者程序直接报错、提示。一......
  • HTML与CSS手写-4.实现常用布局(三栏、圣杯、双飞翼、吸顶),可是说出多种方式并理解其优缺
    实现常用布局两栏布局三栏、圣杯、双飞翼圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式。两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应......
  • MyBatis连接Oracle数据库的细节错误总结
    错误一错误提示org.apache.ibatis.exceptions.PersistenceException:###Errorupdatingdatabase.Cause:java.sql.SQLSyntaxErrorException:ORA-00911:无效字符......
  • 再次理解存储过程
    1:定义     存储过程(storedprocedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。     存......
  • Mybatis 和 Mybatis Plus 的区别(面试)
    MybatisPlusMybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Myb......