输入映射和输出映射

输入映射

通过parameter指定输入参数的类型,类型可以是简单类型,vo实体类等。

需求:如果要完成用户信息的综合查询,需要传入的查询条件很复杂,建议使用自定义的包装对象。

package com.neusoft.vo;

 

public class UsersQuery {

   //封装用户类

         privateUsers users;

         //setter和getter方法

         publicUsers getUsers() {

                   returnusers;

         }

         publicvoid setUsers(Users users) {

                   this.users= users;

         }

         //还可以封装其他的类

         //....................

        

}

 

 

Mapper.xml里面相关的SQL语句:

<select id="findUsersQuery"parameterType="usersquery" resultType="usersquery">

                   Select* from users where users.id=#{users.id} and users.username like ‘%${users.usersname}%’

</select>

 

 

 

 

输出映射:

resultType:使用resultType进行输出映射,只有查询出来的列名和vo实体类中的字段名完全一致,该列才可以映射成功。

如果查询出来的列名和vo实体类的字段名全部不一致,那么他就没有创建vo实体类。

只要查询出来的列名和vo字体类的字段名有一个一致,就会创建vo实体类。

当查询出来的结果集只有一行且一列的时候,可以使用简单的类型进行输出映射。

不管输出的是vo的实体类还是一个列表,在mapper.xml里面resultType指定的类型是一样的,只是在dao接口的方法的返回值不一样。生成的动态代理对象中是根据dao接口中的方法的返回值来确定是调用selectOne和selectList.

resultMap:mybatis中使用resultMap完成高级输出结果映射。

如果查询出来的列名和vo实体类的字段名不一致,通过定义一个resultMap对列名和字段名做一个映射关系。

1.定义resultMap

2.使用resultMap作为SQL的输出映射类型

定义resultMap(在mapper.xml里面):

<!--

              定义resultMap 将select idid_,username username_ from users 和

              users中的字段名做一个映射关系type:resultMap最终映射的Java对象,可以使用别名 id:对resultMap的唯一标识

     -->

     <resultMap type="users"id="usersResultMap">

              <!--

                       id标识查询结果集中唯一标识column:查询出来的列名 property:type指定的vo实体类的属性名

                       最终resultMap对column和property作唯一映射关系(对应关系)

              -->

              <id column="id_"property="id" />

              <!-- 对普通列名的定义-->

              <resultcolumn="username_" property="username" />

     </resultMap>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值