mybatis plus(包米豆)json存储Mysql数据库
直接看代码,实现传输的东西到数据库并且读出来.
注意:这里的Object到数据库其实会生成json,数据库字段是json,一定记得,然后用的是mysql的数据库
import com.baomidou.mybatisplus.annotation.TableName;
import com.hz.hzweb.bean.base.DataEntity;
import lombok.Data;import java.io.Serializable;
import java.util.Date;@Data
@TableName("bc_house")
public class HouseEntity extends DataEntity<HouseEntity> implements Serializable {/*** id*/private Long houseid;private String verify;private String housename;private Object housebasis;private Object housecarodds;private Object housecarlimit;private Object housecqsscodds;private Object housecqssclimit;private Object housepcodds;private Object housepclimit;private Object housecanadaodds;private Object housecanadalimit;private Object houseflyodds;private Object houseflylimit;private Object housesendmsg;private String kfqq = "123456";private String kfwechat = "123456";private Integer cancel = 0;private Integer billsmallshow = 5;private Integer billshow = 0;private String houseproxyaccount = "123456";private String houseproxypassword = "123456";private String wechatpayid = "123456";private String alipayid = "123456";private String qrwechatpay = "http://www.baidu.com";private String qralipay = "http://www.baidu.com";/*** 房间状态*/private Integer isstutas = 0;/*** 房间到期时间*/private Date expiretime;}
mapper文件的配置,这里的
typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"配置文件其实就是解析出来,但是存入的时候就需要转成json的字符串
<?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.hz.hzweb.bean.auth.mapper.HouseMapper"><resultMap id="HouseMap" type="com.hz.hzweb.bean.auth.entity.housebean.HouseEntity"><result property="houseid" column="houseid"/><result property="verify" column="verify"/><result property="housename" column="housename"/><result property="housebasis" column="housebasis"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housecarodds" column="housecarodds"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housecarlimit" column="housecarlimit"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housecqsscodds" column="housecqsscodds"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housecqssclimit" column="housecqssclimit"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housepcodds" column="housepcodds"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housepclimit" column="housepclimit"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housecanadaodds" column="housecanadaodds"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housecanadalimit" column="housecanadalimit"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="houseflyodds" column="houseflyodds"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="houseflylimit" column="houseflylimit"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="housesendmsg" column="housesendmsg"typeHandler="com.hz.hzweb.config.handler.MapStringTypeHandler"/><result property="kfqq" column="kfqq"/><result property="kfwechat" column="kfwechat"/><result property="cancel" column="cancel"/><result property="billsmallshow" column="billsmallshow"/><result property="billshow" column="billshow"/><result property="houseproxyaccount" column="houseproxyaccount"/><result property="houseproxypassword" column="houseproxypassword"/><result property="wechatpayid" column="wechatpayid"/><result property="alipayid" column="alipayid"/><result property="qrwechatpay" column="qrwechatpay"/><result property="qralipay" column="qralipay"/><result property="isstutas" column="isstutas"/><result property="expiretime" column="expiretime"/></resultMap>
</mapper>
MapStringTypeHandler是解析文件生成对象
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;public class MapStringTypeHandler<T> extends BaseTypeHandler<Map<String, T>> {private Class<T> clazz;//private static final TypeReference<HashMap<String, String>> mapStrStrTypeRef = new TypeReference<HashMap<String, String>>(){};private final TypeReference<HashMap<String, T>> typeRef = new TypeReference<HashMap<String, T>>() {};public MapStringTypeHandler(Class<T> clazz) {this.clazz = clazz;}@Overridepublic void setNonNullParameter(PreparedStatement ps, int i, Map<String, T> parameter, JdbcType jdbcType) throws SQLException {String json = JSON.toJSONString(parameter);ps.setString(i, json);}@Overridepublic Map<String, T> getNullableResult(ResultSet rs, String columnName) throws SQLException {return parseJson(rs.getString(columnName));}@Overridepublic Map<String, T> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {return parseJson(rs.getString(columnIndex));}@Overridepublic Map<String, T> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {return parseJson(cs.getString(columnIndex));}private Map<String, T> parseJson(String json) {if (String.class == clazz || Integer.class == clazz || Boolean.class == clazz) {return JSON.parseObject(json, typeRef);}Map<String, T> result = new HashMap<>();JSON.parseObject(json).forEach((k, v) -> result.put(k, JSON.parseObject(JSON.toJSONString(v), clazz)));return result;}
}
这个是serviceImpl,这里面设置的文件转成json,同学可以自己试试生成你想要的object,转成json后到数据库不会报错,在这里踩坑解决了一天,希望大家跳过这个坑
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hz.hzweb.bean.auth.entity.housebean.*;
import com.hz.hzweb.bean.auth.mapper.HouseMapper;
import com.hz.hzweb.bean.auth.service.HouseService;
import com.hz.hzweb.tools.net.RestResponse;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;import java.util.Random;
import java.util.UUID;@Service
public class HouseServiceImpl extends ServiceImpl<HouseMapper, HouseEntity> implements HouseService {@Overridepublic RestResponse openhouse(String housename) {Random random = new Random();String result = "";for (int i = 0; i < 6; i++) {result += random.nextInt(10);}Long aLong = Long.valueOf(result);HouseEntity houseEntity1 = baseMapper.selectOne(new QueryWrapper<HouseEntity>().eq("houseid", aLong));if (!StringUtils.isEmpty(houseEntity1)) return RestResponse.failure("房间已经存在!").setCode(500);HouseEntity houseEntity = new HouseEntity();houseEntity.setHousecanadalimit(JSONObject.toJSONString(new HouseCanadaLimit()));houseEntity.setHousebasis(JSONObject.toJSONString(new HouseBasis()));houseEntity.setHousename(housename);houseEntity.setVerify(UUID.randomUUID().toString().replaceAll("-", ""));houseEntity.setHouseid(aLong);houseEntity.setHousecanadaodds(JSONObject.toJSONString(new HouseCanadaOdds()));houseEntity.setHousecarlimit(JSONObject.toJSONString(new HouseCarLimit()));houseEntity.setHousecarodds(JSONObject.toJSONString(new HouseCarOdds()));houseEntity.setHousecqssclimit(JSONObject.toJSONString(new HouseCqsscLimit()));houseEntity.setHousecqsscodds(JSONObject.toJSONString(new HouseCqsscOdds()));houseEntity.setHouseflylimit(JSONObject.toJSONString(new HouseFlyLimit()));houseEntity.setHouseflyodds(JSONObject.toJSONString(new HouseFlyOdds()));houseEntity.setHousepclimit(JSONObject.toJSONString(new HousePcLimit()));houseEntity.setHousepcodds(JSONObject.toJSONString(new HousePcOdds()));houseEntity.setHousesendmsg(JSONObject.toJSONString(new HouseSendMsg()));baseMapper.insert(houseEntity);return RestResponse.success().setData(houseEntity);}@Overridepublic RestResponse queryhouse(Long houseid) {HouseEntity houseEntity = baseMapper.selectOne(new QueryWrapper<HouseEntity>().eq("houseid", houseid));if (StringUtils.isEmpty(houseEntity)) return RestResponse.failure("房间不存在").setCode(500);return RestResponse.success().setAny("obj", houseEntity).setCode(0);}@Overridepublic RestResponse gameopenclose(Long houseid, int type) {if (type == 0) {HouseEntity houseEntity = baseMapper.selectOne(new QueryWrapper<HouseEntity>().eq("houseid", houseid));HouseBasis houseBasis = (HouseBasis) houseEntity.getHousebasis();houseBasis.setFlystutas(0);houseBasis.setPcstutas(0);houseBasis.setCqsscstutas(0);houseBasis.setCarstutas(0);houseBasis.setCanadastutas(0);houseEntity.setHousebasis(houseBasis);baseMapper.updateById(houseEntity);return RestResponse.success("关闭成功").setCode(0);} else {HouseEntity houseEntity = baseMapper.selectOne(new QueryWrapper<HouseEntity>().eq("houseid", houseid));HouseBasis houseBasis = (HouseBasis) houseEntity.getHousebasis();houseBasis.setFlystutas(1);houseBasis.setPcstutas(1);houseBasis.setCqsscstutas(1);houseBasis.setCarstutas(1);houseBasis.setCanadastutas(1);houseEntity.setHousebasis(houseBasis);baseMapper.updateById(houseEntity);return RestResponse.success("开启成功").setCode(0);}}
}
然后直接insert的时候,
注意:这里必须要转json才能成功到数据库,也就是你需要存储的对象到数据库
除了添加需要把你想存储的对象变成json,其他不变!前端读出来也是对象哦,传对象直接能更改属性
同学如有任何疑问可以联系博主:755964539@qq.com
转载请标明出处哦!
mybatis plus(包米豆)json存储Mysql数据库相关推荐
- mysql 导入json_JsonToMysql(json导入mysql数据库工具)
JsonToMysql是款功能强大的json导入mysql数据库工具:用户在进行开发数据库.或者完成对相关的数据库维护的时候,经常需要将JSON的数据导入到数据库里面,如果没有专业的工具,就会对您的时 ...
- 系列 | 高性能存储-MySQL数据库之存储过程揭秘
墨墨导读:本文介绍什么是存储过程?为什么要使用存储过程?如何使用存储过程?如何去使用存储过程以及怎么执行存储过程. DBASK小程序已经开设"MySQL 数据库专栏",欢迎大家关注 ...
- python 爬虫源码 selenium并存储数据库_使用pythonSelenium爬取内容并存储MySQL数据库的实例图解...
这篇文章主要介绍了python Selenium爬取内容并存储至MySQL数据库的实现代码,需要的朋友可以参考下 前面我通过一篇文章讲述了如何爬取CSDN的博客摘要等信息.通常,在使用Selenium ...
- python框架之Scrapy自动存储mysql数据库
一.Scrapy框架介绍 '''Scrapy是适用于Python的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测 ...
- MyBatis中insert将数据插入mysql数据库,显示成功但是数据库不显示数据
问题:mybatis中使用insert向数据库中插入数据,操作成功但是数据库中没有数据. 原因:mybatis除select外,其他操作(insert,update-)默认不自动提交 解决方法:通过日 ...
- 微信头像存储mysql数据库
mysql 字符集改成 utf8mb4 储存的时候可以base64_encode
- MyBatis动态批量插入、更新Mysql数据库的通用实现方案
参考资料及博客: https://www.cnblogs.com/LiQ0116/p/7389049.html
- java sql变更存储,MySQL更改数据库数据存储目录,mysql数据存储
MySQL更改数据库数据存储目录,mysql数据存储 MySQL数据库默认的数据库文件位于 /var/lib/mysql 下,有时候由于存储规划等原因,需要更改 MySQL 数据库的数据存储目录.下文 ...
- 猫眼电影MySQL数据库怎么写_猫眼电影和电影天堂数据csv和mysql存储
字符串常用方法 #去掉左右空格 'hello world'.strip() #'hello world'#按指定字符切割 'hello world'.split(' ') #['hello','wor ...
- python爬取电影网站存储于数据库_python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析...
字符串常用方法 # 去掉左右空格 'hello world'.strip() # 'hello world' # 按指定字符切割 'hello world'.split(' ') # ['hello' ...
最新文章
- 微服务、分布式、云架构构建电子商务平台
- 初学python之路-day10
- 轻松理解之SpringBoot实现原理
- oracle undoautotune,温故知新 - UNDO,UNDO_RETENTION 及 _undo_autotune
- 【转】如何更改VS2010的[默认开发语言]默认环境设置 .
- 王道考研 计算机网络1 计算机网络概念,组成,功能和分类
- 关于编译FFMPEG的初级教程
- Scala:提取器(Extractor)
- 使用R包qpdf用一行代码将多个pdf合并为一个pdf
- Java课程设计——学生成绩管理系统
- 机械设计基础类毕业论文文献都有哪些?
- Thinkpad SL400开启蓝牙
- Linux磁盘16进制编辑,Tweak
- linux病毒扫描工具,linux病毒扫描工具ClamAV使用
- 在腾讯云搭建代理服务器的全部过程
- Fedformer中的小波变换(FEB-w模块)
- 从顺丰到菜鸟,洋女婿“爆改”俄罗斯邮政
- iphone怎么打c语言的分号,iPhone特殊符号怎么打 输入特殊符号技巧
- 如何myabtis使用注解对数据库进行操作呢?
- dw01均衡电路_一种基于dw01的电池保护电路调试测试方法