直接看代码,实现传输的东西到数据库并且读出来.
注意:这里的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;
}
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Map<String, T> parameter, JdbcType jdbcType) throws SQLException {
String json = JSON.toJSONString(parameter);
ps.setString(i, json);
}
@Override
public Map<String, T> getNullableResult(ResultSet rs, String columnName) throws SQLException {
return parseJson(rs.getString(columnName));
}
@Override
public Map<String, T> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return parseJson(rs.getString(columnIndex));
}
@Override
public 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 {
@Override
public 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);
}
@Override
public 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);
}
@Override
public 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,其他不变!前端读出来也是对象哦,传对象直接能更改属性
同学如有任何疑问可以联系博主:[email protected]
转载请标明出处哦!