1、BigDecimal转Double类型
new bigdecimal(double d) 会导致精度不准确,new bigdecimal(doubble+"")或bigdecimal.valueof(double)可解决精度不准确的问题。如:
BigDecimal aa = new BigDecimal(12.12);
BigDecimal bb = new BigDecimal(14.02);
double ss = aa.doubleValue();
double dd = bb.doubleValue();
double mm = ss+dd;
BigDecimal vv1 = new BigDecimal(mm);
BigDecimal vv2 =new BigDecimal(mm+"");
BigDecimal vv3 =BigDecimal.valueOf(mm);
System.out.println("mm="+mm);
System.out.println("vv1="+vv1);
System.out.println("vv3="+vv3);
System.out.println("vv2="+vv2);
运行的结果为:
mm=26.14
vv1=26.1400000000000005684341886080801486968994140625
vv3=26.14
vv2=26.14
2、hibernate的查询返回自定义VO
在使用hibernate操作数据库的时候,有的时候需要返回bean类型为自定义的vo,那么这个时候如何能够正确的转化呢?那就可以使用下面的代码进行转化:
Query setResultTransformer = session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(UserAccountInfoVo.class));
List<UserAccountInfoVo> UserAccountInfoList = setResultTransformer.list();
3、eclipse在debug下出现断点跳跃执行
出现上述的问题原因:源代码和class文件没有一一对应。
解决方法如下:
清理项目里面的class文件进行重新编译, 鼠标点击项目名称上,然后点击工具栏上“project” --"Clean",即可解决问题。
4、在配置固定的ip的时候,保存提示:出现了一个意外的情况 不能完成所有你在设置中所要求的更改
出现上述的问题原因不详,但是有以下的解决方法供大家参考:
需要使用dos命令去设置固定的IP和默认网关及其dns,我将其dos命令包装为了.cmd的批处理文件,代码如下:
netsh interface ip set address name="WLAN" source=static addr=192.168.12.164 mask=255.255.255.0 gateway=192.168.12.1
netsh interface ip set dns name="WLAN" source=static addr=192.168.12.1
pause
如果想恢复自动获取ip的话,那么可以执行如下的.cmd的批处理文件:
netsh interface ip set address name="WLAN" source=dhcp
netsh interface ip set dns name="WLAN" source=dhcp
pause
5、BeanFactory not initialized or already closed - call 'refresh' before access
针对出现上述的异常信息,在网上有一堆的说法。比如:class文件或者resource文件没有参与编译到指定的文件夹,或者是文件xml没有编写正确等。其实出现上述的问题很少,我在开发的时候出现了上述的情况,原因是:在项目的build path里面可以看到jar包缺失报错。如果这个jar包是自己需要的,那么重新导入该jar包,如果不是,那么就直接删除,然后重新启动服务器就好。
6、 Exception in thread "main" java.lang.NoSuchMethodError:org.apache.poi.util.POILogger.log(ILjava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)
出现上述的问题首先做以下的事情:1、确认poi相关的jar包已经导入,且没有丢失。
如果上述的问题都确认没有问题了,那么就看poi的相关jar包的版本是不是一致的,上述的问题的最大的可能性就是jar包的版本不一致导致的,这个时候只需要将相关的jar包确定版本一致就好了。
7、在支付完成后,比如是免费支付后跳转到一个页面。这个时候是不能使用请求转发的,如果是请求转发会出现刷新会重新调用上次的请求,造成再次支付的问题。因此这个时候需要使用重定向到一个路径,代码如下:
return new ModelAndView("redirect:" + ConfigUtil.WEIXIN_INDEX + "aa/bb");