一、parameterType 配置参数
1、概述
指定输入参数类型,mybatis通过ognl从输入对象中获取参数值拼接在sql中。
SQL 语句传参,使用标签的 parameterType 属性来设定。
该属性的取值可以是基本类型,引用类型(如:String 类型),还可以是实体类类型(POJO 类)。 同时也可以使用实体类的包装类,意思就是该实体类数据类型是包装类的成员变量。
2、注意事项
- 基本类型和 String 我们可以直接写类型名称(String和string都行) ,也可以使用包名 . 类名的方式 ,例如 : java.lang.String。
- 实体类类型,目前我们只能使用全限定类名。
究其原因,是 mybaits 在加载时已经把常用的数据类型注册了别名,从而我们在使用时可以不写包名, 而我们的实体类并没有注册别名,所以必须写全限定类名。注册后可以直接写类名类型(大小写都行
)。
3、实体类注册别名
在核心配置文件SqlMapConfig.xml中
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--dtd是对xml配置标签与属性的约束-->
<configuration>
<typeAliases>
<!--给单个类起别名-->
<!--<typeAlias type="cn.cyl.bean.User" alias="user"></typeAlias>-->
<!--扫描包,给该包下的所有类起别名,格式为类名首字母小写-->
<package name="cn.cyl.bean"/>
</typeAliases>
</configuration>
二、resultType 配置结果类型
- resultType 属性可以指定结果集的类型,它支持基本类型和实体类类型。
- resultType 和 parameterType 一样,如果注册过类型别名的,可以直接使用别名。没有注册过的必须使用全限定类名。
- 同时,当resultType 属性是实体类名称时,还有一个要求,实体类中的属性名称必须和查询语句中的列名保持一致,否则无法实现封装。