四、数据库表中的字段名与实体类属性名不相同,可用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属性
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。