大家好,这是我第一次写博客,也不知道怎么写,就把我这次做项目过程中遇到的问题和经验跟大家分享哈
看代码吧
首先在Dao层中建一个interface,返回值是BigDecimal ,我才开始做的时候返回值是double的,后面算出来结果和小数点位数不正确(原因是:BigDecimal是不可变类,它的数值是固定的,add等操作只会返回一个新的对象,不会修改原来对象的数值。
所以,需要重新接收add后的值。而我直接打印sum始终值初始定义的0.),后面改成BigDecimal返回值,然后写成:sum=sum.add(bd);就可以了:
咋们来一起看看代码吧: 代码片
.
// An highlighted block
public interface scllDao {
public BigDecimal sum(Scll scll);
}
在Dao实现层新建一个类:代码片
.
// An highlighted block
public class scllDaoImpl extends BaseDao implements scllDao{
@Override
public BigDecimal sum(Scll scll) {
try {
openConn();
//这个地方是使用StringBuffer拼接SQL语句,这个知识点比较老,建议别用
StringBuffer sqlStr= new StringBuffer("select * from scll_01 where 1 = 1");
if(scll.getFDateBeg()!=null && !"".equals(scll.getFDateBeg())){
sqlStr.append(" and FDate>='"+scll.getFDateBeg()+"'");
}
if(scll.getFDateEnd()!=null && !"".equals(scll.getFDateEnd())){
sqlStr.append(" and FDate<='"+scll.getFDateEnd(