SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型-深圳网站优化推广公司

SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型

简介: SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用

@[TOC]

摘要

mybatis用于bean和mysql字段映射,针对字段类型为JSONObject和JSONArray方式使用

ArrayTypeHandler:

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.alibaba.fastjson.JSONArray;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;

/**
 * @Author: Mickey
 * @Date: 2019/7/1 10:22
 * @Version 1.0
 */
@MappedTypes(JSONArray.class)
@MappedJdbcTypes(JdbcType.VARCHAR)
public class ArrayTypeHandler extends BaseTypeHandler<JSONArray> {
   
    /**
     * 设置非空参数
     * 
     * @param ps
     * @param i
     * @param parameter
     * @param jdbcType
     * @throws SQLException
     */
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, JSONArray parameter, JdbcType jdbcType)
            throws SQLException {
   
        ps.setString(i, String.valueOf(parameter.toJSONString()));
    }

    /**
     * 根据列名,获取可以为空的结果
     * 
     * @param rs
     * @param columnName
     * @return
     * @throws SQLException
     */
    @Override
    public JSONArray getNullableResult(ResultSet rs, String columnName) throws SQLException {
   
        String sqlJson = rs.getString(columnName);
        if (null != sqlJson) {
   
            return JSONArray.parseArray(sqlJson);
        }
        return null;
    }

    /**
     * 根据列索引,获取可以为空的结果
     * 
     * @param rs
     * @param columnIndex
     * @return
     * @throws SQLException
     */
    @Override
    public JSONArray getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
   
        String sqlJson = rs.getString(columnIndex);
        if (null != sqlJson) {
   
            return JSONArray.parseArray(sqlJson);
        }
        return null;
    }

    @Override
    public JSONArray getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
   
        String sqlJson = cs.getString(columnIndex);
        if (null != sqlJson) {
   
            return JSONArray.parseArray(sqlJson);
        }
        return null;
    }
}

MySqlJsonHandler

import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.alibaba.fastjson.JSONObject;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;

/**
 * @Author: Mickey
 * @Date: 2019/7/1 10:22
 * @Version 1.0
 */
@MappedTypes(JSONObject.class)
@MappedJdbcTypes(JdbcType.VARCHAR)
public class MySqlJsonHandler extends BaseTypeHandler<JSONObject> {
   
    /**
     * 设置非空参数
     * 
     * @param ps
     * @param i
     * @param parameter
     * @param jdbcType
     * @throws SQLException
     */
    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, JSONObject parameter, JdbcType jdbcType)
        throws SQLException {
   
        ps.setString(i, String.valueOf(parameter.toJSONString()));
    }

    /**
     * 根据列名,获取可以为空的结果
     * 
     * @param rs
     * @param columnName
     * @return
     * @throws SQLException
     */
    @Override
    public JSONObject getNullableResult(ResultSet rs, String columnName) throws SQLException {
   
        String sqlJson = rs.getString(columnName);
        if (null != sqlJson) {
   
            return JSONObject.parseObject(sqlJson);
        }
        return null;
    }

    /**
     * 根据列索引,获取可以为空的结果
     * 
     * @param rs
     * @param columnIndex
     * @return
     * @throws SQLException
     */
    @Override
    public JSONObject getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
   
        String sqlJson = rs.getString(columnIndex);
        if (null != sqlJson) {
   
            return JSONObject.parseObject(sqlJson);
        }
        return null;
    }

    @Override
    public JSONObject getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
   
        String sqlJson = cs.getString(columnIndex);
        if (null != sqlJson) {
   
            return JSONObject.parseObject(sqlJson);
        }
        return null;
    }
}

dao层使用

==说明:
上面部分为字段类型映射
下面部分为具体使用设置参数时指定字段类型==

 @Results(id = "resultMap", value = {
   @Result(column = "task", property = "task", jdbcType = JdbcType.OTHER, typeHandler =  com.geespace.microservices.data.computing.model.server.handler.MySqlJsonHandler.class),
====================================================================================
if (!StringUtils.isEmpty(dragSparkTask.getTask())) {
   
            sql.VALUES("task", "#{task, jdbcType =OTHER, typeHandler =\n"
"com.geespace.microservices.data.computing.model.server.handler.MySqlJsonHandler}");
        }

image.png

重要信息

image.png
image.png
image.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
21天前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
39 5
|
10天前
|
XML 安全 Java
Spring Boot中使用MapStruct进行对象映射
本文介绍如何在Spring Boot项目中使用MapStruct进行对象映射,探讨其性能高效、类型安全及易于集成等优势,并详细说明添加MapStruct依赖的步骤。
|
1月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
60 9
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
42 2
|
1月前
|
关系型数据库 MySQL 索引
MySQL的group by与count(), *字段使用问题
正确使用 `GROUP BY`和 `COUNT()`函数是进行数据聚合查询的基础。通过理解它们的用法和常见问题,可以有效避免查询错误和性能问题。无论是在单列分组、多列分组还是结合其他聚合函数的场景中,掌握这些技巧和注意事项都能大大提升数据查询和分析的效率。
113 0
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
37 0
|
13天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
87 15
|
6天前
|
SQL 关系型数据库 MySQL
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
|
13天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。

相关内容推荐

邳州网站建设制作企业制作趣味数学网站网站设计制作的基本知识黑光网站制作ppt厦门宠物网站制作勇往直前电影网站制作东阳如何制作seo网站学习网页设计制作的学习网站一路顺风电影网站制作邕宁手机网站制作黄色片网站制作书签单位网站制作合同范本如何制作一个游戏攻略网站恩平外贸网站设计制作网站ui制作教程九九文章网站制作h5制作网站官网网站模板制作心得做彩票网站制作网站变app制作网站设计和制作费用单位网站制作合同范本沈阳零售网站制作起名网站制作美食对象模型网站制作免费制作网站系统亳州个性化网站制作公司广告手机网站制作益阳营销型网站制作口罩登记网站制作鹿寨网站制作网站都是模板制作的吗仙游全景网站制作网站制作公司的网站动态网站制作实验报告上地模板网站制作政府机关网站制作模板科士威网站制作小玩具洛阳微网站制作空难纪录片网站制作杭州网站制作方案定制迎客松flash制作网站简单的网站制作方案瀍河网站制作有哪些可以制作云商店的网站南通海安网站制作大连甘井子网站设计制作企业自己制作的网站怎么排名靠前姜堰外贸营销网站制作苏州相城网站设计制作慈溪制作大型网站用什么软件wap网站制作点击了解更多ppt制作好的网站奉化企业网站制作好吗上饶制作网站设计一般要多久长治制作网站个人制作官方网站网站制作和修改酒店网站制作意义北京饭店网站制作干花世博会网站制作书签嘉兴制作网站js英文怎么写如何网站制作壁纸的app靖江商城网站制作多少钱秘密网站制作表情包口碑好的网站制作联系方式嘉定网站制作建设网站登录图片在线制作返现网站制作13电影网站制作制作工作证网站清徐网站制作方式方法赤峰制作网站的基本流程房山网站制作与推广预告片网站制作壁纸制作banner的网站色情网站制作流程福泉手机版网站制作效果图网站制作冰淇淋移动网站制作贴纸怎么制作网站用什么软件高平网站制作源码图片广告制作网站有哪些傻瓜网站制作视频软件网站制作公司如何分类分类网站制作壁纸客户不理解网站制作费用长兴网站制作软件都是什么软件名书网站制作漳州网站制作奶茶四平市网站制作公司制作酒店网站的目的西乡专门做网站制作长沙网站制作方案定制电脑制作海报的网站在线题库制作网站前端框架技术制作专题网站交流永州专业制作网站的公司哪家好经济型网站制作哪家公司好学习制作app在哪个网站地方网站制作视频网站制作素材绿色零食个人网站制作模板零售行业网站制作网站如何制作好世界卫生组织网站制作ppt财经网站头像制作瑞安功能型网站制作多少钱偏方网站制作ppt厦门网站开发制作建筑设计网站制作雪糕如何制作个人介绍网站模板怎么给企业制作网站吗黎川网站制作免费制作网站平台那个好旅游网站主页制作创意设计网站制作干花怎么制作免费游戏网站领英网站的简历如何制作网站制作就问秒搜科技丹阳怎样制作网站桃太郎电影网站制作网站制作代码书籍大学生ASP制作网站作业衡水网站制作信息承德制作网站多少钱vr网站制作哪家正规瑞昌网站设计制作南京网站制作收费标准网站制作ppt讲解下载宝安营销网站制作怎么样制作光效的网站义乌网站制作头像教程芜湖企业网站制作公司网站制作终身质保智能招聘网站简历制作特殊字符制作网站石狮制作vr网站单页网站免费落地页制作平台手机订购收费类网站怎么制作三亚公司网站制作重阳节表情包制作网站滨州英文网站制作设计鄂州网站制作美食简单广东网站建设制作设计服务机构马尾网站制作秦皇岛政府网站制作刺青网站制作手工如何练成为建网站制作高手制作电影网站侵权吗栖霞网站制作的流程如果制作工资查询网站宜宾长宁网站制作儿歌网站制作美食报考网站制作小玩具头像制作电影网站保定市网站制作推广珠海专业网站设计制作网站制作公司皆赞乐云践新佛山企业网站制作一般多少钱深圳网站建设与设计制作制作阅读网站香蜜湖便宜的网站制作哪里好net网站制作控件如何拖动网页制作素材网站免费黑龙江宣传网站制作惠州制作网站方案京剧纪录片网站制作网站广告制作多少钱建筑公司网站如何制作买马网站制作起泡兔展里面有免费网站怎么制作工业网站制作小玩具学校网站制作公司海南网站制作定制广元网站制作多少钱站外网站制作方法中山网站制作 必推易维互联业务员网站制作视频怎样给狗狗制作一个网站私人网站制作 个人使用美国宇航局网站制作贴纸制作鲜花网站英语翻译网站制作书签iis设计制作一个简单的网站吉林订餐网站开发制作深圳做国外网站制作怎么样网上支付网站制作干花发声翻译网站制作宁夏银川网站制作咨询叶县网站制作电话河北网站设计制作松江网站制作维护嘉兴网站制作有名公司一键制作的网页的网站黄冈市网站制作企业肇庆响应式网站制作制作震撼网站如何制作能自由diy的网站风景图片素材网站制作

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统