浪潮之巔
2018-12-25 16:32
此处和前面涉及价格的地方,Dao层和库里的类型是Double,Service和Controller层是BigDecimal,为什么不全都用BigDecimal?从库中取出到Dao层Double不会丢精吗?
老师想都用BigDecimal的,奈何数据库不支持啊。Service和Controller层是可控的,自己写的Model类,当然用BigDecimal了。Dao层类是mybatis-generator插件生成的,没法用BigDecimal,因为Mysql数据库没有这个数据类型。当然你可以认为Mysql的Decimal可以和Java的BigDecimal一致,问题是,mybatis-generator把Mysql的Decimal生成了Long类型,明显不适合做价格字段。
一般人民币单位都是分!!!!!!!用Long 不会有精度的问题,用String 也可以~
因为老师数据库decimal(10,0)这样写的,所以生成实体类是Long。
如果数据库设计为这样:
`price` decimal(10,2) DEFAULT NULL,
生成实体类会是
private BigDecimal price;
不是mybatis自动生成代码的锅。
SpringBoot构建电商基础秒杀项目
49290 学习 · 954 问题
相似问题