首页 > 其他分享 >2024.10.4

2024.10.4

时间:2024-10-04 23:22:36浏览次数:9  
标签:2024.10 List json SQLException import class objectMapper

mybatis 中表字段的映射实体类

package com.ruoyi.system.handler;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.system.domain.ProductDetails;
import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;

import java.io.IOException;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

public class ProductDetailsTypeHandler extends BaseTypeHandler<List<ProductDetails>> {

    private static final ObjectMapper objectMapper = new ObjectMapper();

    @Override
    public void setNonNullParameter(PreparedStatement ps, int i, List<ProductDetails> parameter, JdbcType jdbcType) throws SQLException {
        try {
            ps.setString(i, objectMapper.writeValueAsString(parameter));
        } catch (JsonProcessingException e) {
            throw new SQLException("Failed to convert list to JSON string.", e);
        }
    }

    @Override
    public List<ProductDetails> getNullableResult(ResultSet rs, String columnName) throws SQLException {
        String json = rs.getString(columnName);
        if (json == null) {
            return null;
        }
        try {
            return objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, ProductDetails.class));
        } catch (IOException e) {
            throw new SQLException("Failed to convert JSON string to list.", e);
        }
    }

    @Override
    public List<ProductDetails> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
        String json = rs.getString(columnIndex);
        if (json == null) {
            return null;
        }
        try {
            return objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, ProductDetails.class));
        } catch (IOException e) {
            throw new SQLException("Failed to convert JSON string to list.", e);
        }
    }

    @Override
    public List<ProductDetails> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
        String json = cs.getString(columnIndex);
        if (json == null) {
            return null;
        }
        try {
            return objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, ProductDetails.class));
        } catch (IOException e) {
            throw new SQLException("Failed to convert JSON string to list.", e);
        }
    }
}

标签:2024.10,List,json,SQLException,import,class,objectMapper
From: https://www.cnblogs.com/258-333/p/18447475

相关文章

  • 2024.10.4 总结
    自己做题太慢了。我在图论方面思维很不够灵活。主要表现在建立图论模型、建图、对图上的权值做神秘修改等方面。下午尝试证明某题“正正解”的正确性,花了非常多的时间。后来水哥[解决了问题](?)(我感觉挺对的,但没细想了)。今天最后一题结论的证明:https://www.luogu.com.cn/article......
  • 2024.10.4 ROS第五章结束,复习背包问题模型 + codeforces刷刷题
    项目学习总结ROS第五章主要是学习了坐标变换,实际用途还是好理解的,比方说地面基地控制无人机追鸟。坐标变换主要是用tf这个包实现的。可以实现静态坐标变换,动态坐标变换和多坐标变换。静态和动态变换的关键函数:ps_out=buffer.transform(ps,"base_link");动态变换里面主要是......
  • 【刷题笔记】2024.10.4 test
    2024.10.4test虹色的北斗七星思路题目要求\[maxn-minn-len\]的最大值,其中\(maxn\)为区间的最大值,\(minn\)为区间的最小值,\(len\)为区间的长度注意性质,最优的状态一定是区间的左右端点为最大值和最小值时。因为,如果区间左右端点不为最大值或最小值,那么区间长度就可以继续......
  • 2024.10.[2, 3]训练记录
    10.2上午noip模拟比赛是8:00开始的,人是8:40起床的。T1猜了结论,秒了。结论是,一开始按照倒序排,连续是\(1\)的段\(reverse\)成正序。这样逆序对最多。感觉做法太简单\(O(n\logn)\)肯定不放。于是想了\(O(n)\)做法。最开始有\(\dfrac{n*(n-1)}{2}\)个逆序对,按段考虑......
  • 2024.10 - 做题记录与方法总结
    赏赐的是CCF,收回的也是CCF-《CCF圣经》2024/10/01国庆快乐!P10856【MX-X2-T5】「CfzRound4」Xor-Forces题面:题目描述给定一个长度为\(n=2^k\)的数组\(a\),下标从\(0\)开始,维护\(m\)次操作:操作一:给定\(x\),设数列\(a'\)满足\(a'_i=a_{i\oplusx}\),将\(a\)......
  • 2024.10.1 总结(集训;数据结构 主要是线段树)
    XK又来给我们讲课了。开心!1.Baka'sTrick两种理解:双栈模拟队列。[找到若干个划分点,使得每个区间包含恰好一个划分点。维护划分点到划分点段的前缀、后缀信息。在在线的实现中,在队列中维护仅仅一个划分点,维护它到前面每个点和它到后面每个点的信息。当这个划分点出队时,把队......
  • 论文总结1--基于深度强化学习的四足机器人步态分析--2024.10.01
    四足机器人的运动控制方法研究1.传统运动控制-基于模型的控制方法  目前,在四足机器人研究领域内应用最广泛的控制方法就是基于模型的控制方法,其中主要包括基于虚拟模型控制(VirtualModelControl,VMC)方法、基于零力矩点(ZeroMomentPoint,ZMP)的控制方法、弹簧负载倒立摆算法......
  • 2024.10 训练日记
    我们将难度分为\(5\)个等级:\(\color{grey}\bigstar\)简单题,根本不配进入NOI的考场,做着玩玩。或者为模板题。\(\color{green}\bigstar\)签到题,在NOI赛场上强银选手几乎人人都会,如果赛场上不会的话对冲银的影响是非常大的,要避免。\(\color{blue}\bigstar\)中等题,在NOI......