<id column="id" property="id" />
<result column="sku_code" property="skuCode" />
<result column="sku_price" property="skuPrice" />
<result column="ori_price" property="oriPrice" />
<result column="sku_select_value" property="skuSelectValue" />
<result column="quantity" property="quantity" />
<result column="buy_limit" property="buyLimit" />
<result column="img" property="img" />
<result column="product_id" property="productId" />
<result column="modifyTime" property="modify_time" />
</resultMap>
<sql id="ProductSkuInfo">
SELECT
product_id,
id,
sku_code,
sku_price,
ori_price,
sku_select_value,
quantity,
img,
buy_limit,
modify_time
from t_product_sku
</sql>
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
使用Mybatis框架,如何使查询结果float数据保留两位小数
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- iteye_11009 2014-07-18 12:29关注
自定义一个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处理器,例:
<collection property="orderItems" ofType="com.ldlife.accountserver.user.domain.OrderItem" column="orderId"> <id column="itemid" property="itemid"/> <result column="order_id" property="orderId"/> <result column="seller_id" property="sellerId"/> <result column="productSku_id" property="productSkuId"/> <result column="sku_code" property="skuCode"/> <result column="amount" property="amount"/> <result column="create_date" property="createDate"/> <result column="ori_price" property="oriPrice" typeHandler="com.ldlife.accountserver.base.mybatis.typehander.TwoDecimalFloatTypeHander"/> <result column="price" property="price" typeHandler="com.ldlife.accountserver.base.mybatis.typehander.TwoDecimalFloatTypeHander"/> </collection> </resultMap> <sql id="orderInfo"> 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 <l>
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵