- 1、ResultType
- 简单类型
- 对象类型
- 2、ResultMap
MyBatis
执行sql
语句,得到ResultSet
转换对象,使用全类型限定名或别名
ResultSet
结果类型,指sql
语句执行完毕后,数据转为Java
,其类型是任意的。
处理办法
Mybatis
执行sql
语句,然后Mybatis
调用类的无参构造方法,创建对象.Mybatis
把ResultSet
指定列值付给同名的属性
接口
int countStudent();
Mapper文件
<select id="countStudent" resultType="int">
select count(*) from student
select>
测试方法
@Test
public void testRetunInt(){
int count = studentDao.countStudent();
System.out.println("学生总人数:"+ count);
}
对象类型
接口
Student selectById(int id);
实体类对象
private String name;
private String age;
// set get toString() 等方法
Mapper文件
<select id="selectById" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student where id=#{studentId}
select>
框架的处理方式:
使用构造方法创建对象,条用 setXXX()给属性赋值,相当于Student student = new Student();
,Student 中变量的名字需要和数据库表中的字段名一致。
Sql字段名 | Java对象方法 |
---|---|
id | setId() |
name | setName() |
setName() | |
age | setAge() |
Dao接口方法方法返回时集合类型,需要指定集合中的类型,不是集合本身
2、ResultMap
resultMap
可以定义sql
的结果和java
对象属性的映射关系。更灵活的把列值赋值给指定属性,常用在列明和Java
对象属性名不一样的情况
- 先定义 resultMap 指定列明和属性名的对应关系
- 将
resultType
替换为resultMap
接口
List<Student> selectUseResultMap(QueryParam param);
mapper文件
<resultMap id="studentMap" type="com.bjpowernode.domain.Student">
<id column="id" property="id" />
<result column="name" property="name"/>
<result column="email" property="email" />
<result column="age" property="age" />
resultMap>
<select id="selectUseResultMap" resultMap="studentMap">
select id,name,email,age from student where name=#{queryName} or age=#{queryAge}
select>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)