Mybatis-输入和输出映射

输入和输出映射
通过 parameterType 完成输入映射,通过 resultType resultMap 完成输出映射。
 
1.1 parameterType 传递 pojo 包装对象
可以定义 pojo 包装类型扩展 mapper 接口输入参数的内容。
 
需求:
自定义查询条件查询用户信息,需要向 statement 输入查询条件,查询条件可以有 user 信息、商品信息。。。。
 
1.1.1  包装类型



1.1.2 mapper.xml
 
 
 
1.1.3 mapper.java
 
 
1.1.4  测试
 
 
 
1.1.5  异常
如果 parameterType 中指定属性错误,异常,找不到 getter 方法:
 
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'userCusto' in 'class cn.itcast.mybatis.po.UserQueryVo'
### Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'userCusto' in 'class cn.itcast.mybatis.po.UserQueryVo'
 
注意:如果将来和 spring 整合后,不是通过调用 getter 方法来获取属性值,通过反射强读取 pojo 的属性值。
 
1.2 resultType
指定输出结果的类型( pojo 、简单类型、 hashmap.. ),将 sql 查询结果映射为 java 对象 。
 
1.2.1  返回简单类型
mapper.xml

 
mapper.java


注意:
如果查询记录结果集为一条记录且一列再使用返回简单类型。
 

1.3 resultMap( 入门 )
resultType :指定输出结果的类型( pojo 、简单类型、 hashmap.. ),将 sql 查询结果映射为 java 对象 。
使用 resultType 注意: sql 查询的列名要和 resultType 指定 pojo 的属性名相同,指定相同属性方可映射成功 ,如果 sql 查询的列名要和 resultType 指定 pojo 的属性名全部不相同, list 中无法创建 pojo 对象的。
 
resultMap :将 sql 查询结果映射为 java 对象。
如果 sql 查询列名和最终要映射的 pojo 的属性名不一致,使用 resultMap 将列名和 pojo 的属性名做一个对应关系 (列名和属性名映射配置)
 
 
1.3.1 resultMap 配置

 
 
1.3.2  使用 resultMap
resultMap和select同一个mapper.xml:

resultMap和select不同mapper.xml:
例如resultMap在一个namespace为test的mapper.xml中


1.3.3 mapper.java
 
 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值