1、mysql里bigdecimal 格式的设置保留2小数,查询出确是没有小数位数的数字
解决办法:
使用Jackson进行序列化,以下举例:
//引入jackson相关包
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@JsonSerialize(using= ToStringSerializer.class)
private BigDecimal shipmentAmountTotal;
2、(1)中问题在查询列表中已解决,但是在查询详情中却失效
原因:因为在查询列表中只使用了jackson的包, 但是在查询详情中却使用了fastjson 和 jackson两种,他们俩属于不同的包,导致保留小数位功能失效
这里就混用了两种,so。。 我们就两者取其一,就不用fastjson 全改成Jackson。
3、getJdbcTemplate().batchUpdate(); 批量执行sql语句
举例说明:
public void assignPermission(final String roleId, final String menuIdList[]) throws DataAccessException { String sql = "INSERT INTO CFG_ROLE_PERMISSION (ROLE_ID, PERMISSION_ID) VALUES (?, ? )"; getJdbcTemplate().batchUpdate(sql, new BatchPreparedStatementSetter(){ public void setValues(PreparedStatement ps,int i)throws SQLException //设置执行sql的值 { String menuId = menuIdList[i]; ps.setString(1, roleId); ps.setString(2, menuId); } public int getBatchSize() //设置批量执行次数 { return menuIdList.length; } }); }