Spring boot Mybatis传入对象中有数组array时使用${}、#{}批量映射存储多个字段
前情提要
对象ScoreEntity中有Double数组answerarray1211[3],要在Mybatis中分别使用insert、update命令存入mysql中的answer12110,answer12111,answer12112字段中。
主要思路
因使用#{}时sql注入风险较低,推荐使用#{}方法。
- ${}:
直接用下标取值即可。如:
answer12110=${answerarray1211[0]},
answer12111=${answerarray1211[1]},
answer12112=${answerarray1211[2]},
- #{}:
在Mapper中,使用foreach遍历数组,在foreach中使用choose选择下标,即可使用#{}赋值(这个是我自己想的,可能会比较麻烦不完善,欢迎交流)。如:
<foreach collection="answerarray1211" index="index" item="array1211"><choose><when test="index==0">answer12110 = #{array1211,jdbcType=DECIMAL},</when><when test="index==1">answer12111 = #{array1211,jdbcType=DECIMAL},</when><when test="index==2">answer12112 = #{array1211,jdbcType=DECIMAL},</when></choose>
</foreach>
完整代码
- ScoreEntity.java中定义字段
//字段
@ApiModelProperty(value = "答案数组1211",name="answerarray1211")
private Double[] answerarray1211=new Double[3];//相关方法
public Double[] getAnswerarray1211(){return answerarray1211;}public void setAnswerarray1211(Double[] array1211){this.answerarray1211=array1211;}
- ScoreDao.java中声明。
public int insertSelective1_2_1(ScoreEntity entity);
public int updateSelective1_2_1(ScoreEntity entity);
- ScoreMapper.xml中insert命令(使用#{})。
注意:foreach得到的结果两边是没有逗号的,要在上下文中需要的地方加逗号!
<!-- 添加记录 -->
<insert id="insertSelective1_2_1" parameterType="com.wwhy.entity.ScoreEntity">insert into score (answer12110,answer12111,answer12112) values(<foreach collection="answerarray1211" index="index" item="array1211" separator=",">#{array1211,jdbcType=DECIMAL}</foreach>)
</insert>
- ScoreMapper.xml中update命令(使用#{})。
<update id="updateSelective1_2_1" parameterType="ScoreEntity" >update score set<foreach collection="answerarray1211" index="index" item="array1211"><choose><when test="index==0">answer12110 = #{array1211,jdbcType=DECIMAL},</when><when test="index==1">answer12111 = #{array1211,jdbcType=DECIMAL},</when><when test="index==2">answer12112 = #{array1211,jdbcType=DECIMAL},</when></choose></foreach>where student_id = #{studentId,jdbcType=BIGINT}
</update>
Spring boot Mybatis传入对象中有数组array时使用${}、#{}批量映射存储多个字段相关推荐
- 第七章、Spring Boot MyBatis升级篇
课时二十七.Spring Boot MyBatis升级篇-注解 缘起:在一节视频中,有这么一段留言:"会不会推出SpringBoot整合Mybaits配置文件sqlMapConfig.xml ...
- Spring Boot + Mybatis 快速整合
引言 最近在工作结束后抽时间学习了一下mybatis的知识,因为之前有学习过,但是经久不用,也未曾踏实地整理,因此有所淡忘. super meeting会议管理系统是我厂最近开发的一套会议预约平台.持 ...
- java spring sqlite,Spring Boot+MyBatis+SQLite配置
Spring Boot+MyBatis+SQLite配置例子参考下面 创建新项目 项目类型务必选择箭头指定的类型,否则不会自动生成代码模版 增加依赖项 junit junit 4.13.1 test ...
- Eclipse + Spring boot +mybatis + mysql
Eclipse + Spring boot +mybatis + mysql 如题.使用Springboot 2.0 版本进行网页的开发.原理和优点很多博文已经讲过了,这里不再赘述.但是很多项目按照他 ...
- Spring Boot + Mybatis 实现动态数据源
动态数据源 在很多具体应用场景的时候,我们需要用到动态数据源的情况,比如多租户的场景,系统登录时需要根据用户信息切换到用户对应的数据库.又比如业务A要访问A数据库,业务B要访问B数据库等,都可以使用动 ...
- Spring boot Mybatis 整合(注解版)
之前写过一篇关于springboot 与 mybatis整合的博文,使用了一段时间spring-data-jpa,发现那种方式真的是太爽了,mybatis的xml的映射配置总觉得有点麻烦.接口定义和映 ...
- Spring Boot MyBatis
MyBatis简介 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis . 集成spring bo ...
- spring boot + mybatis + layui + shiro后台权限管理系统
后台管理系统 版本更新 后续版本更新内容 链接入口: springboot + shiro之登录人数限制.登录判断重定向.session时间设置:https://blog.51cto.com/wyai ...
- 从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建
从零搭建一个 Spring Boot 开发环境!Spring Boot+Mybatis+Swagger2 环境搭建 本文简介 为什么使用Spring Boot 搭建怎样一个环境 开发环境 导入快速启动 ...
最新文章
- oracle索引未使用,oracle
- 改变Android的hello world程序字体颜色和背景颜色
- Django(part27)--聚合查询
- C# 动态创建控件时注册Name属性
- 工业以太网交换机的接口知识详解
- [vue-cli]vue-cli3插件有写过吗?怎么写一个代码生成插件?
- python odoo_odoo python 使用缓存
- B. MIN-MEX Cut
- 思科交换机的初始配置(使用telnet登录)
- VB实现可执行文件运行时自删除
- elasticsearch 海选功能
- css的9个常用选择器
- The type XXX is not API (restriction on required library 'D:\jdk-64\jre\lib\rt.jar')
- linux 创建用户_用 Bash 脚本发送新用户帐户创建的邮件 | Linux 中国
- 录制计算机课,ClassIn怎么录制视频 录课操作步骤
- MySQL分页查询的5种方法
- 绝对值c语言不用函数,C语言 STM32 求绝对值函数
- 毕业设计So Easy:基于Java语言西餐厅点餐系统
- Ubuntu 无法连接网络
- python求矩阵逆、伪逆、转置、矩阵乘法
热门文章
- DSm安装mysql_群晖Synology DSM系统安装教程
- DeFi之道丨一文了解Uniswap v3 LP 自动化管理器
- 基于QT的多线程视频监控的实现(一)
- 这次终于理解了PCA主成分分析(附代码)
- 新基建赛场上 宁畅ODM为何备受青睐?
- 五金机电行业S2B2B商城系统打破传统线下营销方式,实现企业高质量发展
- linux 4TB硬盘 只识别2T,4TB移动硬盘电脑只能识别到2.2TB 是怎么回事?
- java事务类型_Spring事务类型祥解
- 云计算系统管理、 云计算应用管理、系统服务管理进阶
- nyoj 284 坦克大战【bfs】