mybatis各种数据类型转换

  1. list转map【.collect

Map<Integer, layerDto> dic=list.stream().collect(Collectors.toMap(LayerDto::getLayerId, Function.identity()));
  1. list转list【JSONUtil.toBean

//List<Object> list;
List<ObjectDto> objects=list.stream().map(p -> JSONUtil.toBean(JSONUtil.toJsonStr(p), ObjectDto.class)).collect(Collectors.toList());
  1. string转map【Gson

HashMap<String, PropertyData> dicProperty = new HashMap<String, PropertyData>();
LamsSettings settingIndicatorProperty = settingsService.selectSettingByCode("INDICATOR_PROPERTY");
if (settingIndicatorProperty != null && !(settingIndicatorProperty.getValue()!=null))
{
        Gson gson = new Gson();
        String jsonString=settingIndicatorProperty.getValue();
        dicProperty =gson.fromJson(jsonString, dicProperty.getClass());
}
  1. map转list

Map<String,Object> diclist;
diclist.values().stream().collect(Collectors.toList());
  1. List转string

List<String> pointStr=new ArrayList<>();
String pointCondValue=pointStr.stream().collect(Collectors.joining("','", "('", "')"));
  1. String转BigDecimal

BigDecimal b1 = new BigDecimal(Double.toString(904163.08));
BigDecimal b2 = new BigDecimal(Double.toString(210298.99));
//小数相加(避免多出很多小数位)
System.out.println(b1.add(b2).doubleValue());
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
MyBatis提供了JDBC类型映射和TypeHandler两种方式来进行数据类型转换。 1. JDBC类型映射 MyBatis通过JDBC类型映射来将数据库中的数据类型映射到Java中的数据类型,例如将数据库中的BIGINT类型映射为Java中的Long类型。JDBC类型映射是MyBatis默认使用的方式,可以通过在mapper文件中设置jdbcType属性来指定映射的JDBC类型。例如: <result column="id" property="id" jdbcType="BIGINT"/> 2. TypeHandler TypeHandler是MyBatis提供的一种自定义类型转换方式,可以通过实现TypeHandler接口来实现类型转换逻辑。例如,我们可以自定义一个将Java中的Boolean类型转换数据库中的CHAR(1)类型的TypeHandler,具体实现如下: public class BooleanTypeHandler extends BaseTypeHandler<Boolean> { @Override public void setNonNullParameter(PreparedStatement ps, int i, Boolean parameter, JdbcType jdbcType) throws SQLException { ps.setString(i, parameter ? "Y" : "N"); } @Override public Boolean getNullableResult(ResultSet rs, String columnName) throws SQLException { return "Y".equals(rs.getString(columnName)); } @Override public Boolean getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return "Y".equals(rs.getString(columnIndex)); } @Override public Boolean getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return "Y".equals(cs.getString(columnIndex)); } } 在mapper文件中使用TypeHandler的方式如下: <result column="is_valid" property="isValid" typeHandler="com.example.BooleanTypeHandler"/> 通过以上方式,我们可以自定义类型转换逻辑,实现数据库中与Java中不同类型之间的转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姗姗的鱼尾喵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值