关于COUNT,MAX函数的记录

做项目时,遇到了一个自动编号的问题。首先按照正常思路,写了一个,但是发现老是报空指针错误。

附上刚开始的代码:

public static String getFilesHtml2() {
QueryDataService queryDataService = (QueryDataService) RDPContext
.getContext().getBean("QueryDataService");
String FileShowHtml = "";
Date objDate = new Date();
SimpleDateFormat dt = new SimpleDateFormat("yyyy");
String strY = dt.format(objDate);
String strSql = "SELECT (COUNT(alh)) alh FROM wgalk";
Map<String, String> map=queryDataService.queryRowDataBySql(strSql);
String alsize=map.get("alh");
if(!alsize.equals("0")){
String strSql1="SELECT (max(alh)+1) count1 FROM wgalk where alh like '"+strY+"%'";
Map<String, String> map1=queryDataService.queryRowDataBySql(strSql1);
String count1=map1.get("count1");
if(count1.equals(null)){
FileShowHtml=strY+"0001";
return FileShowHtml;
}else{
BigDecimal bd=new BigDecimal(count1);
FileShowHtml=bd.toString();
return FileShowHtml;
}
}
FileShowHtml=strY+"0001";
return FileShowHtml;
}

 发现在用map取值max时 如果查询结果为空,则无法存取在map中,后台出现空指针异常。所以改变了原来的代码,用count作为判断条件,完美运行了。

附上代码:

public static String getFilesHtml2() {
QueryDataService queryDataService = (QueryDataService) RDPContext
.getContext().getBean("QueryDataService");
String FileShowHtml = "";
Date objDate = new Date();
SimpleDateFormat dt = new SimpleDateFormat("yyyy");
String strY = dt.format(objDate);
String strSql = "SELECT (COUNT(alh)) alh FROM wgalk where alh like '"+strY+"%'";
Map<String, String> map=queryDataService.queryRowDataBySql(strSql);
String alsize=map.get("alh");
if(!alsize.equals("0")){
String strSql1="SELECT (max(alh)+1) count1 FROM wgalk where alh like '"+strY+"%'";
Map<String, String> map1=queryDataService.queryRowDataBySql(strSql1);
String count1=map1.get("count1");
BigDecimal bd=new BigDecimal(count1);
FileShowHtml=bd.toString();
return FileShowHtml;
}
FileShowHtml=strY+"0001";
return FileShowHtml;
}

总结一下。map无法存null,max()函数如果查询不到值,则会返回Null,count()函数查询不到值,会返回0;

 多加练习!孰能生巧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值