<强>数据准备强>
字段 注释 SNO 学号 SNAME 学生名字 SSEX 性别 SBIRITHDAY 生日 类 班级
& lt; !——建表语句:——比; 创建表TEST.STUDENT ( SNO varchar(3)非空, SNAME varchar(4)非空, SSEX varchar(2)非空, SBIRTHDAY datetime空, 类varchar (5) null )
& lt; !——Bean文件——比; 公开课学生{ 私人字符串SNO; 私人字符串SNAME; 私人字符串SSEX; 私人SBIRTHDAY日期; 私人String类; & lt; !——获取和设置方法——比; … }
<>强例子强>
按照返回数据类型大致分为基础数据类型,JavaBean和地图。其中虽然返回的结果行数有单条也有多条,对应的接口返回类型是集合或者单个对象,但是在xml映射文件中,resultType的值是相同的。
1,指定字段-基础数据类型
接口类:
& lt; !——单条结果集——比; 字符串querySingleStudent (); & lt; !——多条结果集——比; ListqueryAllStudent ();
Mapper文件:
& lt; !——单条结果集——比; & lt;选择id=" querySingleStudent " resultType=白址北? 选择SNAME从测试。学生限制1 & lt;/select> & lt; !——多条结果集——比; & lt;选择id=" queryAllStudent " resultType=白址北? 从TEST.STUDENT选择SNAME & lt;/select>
2,地图,一般为hashMap
接口类:
& lt; !——单条结果集——比; Object> Map<字符串;queryStudentMap (); & lt; !——多条结果集——比; List
其中:
-
<李> hashmap为简写,也可以使用java.util。李HashMap全称>
<李>默认情况下,结果集中值为null时,不会增加映射对象的setter方法,(map对象时为把)。该行为可以在mybatis-config。xml配置文件中设置
& lt;设置name=" callSettersOnNulls " value=" https://www.yisu.com/zixun/true "/比;李覆盖默认设定。>
3, JavaBean
接口类:
& lt; !——单条结果集——比; 学生querySingleStudentBean (); & lt; !——多条结果集——比; ListqueryAllStudentBean ();
Mapper文件:
& lt; !——单条结果集——比; & lt;选择id=" queryStudentMap " resultType=把北? 选择SNAME从测试。学生限制1 & lt;/select> & lt; !——多条结果集——比; & lt;选择id=" queryAllStudentMap " resultType=把北? 从TEST.STUDENT选择SNAME & lt;/select>
resultType="学生"为学生。java的别名,也可以是全限定名。别名在mybatis-config。xml配置文件中设置:
& lt; typeAliases> & lt; typeAlias类型=" com.bean。学生”别名="学生"/比; … & lt;/typeAliases>
但是如果JavaBean文件很多,不想一个个指定,也可以使用包标签设置mybatis自动扫描,别名即为类名的小写。
& lt; typeAliases> & lt;包名="包名”/比; & lt;/typeAliases>
对于一般的查询语句,resultType足够了。对于多表查询等情况,就要请出resultMap了。
<强>数据库字段和java数据类型映射关系强>
数据库字段类型jdbcType和java数据类型并不是一一对应的关系,而且不同数据库类型也不尽相同。而mybatis将TypeHandler作为两者之间的映射关系。大部分情况下都是没有问题的,但是并非能覆盖所有的情况,特殊情况下可以使用resultMap自定义这种映射关系。