广告
返回顶部
首页 > 资讯 > 精选 >MyBatis映射文件中parameterType与resultType怎么使用
  • 739
分享到

MyBatis映射文件中parameterType与resultType怎么使用

2023-07-06 01:07:15 739人浏览 薄情痞子
摘要

这篇“mybatis映射文件中parameterType与resultType怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看

这篇“mybatis映射文件中parameterType与resultType怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBatis映射文件中parameterType与resultType怎么使用”文章吧。

resultMap 

表示查询结果集与java对象之间的一种关系,处理查询结果集,映射到java对象。     

resultMap 是一种“查询结果集---Bean对象”属性名称映射关系,使用resultMap关系可将将查询结果集中的列一一映射到bean对象的各个属性(两者属性名可以不同,配置好映射关系即可),适用与复杂一点的查询。

(1)适用于表的连接查询(在resultMap里面可以配置连接条件,见如下程序association标签)

<!-- 订单查询关联用户的resultMap将整个查询的结果映射到cn.itcast.mybatis.po.Orders中   -->      <resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersUserResultMap">          <!-- 配置映射的订单信息 -->          <!-- id:指定查询列中的唯 一标识,订单信息的中的唯 一标识,如果有多个列组成唯一标识,配置多个id ,column:订单信息的唯 一标识列 ,property:订单信息的唯 一标识 列所映射到Orders中哪个属性  -->           <id column="id" property="id"/>        <result column="user_id" property="userId"/>         <result column="number" property="number"/>         <result column="createtime" property="createtime"/>        <result column="note" property=note/>                   <!-- 配置映射的关联的用户信息 -->         <!-- association:用于映射关联查询单个对象的信息property:要将关联查询的用户信息映射到Orders中哪个属性 -->           <association property="user"  javaType="cn.itcast.mybatis.po.User">            <!-- id:关联查询用户的唯 一标识            column:指定唯 一标识用户信息的列            javaType:映射到user的哪个属性-->            <id column="user_id" property="id"/>            <result column="username" property="username"/>            <result column="sex" property="sex"/>            <result column="address" property="address"/>        </association>     </resultMap>

2)适用于表的一对多连接查询,(如,订单对应多个订单明细时,需要根据连接条件订单id匹配订单明细,并且消除重复的订单信息(订单明细中的),如下程序);

<resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersAndOrderDetailResultMap" extends="OrdersUserResultMap">        <!-- 订单信息 -->         <!-- 用户信息 -->        <!-- 使用extends继承,不用在中配置订单信息和用户信息的映射 -->        <!-- 订单明细信息一个订单关联查询出了多条明细,要使用collection进行映射        collection:对关联查询到多条记录映射到集合对象中        property:将关联查询到多条记录映射到cn.itcast.mybatis.po.Orders哪个属性         ofType:指定映射到list集合属性中pojo的类型 -->            <collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail">            <!-- id:订单明细唯 一标识             property:要将订单明细的唯 一标识 映射到cn.itcast.mybatis.po.Orderdetail的哪个属性-->              <id column="orderdetail_id" property="id"/>            <result column="items_id" property="itemsId"/>            <result column="items_num" property="itemsNum"/>            <result column="orders_id" property="ordersId"/>         </collection>    </resultMap>

(3)映射的查询结果集中的列标签可以根据需要灵活变化,并且,在映射关系中,还可以通过typeHandler设置实现查询结果值的类型转换,比如布尔型与0/1的类型转换。

例如:

<resultMap type="hdu.terence.bean.Message" id="MessageResult">     <!--存放Dao值--><!--type是和数据库对应的bean类名Message-->    <id column="id" jdbcType="INTEGER"property=" id"/><!--主键标签-->    <result column="COMMAND" jdbcType="VARCHAR" property="command"/>    <result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>    <result column="CONTENT" jdbcType="VARCHAR" property="content"/>  </resultMap>    <select id="queryMessageList" parameterType="hdu.terence.bean.Message" resultMap="MessageResult">    SELECTID,COMMAND,DESCRIPTION,CONTENT FROM message WHERE 1=1        <if test="command!=null and!&quot;&quot;.equals(command.trim())">    and COMMAND=#{command}    </if>    <if test="description!=null and!&quot;&quot;.equals(description.trim())">    and DESCRIPTION like '%' #{description} '%'    </if>   </select>

resultType

resultType 是一种“查询结果集---Bean对象”数据类型映射关系,使用resultType关系,即可使Bean对象接收查询结果集;见名知意,该方法是通过查询结果集中每条记录(属性)的数据类型和Bean对象的数据类型作映射,若两者都相同,则表示匹配成功,Bean可以接收到查询结果。

但是本方法有局限性,要求Bean对象字段名和查询结果集的属性名相同(可以大小写不同,大小写不敏感)。因为这个局限性,可以省略调resultMap进行属性名映射。

一般适用于pojo(简单对象)类型数据,简单的单表查询。

以下是resultType的写法,将其值设置成对应的java类上即可。不需要上述resultMap的映射关系。

<select resultType="User" id="findAll">select *from user </select>
<select resultType="com.itxiaotong.pojo.User" id="findById" parameterType="int">select *from user where id = #{userId} </select>
<select resultType="com.itxiaotong.pojo.User" id="findByUsernameLike" parameterType="string"><bind value="'%'+username+'%'" name="likeName"/>select * from user where username like #{likeName} </select>
<select resultType="com.itxiaotong.pojo.User" id="findPage">select * from user limit #{param1},#{param2} </select> <select resultType="com.itxiaotong.pojo.User" id="findPage1">select * from user limit #{startIndex},#{pageSize} </select>
<select resultType="User" id="findPage2" parameterType="PageQuery">select * from user limit #{startIndex},#{pageSize} </select>

其中parameterType="PageQuery"的类是,下列内容

PageQuery.java

package com.itxiaotong.pojo; public class PageQuery {    private int startIndex;    private int pageSize;     public PageQuery() {    }     public PageQuery(int startIndex, int pageSize) {        this.startIndex = startIndex;        this.pageSize = pageSize;    }     public int getStartIndex() {        return startIndex;    }     public void setStartIndex(int startIndex) {        this.startIndex = startIndex;    }     public int getPageSize() {        return pageSize;    }     public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }}
<select resultType="com.itxiaotong.pojo.User" id="findPage3" parameterType="map">select * from user limit #{startIndex},#{pageSize} </select> <select resultType="int" id="findCount">select count(id) from user </select>

parameterType

在mybatis映射接口的配置中,有select,insert,update,delete等元素都提到了parameterType的用法,parameterType为输入参数,在配置的时候,配置相应的输入参数类型即可。parameterType有基本数据类型和复杂的数据类型配置。

基本数据类型,如输入参数只有一个,其数据类型可以是基本的数据类型,也可以是自己定的类类型。包括int,String,Integer,Date,如下:

(1)根据id进行相应的删除:

(2)添加员工:

复杂数据类型:包含java实体类,map。

parameterType例子(一)

 现在有一个Mapper配置文件,以下是片段:

 <select id="queryCommandListByPage" resultMap="CommandResult" >      select <include refid="columns"/> from command a left join command_content b     on a.id=b.command_id      <where>          <if test="command.name != null and !"".equals(command.name.trim())">            and a.name=#{command.name}        </if>        <if test="command.description != null and !"".equals(command.description.trim())">            and a.description like '%' #{command.description} '%'        </if>      </where>      <if test="flag==1">        group by aid    </if>      order by id  </select>  <sql  id="columns">      a.id aid,a.name,a.description,b.content,b.id,b.command_id  </sql>

下面是IService接口:

     public List<command> queryCommandListByPage(Map<String,Object>parameter);

parameterType例子(二)

<insert id="add" parameterType="com.itxiaotong.pojo.User">insert into user(username, sex, address)values (#{username}, #{sex}, #{address}) </insert>
<update id="update" parameterType="com.itxiaotong.pojo.User">update user set username = #{username},sex = #{sex},address=#{address} where id = #{id} </update>
<delete id="delete" parameterType="int">delete from user where id = #{id} </delete>
<insert id="add2" parameterType="com.itxiaotong.pojo.User">      <!-- keyProperty:主键属性名 keyColumn:主键列名 resultType:主键类型 order:执行时机 -->      <selecTKEy resultType="int" order="AFTER" keyColumn="id" keyProperty="id">SELECT LAST_INSERT_ID(); </selectKey>insert into user(username, sex, address)values (#{username}, #{sex}, #{address}) </insert>
<select resultType="com.itxiaotong.pojo.User" id="findPage3" parameterType="map">select * from user limit #{startIndex},#{pageSize} </select>

以上就是关于“MyBatis映射文件中parameterType与resultType怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: MyBatis映射文件中parameterType与resultType怎么使用

本文链接: https://www.lsjlt.com/news/356936.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MyBatis映射文件中parameterType与resultType怎么使用
    这篇“MyBatis映射文件中parameterType与resultType怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看...
    99+
    2023-07-06
  • MyBatis映射文件中parameterType与resultType的用法详解
    目录resultMap resultTypeparameterType总结resultMap  表示查询结果集与java对象之间的一种关系,处理查询结果集,映射到...
    99+
    2023-05-15
    parametertype和resulttype parametertype和resulttype的区别
  • Mybatis配置映射文件中parameterType的用法讲解
    目录Mybatis配置映射文件parameterType用法1.基本数据类型2.复杂数据类型:包含java实体类,mapMybatis parameterType # $符号的注意事...
    99+
    2022-11-12
  • MyBatis中映射文件的使用
    MyBatis中映射文件的使用 1、配置核心文件 ①引入映射文件 ​ 首先我们得在核心配置文件中配置mappers,引入映射文件所在的包 这里必须满足两个条件: 接口和映射文件所在的包必须一致接口的名字和映射文件的名字必须一致...
    99+
    2023-08-18
    mybatis mysql java
  • 怎么在SpringBoot中利用Mybatis&Mybatis-plus映射文件
    本篇文章为大家展示了怎么在SpringBoot中利用Mybatis&Mybatis-plus映射文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。springboot是什么springboo...
    99+
    2023-06-14
  • mybatis中映射文件(mapper)中的使用规则
    目录一、增删改1、增加2、删除3、更新二、传入参数处理1、单个参数2、多个参数3、参数中有Collection(List、Set) 类型或者是数组4、参数封装成数据模型5、param...
    99+
    2022-11-12
  • MyBatis中映射文件的使用案例代码
    目录MyBatis中映射文件的使用1、配置核心文件2、MyBatis的增删改查3、MyBatis获取参数值的两种方式Mapper 就是“映射”的意思,Mapp...
    99+
    2023-02-06
    MyBatis映射文件的使用 MyBatis映射文件
  • SpringBoot使用Mybatis&Mybatis-plus文件映射配置方法
    简介: Springboot使用Mybatis&Mybatis-plus 两者文件映射配置略有不同,之前我用的是Mybatis,但公司用Mybatis-plus;自己新建了一...
    99+
    2022-11-12
  • 怎么在mybatis框架中查询xml映射文件
    本篇文章为大家展示了怎么在mybatis框架中查询xml映射文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。什么是Mybatis框架?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、...
    99+
    2023-06-14
  • mybatis中映射文件include标签的应用
    目录mybatis映射文件include标签应用1.引用同一个xml中的sql片段2.引用公用的sql片段3.对于多个xml文件需要同时引用一段相同的mybatis sql xml ...
    99+
    2022-11-12
  • mybatis Mapper的xml文件中resultType值的使用说明
    目录Mapper的xml文件中resultType值①返回一般数据类型的值②当返回类型是javaBean③当返回是List类型④返回类型数Map结构⑤说一下关于mybatis里面ma...
    99+
    2022-11-12
  • 使用MyBatis-Generator如何自动生成映射文件
    目录MyBatis-Generator自动生成映射文件1、使用cmd命令方式生成2、使用maven方式生成3、如果开发工具为eclipse自动生成MyBatis映射文件工具问题MyB...
    99+
    2022-11-13
  • mybatis中的映射文件怎么利用mapper接口进行加载
    mybatis中的映射文件怎么利用mapper接口进行加载?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通过 mapper 接口加载映射文件,这对于后面 ssm三大框架 的整合...
    99+
    2023-05-31
    mybatis mapper pp
  • MyBatis注解式开发映射语句怎么使用
    今天小编给大家分享一下MyBatis注解式开发映射语句怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。前言MyBati...
    99+
    2023-07-05
  • MyBatis Xml映射文件中的字符串替换方式是什么
    这篇文章将为大家详细讲解有关MyBatis Xml映射文件中的字符串替换方式是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MyBatis Xml映射文件字符串替换字符串替换默...
    99+
    2023-06-21
  • mybatis中的SQL怎么利用注解进行映射
    今天就跟大家聊聊有关mybatis中的SQL怎么利用注解进行映射,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。结果集分页有时我们需要处理海量数据,由于数据量太大,所以不能一次取出所有...
    99+
    2023-05-31
    mybatis
  • 怎么使用MyBatis高级映射ResultMap解决属性问题
    本篇内容介绍了“怎么使用MyBatis高级映射ResultMap解决属性问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ResultMap...
    99+
    2023-07-05
  • vue映射的方法与怎么混入使用
    这篇文章主要介绍了vue映射的方法与怎么混入使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue映射的方法与怎么混入使用文章都会有所收获,下面我们一起来看看吧。vue映射方法与混入使用v-selec ...
    99+
    2023-06-30
  • 怎么在c#中通过内存映射共享文件
    本篇文章给大家分享的是有关怎么在c#中通过内存映射共享文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。App1代码:using System;using ...
    99+
    2023-06-14
  • 服务器端口映射软件怎么使用
    服务器端口映射软件是一种工具,它可以将外部网络请求映射到本地计算机的指定端口上。以下是使用服务器端口映射软件的基本步骤:1. 选择一...
    99+
    2023-06-11
    端口映射软件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作