Mapeo personalizado MyBatis resultMap

Mapeo personalizado MyBatis resultMap


       Cuando el nombre del campo de la tabla de la base de datos no es coherente con el nombre del atributo en la clase de entidad, puede establecer una asignación personalizada a través de resultMap. A continuación se muestra una demostración de resultMap.

Preparar

Objeto de clase de entidad de la tabla
         t_student de la tabla de base de datos          Para reflejar las características de resultMap, las siguientes clases se utilizan como objetos de clase de entidad.
inserte la descripción de la imagen aquí


inserte la descripción de la imagen aquí

Mapeo personalizado MyBatis resultMap

         Aquí hay una demostración consultando un dato (consultando con id como parámetro).
Interfaz de mapeo

public interface TMapper {
    
    

    //通过id查询
    T selectStudentById(@Param("id")Integer id);

}

archivo de mapa

<?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"><!--约束,约束不同xml中所写的标签也不同-->
<mapper namespace="com.xxx.mapper.TMapper"><!--接口-->

    <resultMap id="ttype" type="com.xxx.pojo.T">
        <id property="a" column="id"></id>
        <result property="b" column="name"></result>
        <result property="c" column="age"></result>
        <result property="d" column="sex"></result>
    </resultMap>
<!--    T selectStudentById(@Param("id")Integer id);-->
    <select id="selectStudentById" resultMap="ttype">
        select * from t_student where id=#{id}
    </select>


</mapper>

Explicación
(1) seleccionar etiqueta

         Escriba la declaración de consulta en la etiqueta de selección.
         id: Lo que se escribe es el nombre del método en la interfaz mapeada.
         resultMap: escribe el valor del atributo id en la etiqueta resultMap.

    <select id="selectStudentById" resultMap="ttype">
        select * from t_student where id=#{id}
    </select>

(2) etiqueta de mapa de resultados

         La etiqueta resultMap se utiliza para establecer un mapa personalizado.
         id: indica el ID único de la asignación personalizada.
         tipo: el tipo de la clase de entidad a la que se asignarán los datos consultados.

Subetiquetas de resultMap

         id: establece la relación de mapeo de la clave principal.
         resultado: establezca la relación de asignación de campos comunes.
         propiedad: establezca el nombre de la propiedad en la clase de entidad en la relación de asignación.
         columna: establezca el nombre del campo en la tabla en la relación de asignación.

	<resultMap id="ttype" type="com.xxx.pojo.T">
        <id property="a" column="id"></id>
        <result property="b" column="name"></result>
        <result property="c" column="age"></result>
        <result property="d" column="sex"></result>
    </resultMap>

prueba

		/*省略获取MyBatis核心配置文件等*/
		//通过代理模式创建TMapper接口的代理实现类对象
        TMapper mapper = sqlSession.getMapper(TMapper.class);
		//通过id查询
        T t = mapper.selectStudentById(1);
		//输出查询结果
        System.out.println(t);

resultado de salida
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/baiqi123456/article/details/123880358
Recomendado
Clasificación