当前位置: 首页 > news >正文

Springboot引入mybatis-plus及操作mysql的json字段

  1. springboot引入mybatis-plus,创建springboot项目省略
    1. pom文件
    2.  <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version></dependency>
      <!--自动生成代码模版--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.4.3.4</version></dependency>
    3. 配置文件
    4. #配置mybatis配置文件
      mybatis-plus:#mappersmapper-locations: classpath:mappers/*Mapper.xmltype-handlers-package: com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
    5. 备注信息
      1. springboot使用mybatis和mybatis-plus没有什么区别,需要注意的是配置文件跟配置名:mybatis-plus
      2. 使用mybatis-plus的有点在于,在mybatis的基础上记性了一系列的有效封装,节约了开发时间,有这方面兴趣额同学自行搜索区别就是了
  2. mybatis-plus操作mysql的json字段
    1. mysql在5.7以后出现了json字段类型,这样省去了代码中转换的不必要性,但是mybatis目前还不能直接支持json类型,需要额外的处理,也就是自定义jdbctype类型进行处理
    2. mybatis-plus可以支持json类型
      1. 实体类类名和对应属性上增加配置
      2. package com.test.entity;
        import com.alibaba.fastjson.JSONObject;
        @Data
        @TableName(value = "user",autoResultMap = true)
        public class User implements Serializable {private static final long serialVersionUID = 1L;private Long id;private String name;@TableField(value="content",typeHandler = JacksonTypeHandler.class)private JSONObject content;
        }
      3. xml文件的resultMap对应的字段增加配置
      4.  <resultMap id="baseMap" type="com.enric.payment.bin.ConfigTicketBO"><id column="uuid" property="uuid"/><result column="station_id" property="station_id"/><result column="pc_on" property="pc_on"/><result column="machine_on" property="machine_on"/><result column="machine_auto" property="machine_auto"/><result column="ticket_pages" property="ticket_pages"/><result column="coupon_rule_volume" property="coupon_rule_volume"/><result column="coupon_over_volume" property="coupon_over_volume"/><result column="coupon_expire_time" property="coupon_expire_time"/><result column="create_time" property="create_time"/><result column="update_time" property="update_time"/><result column="create_by" property="create_by"/><result column="update_by" property="update_by"/><result column="ticket_info" property="ticket_info"typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/><result column="coupon_info" property="coupon_info"typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/></resultMap>
      5. xml插入或更新语句增加配置
      6. <update id="saveOrUpdate">INSERT INTO config_ticket(uuid, station_id, pc_on, machine_on, machine_auto, ticket_info, coupon_info,coupon_rule_volume,coupon_expire_time, coupon_over_volume, create_time, update_time, create_by)VALUES (#{uuid}, #{station_id}, #{pc_on}, #{machine_on}, #{machine_auto},#{ticket_info,jdbcType=OTHER,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},#{coupon_info,jdbcType=OTHER,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},#{coupon_rule_volume},#{coupon_expire_time}, #{coupon_over_volume}, now(), now(), #{create_by})ON DUPLICATE KEY UPDATE pc_on              = #{pc_on},machine_on         = #{machine_on},machine_auto       = #{machine_auto},ticket_info        = #{ticket_info,jdbcType=OTHER,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},coupon_info        = #{coupon_info,jdbcType=OTHER,typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},coupon_rule_volume = #{coupon_rule_volume},coupon_expire_time = #{coupon_expire_time},coupon_over_volume = #{coupon_over_volume},update_time        = now(),update_by          = #{update_by}</update>

http://www.lryc.cn/news/214784.html

相关文章:

  • springboot读取application.properties中文乱码问题
  • SAML- 安全断言标记语言
  • 【佳学基因检测】Node.js中http模块的使用
  • 前端基础之JavaScript
  • [GDOUCTF 2023]<ez_ze> SSTI 过滤数字 大括号{等
  • C/C++奇数求和 2021年3月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • Android APT的使用
  • 【刷题宝典NO.0】
  • MySQL数据库——存储过程-介绍以及基本语法(特点、创建、调用、查看、删除、示例)
  • 基础课15——语音标注
  • Linux启动故障排错
  • 全新二开游戏支付通道/话费/电网、紫水晶带云端源码
  • Hadoop相关知识点
  • Javassist讲解1(介绍,读写字节码)
  • 【Linux】常见指令以及具体其使用场景
  • 后台管理(二)
  • 反转链表II(C++解法)
  • 记一次 logback 没有生成独立日志文件问题
  • 数据库强化(1.视图)
  • Mysql与SeaweedFS数据不同步问题产生原因及解决办法
  • Kotlin apply和with用法和区别
  • springboot通过aop自定义注解@Log实现日志打印
  • k8spod详解其二
  • golang包的管理
  • Windows10安装Anaconda与Pytorch的记录
  • 图解Kafka高性能之谜(五)
  • opencv在linux上调用usb摄像头进行拍照
  • 软考之知识产品+例题
  • 玩了一下 Jenkins,最新版本 + JDK11
  • 自定义的卷积神经网络模型CNN,对图片进行分类并使用图片进行测试模型-适合入门,从模型到训练再到测试,开源项目