resultMap结果映射
自定义列名和java属性之间的关系,常用于数据库列名和Java对象属性不一样的情况下
- 先定义resultMap标签,指定列名和属性的对应关系
- 在select标签中使用resultMap属性来指定定义的resultMap
创建一个和属性和需要查询表列名不一样的类
package org.example.demain;
public class Stuaaa {
private Integer aid;
private String aname;
private String aemail;
private Integer aage;
public Integer getAid() {
return aid;
}
public void setAid(Integer aid) {
this.aid = aid;
}
public String getAname() {
return aname;
}
public void setAname(String aname) {
this.aname = aname;
}
public String getAemail() {
return aemail;
}
public void setAemail(String aemail) {
this.aemail = aemail;
}
public Integer getAage() {
return aage;
}
public void setAage(Integer aage) {
this.aage = aage;
}
@Override
public String toString() {
return "Stuaaa{" +
"aid=" + aid +
", aname='" + aname + '\'' +
", aemail='" + aemail + '\'' +
", aage=" + aage +
'}';
}
}
定义一个dao接口,以id为条件查询值
package org.example.dao;
import org.example.demain.Stuaaa;
public interface StuaaaDao {
Stuaaa selectbyid(Stuaaa stuaaa);
}
创建并配置mapper文件
<?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="org.example.dao.StuaaaDao">
<resultMap id="stua" type="org.example.demain.Stuaaa">
<!-- 主键类型用id-->
<id column="id" property="aid"></id>
<!-- 非主键用result-->
<result column="name" property="aname"></result>
<result column="email" property="aemail"></result>
<result column="age" property="aage"></result>
</resultMap>
<select id="selectbyid" resultMap="stua">
select id,name,email,age from student where id=#{aid}
</select>
</mapper>
在主配置文件中也要指定该文件的路径
<mapper resource="org\example\dao\StuaaaDao.xml"/>
测试代码如下
package org.example;
import org.apache.ibatis.session.SqlSession;
import org.example.Utils.MybatisUtils;
import org.example.dao.StuaaaDao;
import org.example.dao.StudentDao;
import org.example.demain.Stuaaa;
import org.example.demain.Student;
import org.example.demain.clq;
import org.junit.Test;
import java.util.List;
public class MyTest {
@Test
public void testone(){
SqlSession session=MybatisUtils.getSqlSession();
StuaaaDao stu=session.getMapper(StuaaaDao.class);
Stuaaa a=new Stuaaa();
a.setAid(1001);
a=stu.selectbyid(a);
session.close();
System.out.println(a);
}
}