Mybatis 40_resultMap基础和@Results注解
40_resultMap基础和@Results注解
- resultType和resultMap
- <resultMap.../>元素
- 项目0501resultMap
- @Results注解
- 项目0502resultMap注解(@Results)
- 【总结】
resultType和resultMap
- resultType指定结果集每条记录要映射的对象类型。
- resultMap表明使用自定义的映射规则,resultMap属性值为一个<resultMap…/>元素的id属性值
resultMap比指定resultType要稍微复杂一些,但它的功能更强大
<resultMap…/>元素
resultMap专门定义一个映射规则:完成结果集与Java对象之间的映射关系
必须指定如下属性:
- id:指定该<resultMap…/>的唯一标识。
- type:指定该<resultMap…/>映射的Java对象的类型。
<resultMap…/>的两个常用子元素:<id…/>和<result…/>,
<id…/>元素映射标识属性列,<result…/>映射普通列
它们都可指定以下属性:
- column:指定列名。
- property:指定对应的属性名。
- javaType:指定属性的Java类型。一般无需指定,MyBatis可以自动推断。
- jdbcType:指定该列的JDBC类型。一般无需指定,MyBatis可以自动推断。
- typeHandler:为该数据列与属性值之间的转换指定类型处理器。
项目0501resultMap
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 根元素是mapper,该元素的namespace属性值相当于该mapper的唯一标识 -->
<mapper namespace="org.itcheng.app.dao.NewsMapper"><!-- SQL的id需要与Mapper接口的方法名相同 --><insert id="saveNews">insert into news_inf values (null, #{title}, #{content})</insert><!-- 定义SQL语句 --><update id="updateNews">update news_inf set news_title = #{title}, news_content = #{content}where news_id=#{id}</update><!-- SQL的id需要与Mapper接口的方法名相同 --><delete id="deleteNews">delete from news_inf where news_id = #{xyz} </delete><!-- 使用resultMap来完成结果集与Java对象之间的映射关系--><select id="findNews" resultMap="newsMap">select * from news_inf where news_id > #{id} </select><!-- resultMap专门定义一个映射规则:完成结果集与Java对象之间的映射关系 --><resultMap type="news" id="newsMap" ><id column="news_id" property="id" /><!-- 映射映射标识属性 数据库的表字段news_id对应news对象的 id属性 --><result column="news_title" property="title"/><!-- 映射映射普通属性 --><result column="news_content" property="content"/><!-- 映射映射普通属性 --></resultMap></mapper>
@Results注解
<resultMap…/>元素对应于@Results注解
该注解的value属性可指定多个@Result注解
@Result相当于 <id…/>和<result…/>的综合体,当它的id属性为true,代表<id…/>元素。
项目0502resultMap注解(@Results)
package org.itcheng.app.dao;import java.util.List;import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.itcheng.app.domain.News;// Mapper组件相当于DAO组件
public interface NewsMapper
{@Insert("insert into news_inf values (null, #{title}, #{content})")int saveNews(News news);@Update("update news_inf set news_title = #{title}, news_content = #{content}\r\n" + "where news_id=#{id}")int updateNews(News news);@Delete("delete from news_inf where news_id = #{xyz}")void deleteNews(Integer id);@Select("select * from news_inf where news_id > #{id}")@Results({// id = "true"相当于<id.../>子元素@Result(column = "news_id", property = "id", id = true),//表字段news_id对应news对象的 id属性@Result(column = "news_title", property = "title"),@Result(column = "news_content", property = "content")})List<News> findNews(Integer id);}
【总结】
<resultMap…/>等同于@Results注解
<id…/>或 <result …/>等同于@Result注解
相关文章:
Mybatis 40_resultMap基础和@Results注解
40_resultMap基础和Results注解 resultType和resultMap<resultMap.../>元素项目0501resultMap Results注解项目0502resultMap注解(Results) 【总结】 resultType和resultMap resultType指定结果集每条记录要映射的对象类型。resultMap表明使用自定义的映射规…...
【蓝桥杯选拔赛真题31】C++数位求和 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析
目录 C/C++数位求和 一、题目要求 1、编程实现 2、输入输出...
牛客网-css继承属性
3.当元素的一个继承属性没有指定值时,则取父元素的同属性的计算值,以下哪些不是 CSS 中的继承属性? A. color B.display C.border-style D.text-align 答案:BC 解析:不可继承:display,mar…...
OpenCV-19图像的仿射变换
放射变换是图像旋转,缩放,平移的总称,具体的做法是通过一个矩阵和原图片坐标进行计算,得到新的坐标,完成变换,所以关键就是这个矩阵。 一、仿射变换之图像平移 使用API------warpAffine(src &…...
数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)二
第四部分、字符串,数据结构中的串存储结构 串存储结构,也就是存储字符串的数据结构。 很明显,字符串之间的逻辑关系也是“一对一”,用线性表的思维不难想出,串存储结构也有顺序存储和链式存储。 提到字符串ÿ…...
第七在线荣获百灵奖 Buylink Awards 2023零售圈年度卓越服务商品牌
1月11日,由零售圈主办、20零售连锁协会协办、30零售行业媒体支持的中国零售圈大会暨2024未来零售跨年盛典在西安落下帷幕,在这个零售行业盛典中,第七在线凭借其高精尖产品和卓越的服务质量成功入选,并荣获了“百灵奖 Buylink Awar…...
通过myBatis将sql语句返回的值自动包装成一个java对象(3)
1.如果sql字段和java字段名字不一样怎么办? 之前我们将sql返回值转换为java对象时,每条sql的返回值的字段名和java类中的字段名是一一对应的,ie:sql选择的user有username和password两个字段,java中的user对象也有两个…...
基于SSM的驾校信息管理系统设计与实现
末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…...
矩阵行列式的四大应用
目录 一. 介绍 二. 行列式的基本性质 2.1 单位阵的行列式 2.2 交换行位置的行列式 三. 矩阵求逆与行列式 四. 体积与行列式 五. 矩阵主元与行列式 六. 解方程与矩阵行列式 七. 小结 一. 介绍 行列式可以反应矩阵的很多性质,比如可以求矩阵的逆,…...
【小笔记】时序数据分类算法最新小结
2024.1.15 最近基于时序数据训练分类算法,对其进行了一番了解,主要围绕以下几点: 时序数据算法有哪些细分类?时序数据分类算法经典模型?当下时序分类算法模型强baseline?有没有现成的工具? 1…...
使用Python+pygame实现贪吃蛇小游戏
使用Pythonpygame贪吃蛇小游戏 使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 给出两种实现。 第一种 运行效果如下: 游戏源码如下: import pygame import sy…...
SpringBoot 全局异常统一处理:BindException(绑定异常)
概述 在Spring Boot应用中,数据绑定是一个至关重要的环节,它负责将HTTP请求中的参数映射到控制器方法的入参对象上。在这个过程中如果遇到任何问题,如参数缺失、类型不匹配或验证失败等,Spring MVC将会抛出一个org.springframewo…...
ucloud轻量云(wordpress)配置ssl
ucloud 轻量云(wordpress)配置ssl 1、上传ssl证书到/usr/local/software/apache/conf,这里的文件名和内容与ucloud控制台下载下来的文件名和内容保持一致 2、修改httpd.conf文件 vim /usr/local/software/apache/conf/httpd.conf 找到下面两行,去掉注…...
电脑/设备网络共享给其他设备上网
文章目录 一、概述二、设置网络共享2.1 电脑可以上网,通过网络共享让其他设备也可以上网2.2 手机如何使用USB数据线共享网络给电脑 一、概述 现在有如下几种情况: 设备本身不能上网,需要通过电脑上网 笔记本WIFI连热点上网,然后…...
vue之虚拟滚动
一、解决的问题 对于大量数据的懒加载,我们可以使用虚拟滚动的技术。虚拟滚动的原理是只渲染可视区域内的数据,当用户滚动时,动态计算并渲染新的可视数据,从而实现大数据量的流畅滚动。 在Vue中,我们可以使用第三方库…...
Redis学习指南(11)-Redis的有序集合数据类型介绍
文章目录 特点和用途常用命令插入操作查询操作删除操作 示例总结 Redis的有序集合数据类型是一种高效的数据结构,能够存储多个成员和对应的分值,并能够根据分值进行快速的查找、插入和删除操作。本文将详细介绍Redis的有序集合数据类型,包括其…...
Spring的纯注解配置
1.环境搭建 1.1.创建工程 1.2.待改造的问题 我们发现,之所以我们现在离不开xml配置文件,是因为我们有一处很关键的配置,如果他要也能用注解配置,那么我们就可以脱离xml文件了: 1.2.1.jdbc配置 <context:propert…...
numpy 筛选多段数据
目录 掩码方式 利用切片 掩码方式 range_to_remove list(range(77-1, 111-1)) list(range(122-1, 135-1))keep_mask np.ones(image0_cut.shape[0], dtypebool)keep_mask[range_to_remove] Falseprocessed_data image0_cut[keep_mask] 利用切片 import numpy as np# 假设…...
【Kotlin】协程的字节码原理
前言 协程是Koltin语言最重要的特性之一,也是最难理解的特性。网上关于kotlin协程的描述也是五花八门,有人说它是轻量级线程,有人说它是无阻塞式挂起,有人说它是一个异步框架等等,众说纷芸。甚至还有人出了书籍专门介…...
区间预测 | Matlab实现LSSVM-ABKDE的最小二乘支持向量机结合自适应带宽核密度估计多变量回归区间预测
区间预测 | Matlab实现LSSVM-ABKDE的最小二乘支持向量机结合自适应带宽核密度估计多变量回归区间预测 目录 区间预测 | Matlab实现LSSVM-ABKDE的最小二乘支持向量机结合自适应带宽核密度估计多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现…...
给Llama-3-8B-Instruct加个‘垫片’:手把手教你安全添加Pad Token并微调(附完整代码)
为Llama-3-8B-Instruct安全添加Pad Token的工程实践指南当你在微调Llama-3-8B-Instruct时,是否遇到过这样的困扰:模型没有提供Pad Token,导致数据处理和训练过程中出现各种不便?这个问题看似简单,实则暗藏玄机。本文将…...
深度解析美国RTP全系列导热工程塑料,革新电子散热新选择
在工程塑料行业高速发展的今天,电子设备散热需求日益成为制约产品性能与可靠性的关键瓶颈。传统散热材料面临导热效率低、机械性能弱、加工适应性差等多重挑战,行业亟待寻找既能满足严苛散热要求,又具备优异综合性能的新一代解决方案。美国RT…...
2026年AI论文写作软件盘点:12款神器助你高效完成去痕改写、润色和过检
随着 AI 技术的持续突破,2026 年的论文写作工具市场已进入“智能化、精细化、合规化”的全新发展阶段。从本科生的课程论文到研究生的学位论文,再到科研人员的期刊投稿,AI 工具正以强大的技术支撑覆盖各类学术场景。无论是选题方向的启发、文…...
如何用GHelper实现华硕笔记本性能与静音的完美平衡
如何用GHelper实现华硕笔记本性能与静音的完美平衡 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook, ROG …...
如何利用AI工具变现:一个老程序员的真实观察
凌晨两点,你又刷到一个"AI月入5万"的短视频。 关了手机,睡不着了。 明天还要上班。 这种焦虑感,我太熟悉了。 作为一个写了12年代码的老程序员,这两年被问到最多的问题就是:"有什么真正能用的AI变现方法?" 今天不画饼,说点真话。 先说结论 AI…...
卖瓦楞纸箱怎么找客户?下游工厂在哪里
卖瓦楞纸箱找客户,本质是找用箱量大的下游工厂,核心难点是拿到这些工厂的名单和联系人——因为纸箱是本地化极强的耗材,客户往往就在方圆 100 到 200 公里内,谁先把本地下游工厂版图盘清楚,谁就掌握了竞争主动权。 用箱…...
谷歌内部CSR策划SOP首次流出(非公开版):含风险预判矩阵、利益相关方触达热力图与监管审计应答话术库
更多请点击: https://codechina.net 第一章:Gemini CSR活动策划的底层逻辑与战略定位 Gemini CSR(Corporate Social Responsibility)活动并非孤立的品牌传播动作,而是深度嵌入企业技术价值观与长期可持续发展框架的战…...
GORM 标签详解(数据库字段映射核心)
很多人刚学 GORM: 会觉得: gorm:"primaryKey" gorm:"index" gorm:"not null"这些东西: 像“魔法字符串”。 其实: 它本质上是在告诉 GORM: 数据库这一列应该怎么创建也就是:…...
2026这6款封神降AI率工具大起底,一键把AIGC率降至安全线!
步入 2026 年,学术界的风向早已悄然转变。曾经的"降重复率"焦虑已经成了过去式,如今摆在每位学子和科研人面前的,是更棘手的"降 AI 率"挑战。随着各大高校对 AI 内容检测系统的全面升级,审核标准也愈发严苛。…...
Python爬虫绕过JA3/JA4指纹检测的TLS定制实战
1. 这不是“绕过检测”,而是理解TLS握手的底层语言你写好了一个Python爬虫,目标网站明明没上WAF、也没用Cloudflare,但一发请求就返回403——连HTML正文都没有,只有个空响应体。抓包一看,服务器在TCP三次握手之后、TLS…...
