精华内容
下载资源
问答
  • mybatis resultmap和resulttype
    2021-10-13 11:34:05

    resultMap和resultType区别

    resultMap和resultType的功能类似,都是返回对象信息,但是resultMap要更好用一些。因为resultMap可以自定义,需要进行配置,字段名和实体类名称可以不相同,因为resultMap都可以映射出来!而resultType就必须要求字段名和实体类名称相同。二者不能同时存在。

    resultMap:对外部resultMap的引用
    属性:id、type
    子元素:id、result、association、collection
    association:一对一,多对一
    collection:一对多

    resultType:直接返回类型

    更多相关内容
  • 主要介绍了MyBatisresultMap和resultType的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • ResultMap和ResultType: 两者都是表示查询结果集与java对象之间的一种关系,处理查询结果集,映射到java对象。 resultMap:表示将查询结果集中的列一一映射到bean对象的各个属性。 <resultMap id=...

    ResultMap和ResultType: 两者都是表示查询结果集与java对象之间的一种关系,处理查询结果集,映射到java对象。

    resultMap:表示将查询结果集中的列一一映射到bean对象的各个属性。

     <resultMap id="userResultMap" type="com.xxx.User">
            <id column="id" property="id"/>
            <result column="user_id" property="userId"/>
            <result column="user_name" property="userName"/>
     </resultMap>
       
    <select id="selectedUser" resultMap="userResultMap">
            SELECT * FROM users WHERE user_id = #{user_id} AND user_name = #{user_name}
    </select>

    映射的查询结果集中的列标签可以根据需要灵活变化

    ResultType:表示的是bean中的对象类,此时可以省略掉resultMap标签的映射,但是必须保证查询结果集中的属性 和 bean对象类中的属性是一一对应的。

     <select id="selectedUser" resultType="com.xxx.User" parameterType="String">
            SELECT user_Id AS userId, user_name AS userName FROM users WHERE user_id = #{user_id} AND user_name = #{user_name}
    </select>

    在查询时将分别给user_Id、user_name 起了别名userId、userName以用来和对象中的属性完全一致。

    ps:一般对象类型用resultMap映射,统计sql数量或者一些对象的某个数据库名称一致的属性可以直接用resultType。

    (本文参考并做了一些内容添加)

    展开全文
  • 一、POJO POJO(Plain Ordinary Java Object),简单普通的java对象,也就是普通JavaBean。...为写成JavaBean,类必须是具体的公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计

    一、POJO

    POJO(Plain Ordinary Java Object),简单普通的java对象,也就是普通JavaBean。主要用来指代那些没有遵循特定的java对象模型,约定或者框架的对象。没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用。

    二、JavaBean

    JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。

    三、ResultMap

    使用resultMap做SQL语句返回结果类型处理时,通常需要在mapper.xml中定义resultMap进行pojo和相应表字段的对应。

    id column用来设置主键
    result column对应sql中的列名。
    property对应pojo中的属性名,也就是说property是column的别名。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.sz.cms.mapper.ArticleMapper">
    	<select id="selectArticlesByCid" resultMap="ArticleResultMap">
    		select * from web_article where cid=#{arg0} limit #{arg1}, #{arg2}
    	</select>
    	<resultMap id="ArticleResultMap" type="com.sz.cms.po.Article">
    		<id column="id" property="id" jdbcType="INTEGER" />
    		<result column="title" property="title" jdbcType="VARCHAR" />
    		<result column="text" property="text" jdbcType="VARCHAR" />
    		<result column="imgUrl" property="imgUrl" jdbcType="VARCHAR" />
    	</resultMap>
    </mapper>
    

    四、ResultType

    使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有和它相同的字段对应,而resultType中的内容就是pojo在本项目中的位置。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="demo.boot.mapper.UserMapper">
    	<select id="selectAll" resultType="User">
    		select * from t_user
    	</select>
    	
    	<insert id="insertUser" parameterType="User">
    		insert into t_user values(default, #{name}, #{password})
    	</insert>
    	
    	<delete id="deleteUserById" parameterType="int">
    		delete from t_user where id = #{id}
    	</delete>
    	
    	<update id="updateUser" parameterType="User">
    		update t_user set name=#{name}, password=#{password} where id=#{id}
    	</update>
    </mapper>
    
    展开全文
  • 给大家介绍了mybatis中的resultType和resultMap的用法实例讲解,MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,至于两种用法区别,通过本文一起学习吧
  • MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMapresultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultTyperesultMap不能同时存在。...

    一、概述
    MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。
    在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
    ①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
    ②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

     

    二、ResultType

    Blog.java

    1. public class Blog {  
    2.        private int id;  
    3.        private String title;  
    4.        private String content;  
    5.        private String owner;  
    6.        private List<Comment> comments;  
    7. }  

     

    其所对应的数据库表中存储有id、title、Content、Owner属性。

     

    1. <typeAlias alias="Blog" type="com.tiantian.mybatis.model.Blog"/>  
    2. <select id="selectBlog" parameterType="int" resultType="Blog">  
    3.       select * from t_blog where id = #{id}  
    4. </select>  


    MyBatis会自动创建一个ResultMap对象,然后基于查找出来的属性名进行键值对封装,然后再看到返回类型是Blog对象,再从ResultMap中取出与Blog对象对应的键值对进行赋值。

    三、ResultMap
    当返回类型直接是一个ResultMap的时候也是非常有用的,这主要用在进行复杂联合查询上,因为进行简单查询是没有什么必要的。先看看一个返回类型为ResultMap的简单查询,再看看复杂查询的用法。

    ①简单查询的写法

    1. <resultMap type="Blog" id="BlogResult">  
    2.         <id column="id" property="id" />  
    3.         <result column="title" property="title" />  
    4.         <result column="content" property="content" />  
    5.         <result column="owner" property="owner" />  
    6.     </resultMap>  
    7.     <select id="selectBlog" parameterType="int" resultMap="BlogResult">  
    8.         select *  
    9.         from t_blog where id = #{id}  
    10.     </select>  


    select映射中resultMap的值是一个外部resultMap的id,表示返回结果映射到哪一个resultMap上,外部resultMap的type属性表示该resultMap的结果是一个什么样的类型,这里是Blog类型,那么MyBatis就会把它当作一个Blog对象取出。resultMap节点的子节点id是用于标识该对象的id的,而result子节点则是用于标识一些简单属性的,其中的Column属性表示从数据库中查询的属性,Property则表示查询出来的属性对应的值赋给实体对象的哪个属性。简单查询的resultMap的写法就是这样的。

    展开全文
  • mybatisresultMap和resultType的详细用法

    千次阅读 2021-09-15 11:54:01
    MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMapresultType是直接 表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultTyperesultMap不能同时存在。 1....
  • resultMap:返回集合类型,在xml的sql中要求select到from中的字段属于你在中定义的字段,并且property的属性值要jsp的值对应,column的值要数据库对应,这样子在查询的时候才能返回对应字段的值; resultType:返回的是...
  • MyBatis中在查询进行select映射的时候,返回值类型可以用resultType,也可以用resultMap, 在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。 ①...
  • resultMap和resultType一样都是为了将表查询的结果集映射到自定义的实体类中 但在使用MyBatis进行表查询的时候可能会遇到两个问题:表字段与实体类属性名不一致、多表查询需要返回多个实体类对象。这时候resultType...
  • MybatisResultMap和ResultType

    千次阅读 2019-04-07 20:02:14
    在写MyBatis mapper xml文件时,对于返回的数据会映射到对象中,ResultMapResultType和mapUnderscoreToCamelCase都是控制这种映射关系的,因为数据库字段命名和实体类property name未必对应,所以需要手动控制这种...
  • MybatisresultMap和resultType的区别

    万次阅读 2019-04-12 13:16:56
    MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,...
  • 基本映射 :(resultType)使用resultType进行输出映射,只有查询出来的列名实体类中的属性名一致,该列才可以映射成功。(数据库,实体,查询字段,这些全部都得一一对应) 高级映射 :(resultMap) 如果查询出来...
  • MyBatis中关于resultType和resultMap的区别

    千次阅读 2022-05-05 22:49:24
    为新手讲了resulttyperesultmap
  • MyBatisresultMap和resultType的区别

    万次阅读 多人点赞 2018-07-17 09:17:19
    mybatisresultMap和resultType的区别 mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMapresultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是...
  • mybatisresultMapresultType以及parameterTypeparameterMap的区别
  • resultType和resultMapMybatis基于xml配置开发过程中sql语句所在标签的一种属性,它们的特性如下: 1. resultType:该属性是为了配置mybatis查询的返回结果类型,如果返回值类型是整型数据,该属性处可以配置int,...
  • resultMap和resultType
  • mybatisresultmap和resulttype的区别。

    千次阅读 2020-08-20 09:22:04
    resultType: 当使用resultType做SQL语句返回结果类型处理时,对于SQL语句查询出的字段在相应的pojo中必须有它相同的字段对应,而resultType中的内容就是pojo在本项目中的位置。 举例: 此时我选择出来的Datainfo...
  • MybatisresultMap和resultType
  • MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性,而当我们提供的返回类型是resultMap的时候,...
  • 而今天的主题是parameterMap、parameterType、resultType、parameterMap,它们作用于ParameterHandler组件与ResultSetHandler 组件层。如果有人问你这类问题,其实是在考你的基本功(是否知道mybatis的架构或源码)....
  • mybaties中resultMap和resultType的区别

    万次阅读 多人点赞 2019-06-17 22:01:06
    (数据库,实体,查询字段,这些全部都得一一对应)高级映射 :(resultMap) 如果查询出来的列名pojo的属性名不一致,通过定义一个resultMap对列名pojo属性名之间作一个映射关系。(高级映射,字段名称可以不...
  • 【JavaEE】MyBatis resultMapresultType 多表查询 (一对一 + 一对多) 详解
  • 这里我们两个,分别为resultType和resultMap 1.resultType resultType属性:在执行select时使用,作为标签的属性出现的。 resultType:执行sql得到ResultSet转换的类型,使用类型的完全限定名或别名。注意如果返回的...
  • resultmapresulttype的区别为:对象不同、描述不同、类型适用不同 一、对象不同 1、resultmapresultMap如果查询出来的列名pojo的属性名不一致,通过定义一个resultMap对列名pojo属性名之间作一个映射关系。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,105
精华内容 16,042
关键字:

mybatis resultmap和resulttype