Mybatis plus 存储 List、Map

这篇具有很好参考价值的文章主要介绍了Mybatis plus 存储 List、Map。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

一、前提概要

1.1 支持环境

数据库支持:MySql版本要求 5.7+

1.2 需求场景

使用MySQL数据库存储时,由于业务要求实体类中特定字段需要使用 自定义类型或者List、Map类型。

二、需求实现

2.1 非自定义数据类型,List、Map

首先:在需要转换的实体类字段上加上:

@TableField(typeHandler = JacksonTypeHandler.class)

接着:在该实体类上修改 @TableName

@TableName(value = "数据库表名",autoResultMap = true)

2.2 自定义类型数据类型

引入依赖:

<properties>
 <jackson-core.version>2.12.6</jackson-core.version>
 <jackson-databind.version>2.12.7.1</jackson-databind.version>
 <jackson-annotations.version>2.15.2</jackson-annotations.version>
</properties>

 <dependency>
   <groupId>com.fasterxml.jackson.core</groupId>
   <artifactId>jackson-core</artifactId>
   <version>${jackson-core.version}</version>
 </dependency>
 <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson-databind.version}</version>
 </dependency>
 <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>${jackson-annotations.version}</version>
</dependency>

首先定义数据处理工具类:

@Component
public class ObjectToJackson {
    private static ObjectMapper mapper;

    @Resource
    public void setMapper(ObjectMapper mapper) {
        ObjectToJackson.mapper = mapper;
    }

    public static <T> String objectToJson(T o) {
        try {
            return ObjectToJackson.mapper.writeValueAsString(o);
        } catch (Exception e) {
            e.printStackTrace();
            throw new ServerException(500);
        }
    }

    public static <T> T jsonToObject(String s, TypeReference<T> typeReference) {
        if (s == null) {
            return null;
        }
        try {
            return ObjectToJackson.mapper.readValue(s, typeReference);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
            throw new ServerException(500);
        }
    }
}

接着定义自己的转化规则:

public class ObjectToJacksonHandler extends BaseTypeHandler<Object> {

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
        String json = ObjectToJackson.objectToJson(parameter);
        ps.setString(i, json);
    }

    @Override
    public Object getNullableResult(ResultSet rs, String columnName) throws SQLException {
        String string = rs.getString(columnName);
        return ObjectToJackson.jsonToObject(string, new TypeReference<>() {
        });
    }

    @Override
    public Object getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        String string = rs.getString(columnIndex);
        return ObjectToJackson.jsonToObject(string, new TypeReference<>() {
        });
    }

    @Override
    public Object getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        String string = cs.getString(columnIndex);
        return ObjectToJackson.jsonToObject(string, new TypeReference<>() {
        });
    }
}

使用:文章来源地址https://www.toymoban.com/news/detail-613465.html

@TableName(value = "数据库表名", autoResultMap = true)

@TableField(typeHandler = ObjectToJacksonHandler.class)

到了这里,关于Mybatis plus 存储 List、Map的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合JUnit--MyBatis--MyBatis-Plus--Druid

    文章转自黑马程序员SpringBoot学习笔记,学习网址:黑马程序员SpringBoot2教程 1.整合JUnit ​ SpringBoot技术的定位用于简化开发,再具体点是简化Spring程序的开发。所以在整合任意技术的时候,如果你想直观感触到简化的效果,你必须先知道使用非SpringBoot技术时对应的整合是如何做

    2023年04月23日
    浏览(49)
  • SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)

    1.需求分析 2.数据库表设计 3.数据库环境配置 1.新建maven项目 2.pom.xml 引入依赖 3.application.yml 配置数据源 数据库名 用户名 密码 驱动是mysql8的(因为上面使用了版本仲裁) 4.Application.java 编写启动类 5.测试 6.配置类切换druid数据源 7.测试数据源是否成功切换 4.Mybatis基础配置 1

    2024年03月20日
    浏览(58)
  • SpringBoot集成Mybatis Plus【附源码】

    作为SpringBoot集成中间件其中的一篇文章吧,既然打算出这么一个系列了,争取做到虽小却全,又精又美的一个系列吧。 Mybatis Plus作为我入行以来,一直接触的一个中间件,也必须集成一下。同时也为初学者带来一些帮吧。 本文拆分自笑小枫-SpringBoot系列,更为精简的介绍了

    2024年01月16日
    浏览(43)
  • Springboot整合Mybatis Plus【超详细】

    MyBatisPlus是 基于MyaBatis框架基础上 开发的增强型工具,旨在 简化开发,提高效率 。 MyBatis Plus特性: 特性 说明 无入侵 做增强不做改变,不会对现有工程产生影响 损耗小 启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的CRUD操作 内置通用Mapper,少量配

    2024年02月07日
    浏览(44)
  • 最近正在集成SpringBoot与MyBatis-plus, MyBatis-Plus-Join体验感很好啊

    MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损耗

    2024年02月08日
    浏览(46)
  • mybatis-plus中的in的使用,是传Array?还是传List?别再纠结了

    先看个技术题吧。 下面两段代码,执行testFoo,结果分别是什么?   一眼看出来结果的同学,恭喜你,本文内容可以略过。   下面是正文。   我们在查询或更新数据的时候,有时要用到in来过滤数据。比如 SELECT * FROM emax_scbg_order WHERE order_no IN (1305679009380433922,1305405259472830465

    2024年02月14日
    浏览(42)
  • Mybatis-Plus+SpringBoot框架详解

    1、SpringBoot 简介 SpringBoot 提供了一种快速使用 Spring 的方式,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。 2014 年 4 月,Spring Boot 1

    2023年04月08日
    浏览(48)
  • 【SpringBoot】MyBatis与MyBatis-Plus分页查询 & github中的PageHelper

            笔者写这篇博客是因为近期遇到的关于两者之间的分页代码差距,其实之前也遇见过但是没有去整理这篇博客,但由于还是被困扰了小一会儿时间,所以还是需要 加深记忆 。其实会看前后端传参解决这个问题很快、不麻烦。关于这两个框架的分页代码问题主要就

    2024年02月03日
    浏览(58)
  • SpringBoot整合Mybatis-Plus(SpringBoot3)

    依赖pom.xml: pom.xml resource包下的Application.yml: Aollication.yml pojo包下的实体类User: User mapper包下的接口UserMapper: UserMapper 主启动类DemoPlusApplication DemoPlusApplication 测试类DemoApplicationTest: DemoApplicationTest 实现结果 检测数据库连接: C(Create): D(Delete): U(Update) R(Read)

    2024年03月20日
    浏览(55)
  • 在springboot中配置mybatis(mybatis-plus)mapper.xml扫描路径的问题

    我曾经遇到过类似问题: mybatis-plus的mapper.xml在src/main/java路径下如何配置pom.xml和application.yml_idea 把mapper文件放到java下如何配置_梓沂的博客-CSDN博客 当时只是找到解决问题的办法,但对mybatis配置来龙去脉并未深入了解,所以再次遇到问题还是受此困扰。 重新复习mybatis plus和

    2024年02月10日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包