表1
表2
兩張表都存在name字段
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="cn.liziy.dao.StudentDao"> <!-- 查詢所有學生信息, 多表連接使用resultMap --> <select id="selectAllStu" resultMap="studentResultMap"> SELECT s.id, s.name, s.sex, s.age, class_id, c.id , c.code, c.name FROM tb_student s LEFT JOIN tb_class c ON class_id = c.id </select> <!-- 映射Student對象的resultMap --> <resultMap id="studentResultMap" type="cn.liziy.entity.Student"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="sex" column="sex"/> <result property="age" column="age"/> <!-- 多對一關聯:association --> <association property="clazz" javaType="cn.liziy.entity.Clazz"> <id property="id" column="id"/> <result property="code" column="code"/> <result property="name" column="name"/> </association> </resultMap> </mapper>
控制台的輸出
頁面的json數據
clazz-name的值錯誤了
解決方法
<?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="cn.liziy.dao.StudentDao"> <!-- 查詢所有學生信息, 多表連接使用resultMap --> <select id="selectAllStu" resultMap="studentResultMap"> SELECT s.id, s.name, s.sex, s.age, class_id, c.id cid, c.code, c.name cname FROM tb_student s LEFT JOIN tb_class c ON class_id = c.id </select> <!-- 映射Student對象的resultMap --> <resultMap id="studentResultMap" type="cn.liziy.entity.Student"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="sex" column="sex"/> <result property="age" column="age"/> <!-- 多對一關聯:association --> <association property="clazz" javaType="cn.liziy.entity.Clazz"> <id property="id" column="cid"/> <result property="code" column="code"/> <result property="name" column="cname"/> </association> </resultMap> </mapper>
為SQL語句增加別名 關聯的部分也要修改(紅色部分為修改的內容)
問題解決