Mybatis传递的参数类型:
1.输入类型:parameterType
(1)传递简单类型,传递pojo对象,传递pojo包装对象
OGNL表达式:Object Graphic Navigation Language 对象图导航语言
它是通过对象的取值方法来获取数据
在写法上把get给省略了
比如:我们获取用户的名称。类中的写法:user.getUsername();
OGNL表达式写法:user.username
mybatis中为什么能直接写username,而不用user.呢?
因为在parameterType中已经提供了属性所属的类,所以此时不需要写对象名
(2)由多个对象组成一个实际的查询条件,可以使用包装对象,外面再套一层
(pojo对象)
2.输出类型:resultType
(1)int
(2)实体类
解决实体类属性和数据库列明不对应的问题
1.在sql语句的层面上起别名
2.配置查询结果的列名和实体类的属性名的对应关系
<resultMap id ="userMap" type ="com.itheima.domain.User">
<!--主键字段的对应-->
<id property="userId" column ="id" ></id> 前面是从实体类导入的,后面是对应数据库的字段
<!--非主键的对应-->
<result property ="userName" column ="username"></result>
</resultMap>
改完以后所有sql语句的resultType都得改成resultMap,而且id值必须对应