自定义一个TypeHander继承FloatTypeHandler,例子
public class TwoDecimalFloatTypeHander extends FloatTypeHandler{
@Override
public void setNonNullParameter(PreparedStatement ps, int i, Float parameter, JdbcType jdbcType)
throws SQLException {
ps.setFloat(i, parameter);
}
@Override
public Float getNullableResult(ResultSet rs, String columnName)
throws SQLException {
return NumberTool.keepTwoDecimalFloat(rs.getFloat(columnName));
}
@Override
public Float getNullableResult(ResultSet rs, int columnIndex)
throws SQLException {
return NumberTool.keepTwoDecimalFloat(rs.getFloat(columnIndex));
}
@Override
public Float getNullableResult(CallableStatement cs, int columnIndex)
throws SQLException {
return NumberTool.keepTwoDecimalFloat(cs.getFloat(columnIndex));
}
}
/**
* Float 保留两位小数
* @return
*/
public static Float keepTwoDecimalFloat(Float f) {
DecimalFormat decimalFormat=new DecimalFormat(".00");
return Float.parseFloat(decimalFormat.format(f));
}
然后在mybatis配置中引入自定义的handler处理器,例:
SELECT
o.id,
o.deliver_fee,
o.note,
o.payment_way,
o.product_total_price as productTotal_price,
o.order_state,
o.total_price,
o.buyer_id,
o.deliver_id,
o.receipt_date,
o.receipt_time,
o.create_date,
oi.itemid,
oi.order_id,
oi.seller_id,
oi.product_sku_id as productSku_id,
oi.sku_code,
oi.amount,
oi.ori_price,
oi.price
FROM
t_order o
left join t_order_item oi
on o.id = oi.order_id
where 1=1