MyBatis的parameterType传入参数类型和resultType返回结果类型
记录:413
场景:MyBatis的parameterType传入参数类型和resultType返回结果类型。
版本:JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。
1.传入参数parameterType是Integer
传入参数类型parameterType:java.lang.Integer。
返回结果类型resultType: java.lang.String。
1.1Mapper接口代码
@Repository
public interface CityTypeMapper {String getCity01(Integer cityId);
}
1.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity01" parameterType="java.lang.Integer" resultType="java.lang.String">select CITY_NAME FROM t_city WHERE CITY_ID=#{cityId}</select>
</mapper>
2.传入参数parameterType是Long
传入参数类型parameterType: java.lang.Long。
返回结果类型resultType: java.lang.String。
2.1Mapper接口代码
@Repository
public interface CityTypeMapper {String getCity02(Long cityId);
}
2.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity02" parameterType="java.lang.Long" resultType="java.lang.String">select CITY_NAME FROM t_city WHERE CITY_ID=#{cityId}</select>
</mapper>
3.传入参数parameterType是Double
传入参数类型parameterType: java.lang.Double。
返回结果类型resultType: java.lang.Double。
3.1Mapper接口代码
@Repository
public interface CityTypeMapper {Double getCity03(Double gross);
}
3.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity03" parameterType="java.lang.Double" resultType="java.lang.Double">select LAND_AREA FROM t_city WHERE GROSS=#{gross}</select>
</mapper>
4.传入参数parameterType是String
传入参数类型parameterType: java.lang.String。
返回结果类型resultType: java.lang.Long。
4.1Mapper接口代码
@Repository
public interface CityTypeMapper {Long getCity04(String cityName);
}
4.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity04" parameterType="java.lang.String" resultType="java.lang.Long">select CITY_ID FROM t_city WHERE CITY_NAME=#{cityName}</select>
</mapper>
5.传入参数parameterType是List<Long>
传入参数类型parameterType: java.util.ArrayList。
返回结果类型resultType: java.lang.Long。
5.1Mapper接口代码
@Repository
public interface CityTypeMapper {long[] getCity05(List<Long> cityIdList);
}
5.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity05" parameterType="java.util.ArrayList" resultType="java.lang.Long" >select POPULATION FROM t_city WHERE CITY_ID IN<foreach collection="list" item="cityId" open="(" separator="," close=")">#{cityId}</foreach></select>
</mapper>
6.传入参数parameterType是Long[]
传入参数类型parameterType: long[]。
返回结果类型resultType: java.lang.String。
6.1Mapper接口代码
@Repository
public interface CityTypeMapper {List<String> getCity06(Long[] cityIdList);
}
6.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity06" parameterType="long[]" resultType="java.lang.String">select CITY_NAME FROM t_city WHERE CITY_ID IN<foreach collection="array" item="cityId" open="(" separator="," close=")">#{cityId}</foreach></select>
</mapper>
7.传入参数parameterType是Map<String, Object>
传入参数类型parameterType: java.util.Map。
返回结果类型resultType: com.hub.example.domain.CityPO。
7.1Mapper接口代码
@Repository
public interface CityTypeMapper {CityPO getCity07(Map<String, Object> cityMap);
}
7.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity07" parameterType="java.util.Map" resultType="com.hub.example.domain.CityPO">select CITY_ID AS "cityId",CITY_NAME AS "cityName",LAND_AREA AS "landArea",POPULATION AS "population",GROSS AS "gross",CITY_DESCRIBE AS "cityDescribe",DATA_YEAR AS "dataYear",UPDATE_TIME AS "updateTime"from t_citywhere CITY_ID = #{cityId}AND CITY_NAME = #{cityName}</select>
</mapper>
8.传入参数parameterType是CityPO
传入参数类型parameterType: com.hub.example.domain.CityPO。
返回结果类型resultType: java.util.Map。
8.1Mapper接口代码
@Repository
public interface CityTypeMapper {Map<String, Object> getCity08(CityPO cityPO);
}
8.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity08" parameterType="com.hub.example.domain.CityPO" resultType="java.util.Map">select CITY_ID AS "cityId",CITY_NAME AS "cityName",LAND_AREA AS "landArea",POPULATION AS "population",GROSS AS "gross",CITY_DESCRIBE AS "cityDescribe",DATA_YEAR AS "dataYear",UPDATE_TIME AS "updateTime"from t_citywhere CITY_ID = #{cityId}AND CITY_NAME = #{cityName}</select>
</mapper>
9.传入参数parameterType是Date
传入参数类型parameterType: java.util.Date。
返回结果类型resultType: java.lang.String。
9.1Mapper接口代码
@Repository
public interface CityTypeMapper {String getCity09(Date date);
}
9.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity09" parameterType="java.util.Date" resultType="java.lang.String">select CITY_NAMEFROM t_citywhere UPDATE_TIME = #{date}</select>
</mapper>
10.传入参数parameterType是List<Long>
传入参数类型parameterType: java.util.ArrayList。
返回结果类型resultType: com.hub.example.domain.CityPO。
10.1Mapper接口代码
@Repository
public interface CityTypeMapper {List<CityPO> getCity10(List<Long> paraList);
}
10.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity10" parameterType="java.util.ArrayList" resultType="com.hub.example.domain.CityPO">select CITY_ID AS "cityId",CITY_NAME AS "cityName",LAND_AREA AS "landArea",POPULATION AS "population",GROSS AS "gross",CITY_DESCRIBE AS "cityDescribe",DATA_YEAR AS "dataYear",UPDATE_TIME AS "updateTime"from t_cityWHERE CITY_ID IN<foreach collection="list" item="cityId" open="(" separator="," close=")">#{cityId}</foreach></select>
</mapper>
11.传入参数parameterType是List<Long>
传入参数类型parameterType: java.util.ArrayList。
返回结果类型resultType: java.util.Map。
11.1Mapper接口代码
@Repository
public interface CityTypeMapper {List<Map<String, Object>> getCity11(List<Long> paraList);
}
11.2XML代码
<?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.hub.example.mapper.CityTypeMapper"><select id="getCity11" parameterType="java.util.ArrayList" resultType="java.util.Map">select CITY_ID AS "cityId",CITY_NAME AS "cityName",LAND_AREA AS "landArea",POPULATION AS "population",GROSS AS "gross",CITY_DESCRIBE AS "cityDescribe",DATA_YEAR AS "dataYear",UPDATE_TIME AS "updateTime"from t_cityWHERE CITY_ID IN<foreach collection="list" item="cityId" open="(" separator="," close=")">#{cityId}</foreach></select>
</mapper>
12.测试代码
12.1代码
@Slf4j
@RestController
@RequestMapping("/hub/example/cityType")
public class CityTypeController {@Autowiredprivate CityTypeMapper cityTypeMapper;@GetMapping("/load01")public Object load01() {log.info("测试开始...");// 1.parameterType: java.lang.Integer; resultType: java.lang.StringString cityName01 = cityTypeMapper.getCity01(2);// 2.parameterType: java.lang.Long; resultType: java.lang.StringString cityName02 = cityTypeMapper.getCity02(1L);// 3.parameterType: java.lang.Double; resultType: java.lang.Doubledouble landArea = cityTypeMapper.getCity03(1.81D);// 4.parameterType: java.lang.String; resultType: java.lang.Longlong cityId = cityTypeMapper.getCity04("苏州");List<Long> paraList01 = Arrays.asList(1L, 2L);// 5.parameterType: java.util.ArrayList; resultType: java.lang.Longlong[] population = cityTypeMapper.getCity05(paraList01);// 6.parameterType: long[]; resultType: java.lang.StringLong[] paraList02 = new Long[]{1L, 2L};List<String> cityNameList = cityTypeMapper.getCity06(paraList02);// 7.parameterType: java.util.Map; resultType: com.hub.example.domain.CityPOMap<String, Object> map = new HashMap<>();map.put("cityId", 3L);map.put("cityName", "苏州");CityPO cityPO = cityTypeMapper.getCity07(map);// 8.parameterType: com.hub.example.domain.CityPO; resultType: java.util.MapCityPO cityPO02 = CityPO.builder().cityId(3L).cityName("苏州").build();Map<String, Object> map02 = cityTypeMapper.getCity08(cityPO02);// 9.parameterType: java.util.Date; resultType: java.lang.StringDate date = DateUtil.parse("2023-03-10 05:39:16", "yyyy-MM-dd HH:mm:ss");String time = cityTypeMapper.getCity09(date);// 10.parameterType: java.util.ArrayList; resultType: com.hub.example.domain.CityPOList<Long> paraList = Arrays.asList(1L, 2L, 3L);List<CityPO> list01 = cityTypeMapper.getCity10(paraList);// 11.parameterType: java.util.ArrayList; resultType: java.util.MapList<Long> paraList03 = Arrays.asList(1L, 2L, 3L);List<Map<String, Object>> list02 = cityTypeMapper.getCity11(paraList03);log.info("测试结束...");
return "执行成功";}
}
12.2测试请求
URL01: http://127.0.0.1:18080/hub-example/hub/example/cityType/load01
13.基础支撑
13.1实体对象
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CityPO implements Serializable {private Long cityId;private String cityName;private Double landArea;private Long population;private Double gross;private String cityDescribe;private String dataYear;private Date updateTime;
}
13.2建表语句
CREATE TABLE t_city (CITY_ID BIGINT(16) NOT NULL COMMENT '唯一标识',CITY_NAME VARCHAR(64) COLLATE utf8_bin NOT NULL COMMENT '城市名',LAND_AREA DOUBLE DEFAULT NULL COMMENT '城市面积',POPULATION BIGINT(16) DEFAULT NULL COMMENT '城市人口',GROSS DOUBLE DEFAULT NULL COMMENT '生产总值',CITY_DESCRIBE VARCHAR(512) COLLATE utf8_bin DEFAULT NULL COMMENT '城市描述',DATA_YEAR VARCHAR(16) COLLATE utf8_bin DEFAULT NULL COMMENT '数据年份',UPDATE_TIME DATETIME DEFAULT NULL COMMENT '更新时间'
) ENGINE=INNODB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='城市信息表';
13.3引入MyBatis依赖
使用mybatis-spring-boot-starter方式引入mybatis,对应mybatis-3.5.9和mybatis-spring-2.0.7核心依赖。
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.2</version>
</dependency>
以上,感谢。
2023年4月17日
相关文章:
MyBatis的parameterType传入参数类型和resultType返回结果类型
记录:413 场景:MyBatis的parameterType传入参数类型和resultType返回结果类型。 版本:JDK 1.8,Spring Boot 2.6.3,mybatis-3.5.9。 1.传入参数parameterType是Integer 传入参数类型parameterType:java.lang.Integer。 返回结…...
什么是Android FrameWork,请你介绍一下?
Framework是什么 Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Fr…...
【SQL 必知必会】- 第十六课 更新和删除数据
目录 更新数据 不要省略WHERE 子句 在UPDATE 语句中使用子查询 删除数据 不要省略WHERE 子句 友好的外键 删除表的内容而不是表 更快的删除 更新和删除的指导原则 这一课介绍如何利用UPDATE 和DELETE 语句进一步操作表数据。 更新数据 更新(修改)表中…...
常见哈希算法及其应用
哈希算法经常会被用到,比如我们Go里面的map,Java的HashMap,目前最流行的缓存Redis都大量用到了哈希算法。它们支持把很多类型的数据进行哈希计算,我们实际使用的时候并不用考虑哈希算法的实现。而其实不同的数据类型,所…...
PHP快速入门02-PHP语言基础
文章目录前言一、 数据类型1.1 String(字符串)1.2 Integer(整型)1.3 Float(浮点型)1.4 Boolean(布尔型)1.5 Array(数组)1.6 Object(对象ÿ…...
FSCapture - 长截图工具
FSCapture - 长截图工具前言下载使用推荐设置长截图前言 目前大部分手机系统都自带长截图功能,但Windows系统没有自带的长截图功能,因此推荐一款第三方工具FSCapture,该软件轻量强大,支持长截图,即滚动截图。 下载 …...
[ 云计算 | Azure ] Chapter 05 | 核心体系结构之管理组、订阅、资源和资源组以及层次关系
本文主要对如下内容进行讲解:Azure云计算的核心体系结构组件中的:资源、订阅和资源组,以及了解 Azure 资源管理器 (ARM) 如何部署资源。 本系列已经更新文章列表: [ 云计算 | Azure ] Chapter 03 | 描述云计算运营中的 CapEx 与…...
【算法LearnNO.1】算法介绍以及算法的时间复杂度和空间复杂度
目录 一、算法 1、算法概述 2、算法的5个特性 3、设计算法的标准 二、时间复杂度 1、时间复杂度的介绍 2、渐进时间复杂度的求法 3、计算时间复杂度的代码举例(平方阶示例) 4、时间复杂度排序 三、空间复杂度 一、算法 1、算法概述 算法就是解…...
013:Mapbox GL添加marker
第013个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中添加marker。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共70行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https://xiaozhu…...
智慧工厂可视化合集,推动行业数字化转型
图扑软件基于 HTML5(Canvas/WebGL/WebVR)标准的 Web 技术,满足了工业物联网跨平台云端化部署实施的需求,以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库,到 2D 和 3D 编辑,…...
工作流调度系统 Azkaban介绍与安装(一)
文章目录前言1、为什么要用工作流调度系统2、常见的工作流调度系统1 集群规划2 配置 MySQL3 配置 Executor Server3.1 修改 azkaban.properties3.2 启动3.3 激活4 配置 Web Server4.1 修改 azkaban.properties4.2 修改azkaban-users.xml文件,添加 atguigu 用户4.3 启…...
【Python基础入门学习】Python工具Pycharm的安装与使用
一、关于Python 1.1 下载Python 在下载与安装pycharm工具前,一定要先安装python 打开Python官网:python下载打开上述网站,选择 Downloads -> 系统 我是Windows系统,点击进入后,找到自己要安装的安装包以及想安装的…...
【版本控制】Github同步Gitee镜像仓库自动化脚本
文章目录Github同步Gitee镜像仓库自动化脚本前言什么是Hub Mirror Action?1.介绍2.用法配置步骤1.生成密钥对2.GitHub私钥配置3.Gitee公钥配置4.Gitee生成私人令牌5.Github绑定Gitee令牌6.编写CI脚本7.多仓库同步推送8.定时运行脚本总结Github同步Gitee镜像仓库自动…...
索引的分类
1.唯一索引 给表中某一列设置为了唯一约束(这列不允许出现重复数据)后,数据库会为将这一列设置索引,这个索引叫做唯一索引(主键那一列是一个特殊的唯一索引,不仅要满足唯一索引这一列不可以出现重复数据,而且这一列还…...
【整理九】
目录1.说说你对递归的理解?封装一个方法用递归实现树形结构封装2.Link和import有什么区别?3.什么是FOUC? 如何避免?4.说说你对预编译器的理解?5.shouldComponentUpdate 的作用6.概述下 React 中的事务处理逻辑7.React组件的划分业…...
钢网是SMT生产使用的一种工具,如何制作?
钢网是SMT生产使用的一种工具,其主要功能是将锡膏准确地涂敷在有需要焊接的PCB焊盘上。 钢网的好坏,直接影响印刷工作的质量,目前一般使用的金属钢网,是由薄薄的、带有小孔的金属板制作成的,在开孔处,锡膏…...
如何创建自己的gym环境
我们为什么要创建一个gym的环境呢?因为需要,哈哈哈,这是一句废话,但是也是一句真话。因为我不想自己写强化学习的算法了,我想用一些现成的框架,这些框架训练的都是gym的游戏,那我把我自己想要训…...
使用Marshaller 将Java对象转化为XML格式和字符串转为xml
使用Marshaller 将Java对象转化为XML格式 对象转xml内容 ①工具类 public static String convertObjectToXml(Object obj) throws Exception {StringWriter writer new StringWriter();// 创建 JAXBContext 和 MarshallerJAXBContext context JAXBContext.newInstance(obj.ge…...
NumPy 秘籍中文第二版:八、质量保证
原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 “如果您对计算机撒谎,它将帮助您。” – Perry Farrar,ACM 通讯,第 28 卷 在本章中,我们将介绍以下秘籍: …...
[ 应急响应篇基础 ] 日志分析工具Log Parser配合login工具使用详解(附安装教程)
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
