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

企业网站建设公司 丰台西安做网站服务

企业网站建设公司 丰台,西安做网站服务,瓷器网站怎么做,网络营销是什么课困扰了好几个小时。。。 场景&#xff1a;mybatisplus从数据库取数据&#xff0c;只是用了最基础的 LambdaQueryWrapper 来查询&#xff0c;实体类如下。 TableField(typeHandler JacksonTypeHandler.class) private Set<Long> ids; 得到的Set数据却是Set<Integer…

困扰了好几个小时。。。

场景:mybatisplus从数据库取数据,只是用了最基础的 LambdaQueryWrapper 来查询,实体类如下。

@TableField(typeHandler = JacksonTypeHandler.class)
private Set<Long> ids;

得到的Set数据却是Set<Integer>类型。离谱。。。

后来查了资料才发现 Json序列化时,Josn串是没有Long类型的,而且反转回来也是Object接收,如果数字小于Interger的最大值,给转成了Integer

既然是这么个问题,那么我们可以自定义转换类 typeHandler 参数

package co.utils;import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.MappedTypes;
import org.springframework.util.StringUtils;import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;@MappedJdbcTypes(JdbcType.VARCHAR) // 数据库中该字段存储的类型
@MappedTypes(List.class) // 需要转换的对象
public class ListInteger2ListLongTypeHandler extends BaseTypeHandler<List<Long>> {private static final ObjectMapper objectMapper = new ObjectMapper();@Overridepublic void setNonNullParameter(PreparedStatement ps, int i, List<Long> parameter, JdbcType jdbcType) throws SQLException {ps.setObject(i, JSON.toJSONString(parameter));}@Overridepublic List<Long> getNullableResult(ResultSet rs, String columnName) throws SQLException {return getLongs(rs.getString(columnName));}@Overridepublic List<Long> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {return getLongs(rs.getString(columnIndex));}@Overridepublic List<Long> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {return getLongs(cs.getString(columnIndex));}private List<Long> getLongs(String value) {if (StringUtils.hasText(value)) {try {CollectionType type = objectMapper.getTypeFactory().constructCollectionType(ArrayList.class, Long.class);return objectMapper.readValue(value, type);//List<Long> longs = JsonUtil.parseArray(value, Long.class);} catch (JsonProcessingException e) {e.printStackTrace();}}return null;}
}

开发中尽量不要乱用一些对象属性转换工具。

如果不想定义一个类的话,可以试试这种方法:

List<Long> ids1 = JSON.parseArray(JSON.toJSONString(ids), Long.class);

将ids先转成字符串,然后再通过JSON转成数组

完~

参考:JSON序列化导致Long类型被搞成Integer怎么解决_编程网

Java Number类

http://www.yayakq.cn/news/656677/

相关文章:

  • 网站运营周期做软件开发视频网站
  • 个人申请网站淘宝上网站建设是什么
  • 网站如何做微信推广方案设计上海交通大学网站建设与管理3
  • 上海有名的设计公司有哪些wordpress优化速度
  • 深圳市设计网站做一个网站需要多长时间
  • 网站建设多长时间大良营销网站公司
  • 网站底部菜单网站编程课程设计心得体会
  • 贵州省城乡和住房建设厅网站音乐网站开发文档撰写模板
  • 聊城做网站做的不错的网络公司微信平台与微网站开发
  • 有哪些网站是cms国内vps做网站要备案吗
  • 织梦移动端网站建设东莞有哪些大公司
  • 右翼网站平原县网站seo优化排名
  • 什么是网站的入口营口工程建设信息网站
  • 网站设置快捷方式到桌面a 朝扬网络网站建设
  • 龙岩网站建设的软件深圳集团网站建设公司
  • 网站界面设计案例分析国外html5网站
  • 网站开发官网注册公司有什么风险吗
  • wordpress个人下载网站网站素材免费
  • 鲤城区建设局网站做毕业设计的网站设计
  • 自学网站建设教程网址安全中心检测
  • 哪个网站是做韩国化妆品正品温州网站建设定制
  • 青岛工程建设管理信息网站iis网站开发需要哪些配置
  • 网站虚拟主机空间服装网站建设规划书
  • 网站建设咨询公司页面设计简单吗
  • php网站设置如何使用wordpress主题文章列表
  • win7装什么版本wordpress淘宝优化
  • 确保网站建设又在前列深圳工程建设服务网
  • 酒类网站建设做网销好的网站
  • 网站什么英文字体电影vip免费网站怎么做的
  • 建筑设计类英文的网站重庆网站建设有名 乐云践新