项目经验
# 项目经验
数据库给某个表添加记录,DAO层addXX最好的传参做法是直接传入一个pojo实体,然后再一个个把实体对象的具体属性对应上Sql语句where当中。因为这样做比较方便程序员理解
addTopic(Topic topic){ super.ExecuteUpdate('insert...values(0,?,?,?)',topic.author,topic.title,topic.context) }1
2
3实体类中存在一对一或者一对多关系时,比如A表中的外键id引用B表的id,创建实体类时,A中的bId属性最好是实体类B,这样前端或者其它业务要进一步使用到关联的B表属性,可以直接调用b对象,否则如果仅存bid还要进行一次表查询。缺点在于根据底层数据库返回数据使用反射封装类时,返回的Integer bid,因此需要进一步封装成B对象。
public class A{ Integer id; String title; B b; }1
2
3
4
5可以根据业务需要或者一对多关系,给实体类添加新的属性,比如List<>,这样便于业务处理。
数据库或前端的数值类型
进行统计的复杂查询时(count/sum),记得留心注意返回类型(Long/BigDecimal)
java进行double运算后,会进行精度调整,导致小数点位数异常,方法是使用BigDecimal类型通过字符串调用乘除法。
public Double getXj() { BigDecimal bigDecimalPrice = new BigDecimal(""+getBook().getPrice()); BigDecimal bigDecimalBuyCount = new BigDecimal(""+buyCount); BigDecimal bigDecimalXJ = bigDecimalPrice.multiply(bigDecimalBuyCount); xj = bigDecimalXJ.doubleValue() ; return xj; }1
2
3
4
5
6
7
编辑 (opens new window)
上次更新: 2023/12/15, 15:49:57