四、数据库表中的字段名与实体类属性名不相同,可用resultMap解决

本文介绍如何使用 MyBatis 的 resultMap 来解决数据库表字段名与实体类属性名不一致的问题。通过创建 Teacher 实体类,并定义 teacherMapper.xml 映射文件,实现了对 teacher 表的数据查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四、数据库表中的字段名与实体类属性名不相同,可用resultMap解决

1.准备表和数据

CREATE TABLE teacher(
t_id number(8) PRIMARY KEY,
t_name VARCHAR2(30)
);
INSERT INTO teacher(t_id,t_name) VALUES(10001,'LS1');
INSERT INTO teacher(t_id,t_name) VALUES(10002,'LS2');

2.定义实体类

public class Teacher {

	private int t_id;
	private String tname;
	public Teacher() {
	}
	public Teacher(int t_id, String tname) {
		super();
		this.t_id = t_id;
		this.tname = tname;
	}
	public int getT_id() {
		return t_id;
	}
	public void setT_id(int t_id) {
		this.t_id = t_id;
	}
	public String getTname() {
		return tname;
	}
	public void setTname(String tname) {
		this.tname = tname;
	}
	@Override
	public String toString() {
		return "Teacher [t_id=" + t_id + ", tname=" + tname + "]";
	}
	
}

3.通过resultMap实现对teacher的查询  teacherMapper.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.mybatis.entity.teacherMapper">
	<resultMap type="Teacher" id="TeacherResultMap">
		<id column="t_id" property="t_id"/>
		<result column="t_name" property="tname"/>
	</resultMap>
	<select id="getAllTeacher" resultMap="TeacherResultMap">
		select * from teacher 
	</select>
</mapper>
4.在conf.xml文件中注册classMapper.xml,设置entity的别名

	<typeAliases>
		<typeAlias type="com.mybatis.entity.Teacher" alias="Teacher"/>
	</typeAliases>
	<mappers>
		<mapper resource="com/mybatis/entity/teacherMapper.xml" />
	</mappers>

5.测试

	@Test
	public void selectAll(){
		try {
			String statement = "com.mybatis.entity.teacherMapper.getAllTeacher";
			List<Teacher> teachers = null;
			teachers = session.selectList(statement);
			System.out.println(teachers);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}


resultMap的属性:

id属性resultMap标签的标识。
type属性返回值的全限定类名,或类型别名。


子元素属性:

id元素 ,     用于设置主键字段与领域模型属性的映射关系.
result元素 ,用于设置普通字段与领域模型属性的映射关系


column为数据库表中列名
property为类中属性名 如:Teacher中的tname属性与teacher表中的t_name属性



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值