mybatis的输出结果
mybatis执行了sql语句,得到java对象
1)rsultType结果 类型,指sql语句执行完毕后,数据转为java对象,java类型是任意的。
rsultType是结果类型,两种类型:1.类型的全限定名称,2.类型的别名,例如
处理方式:
1.mybatis执行sql语句,然后mybatis通用类的无参构造方法,创建对象。
2.mybatis把RsultSet指定列值给赋给同名的属性
<select id = "selectMultiPosition" resultType="com.bjpowernode.domain.Student">
select id,name,email,age from student
</select>
对等的jdbc
ResultSet rs = executeQuery(“select id,name,email,age from student”);;
while(rs.next){
Student student = new Student();
student.setId(rs.getInt(“id”));
student.setName(rs.getString(“name”))
}
2)定义自定义类型的别名
1)在mybatis主配置文件中定义,在后面使用标签定义别名
<typeAliases>
<typeAlias type="com.sdyu.entity.Student" alias="stu"/>
</typeAliases>
可以指定一个类型一个自定义别名
type:自定义类型的全限定名称
alias:别名(短小,容易记忆的)
2)可以在resultType中使用自定义别名
name是包名,这个包中的所有类,类名就是别名(类名不区分大小写)
<typeAliases>
<typeAlias type="com.sdyu.entity.Student"/>
</typeAliases>
Map
1)列名是map的key,列值是map的value
2)返回map时只能返回一行记录,多余一行是错误的。
resultMap:结果映射,指定列名和java对象的属性对应关系
1)你自定义列值赋值给那个属性
2)当你的列名和属性名不一样时,一定使用resultMap
定义resultMap id :自定义名称,表示你定义的这个resultMap type:java类型的全限定名称
<resultMap type="com.bjpowernode.domain.Student" id="studentMap">
<!-- 列名和java属性的关系
注解列,使用id标签
column:列名
property:java类型的属性名
-->
<id column="id" property="id" />
<!-- 非主键列,使用result -->
<result column="name" property="name"/>
<result column="password" property="password"/>
</resultMap>
resultMap 和 resultType 不要一起用,二选一