JavaEx博客广场

BigDecimal比较大小BigDecimal a = new BigDecimal("10");BigDecimal b = new BigDecimal("100");// 使用compareTo方法比较if (a.compareTo(b)==-1) { System.out.println("ab");}if (a.compareTo(b)==0) { System.out.println("a==b");}if (a.compareTo(b)==1) { System.out.println("ab");}BigDecimal加减乘除BigDecimal num1 = new BigDecimal("10");BigDecimal num2 = new BigDecimal("100");BigDecimal num3 = null;// 加法num3 = num1.add(num2);System.out.println("加法,和 是:" + num3); // 加法,和 是:110// 减法num3 = num1.subtract(num2);System.out.println("减法,差是:" + num3); // 减法,差是:-90// 乘法num3 = num1.multiply(num2);System.out.println("乘法,积是:" + num3); // 乘法,积是:1000// 除法num3 = num1.divide(num2);System.out.println("除法,商是:" + num3); // 除法,商是:0.1
IFNULL(collect_restrict, 0) AS collect_restrict
SSM项目启动时突然就报了如下错误java.lang.ClassNotFoundException: org.springframework.web.filter.CharacterEncodingFilter解决办法1、项目右键Properties2、点击项目发布路径Deployment Assembly,发现少了Maven依赖3、添加Maven依赖4、重启项目
Windowsjava在Windows下的路径分隔符为反斜杠即'\'代码中需要有转义符,例如String path = "D:\\tmp";Linuxjava在Linux下的路径分隔符为正斜杠即'/'代码中无需转义符,例如String path = "/data/tmp";Java中的解决办法String path = "D:" + File.separator + "tmp";
案例注册时,需要屏蔽某些关键字,内容保存在一个字段中,一行一个java提取代码// 关键词按行分割成数组String[] arr = str.split("\r\n");
SQL做SUM查询统计时的异常记录SQL查询语句select id="countByUserId" resultType="hashmap" SELECT SUM( CASE WHEN type = '1' THEN 1 ELSE 0 END ) blogCount1, SUM( CASE WHEN type = '2' THEN 1 ELSE 0 END ) blogCount2 FROM blog_info WHERE user_id = #{userId}/select接口写法MapString, Integer countByUserId(String userId);目的是一次查询多种类型的数量,再设置对应的属性MapString, Integer map = iBlogInfoDAO.countByUserId(blogInfo.getUserId());hgoUserInfo.setBlogCount1(map.get("blogCount1"));hgoUserInfo.setBlogCount2(map.get("blogCount2"));但是mybatis返回了错误信息java.math.BigDecimal cannot be cast to java.lang.Integer原因是,sum()的结果是作为 java.math.BigDecimal 来处理的,不能直接转换成 java.lang.Integer,所以报错。做如下修改,将 Integer 改为 ObjectMapString, Object countByUserId(String userId);然后通过 Integer.parseInt(obj.toString()); 来得到int值MapString, Object map = iBlogInfoDAO.countByUserId(blogInfo.getUserId());hgoUserInfo.setBlogCount1(Integer.parseInt(map.get("blogCount1").toString()));hgoUserInfo.setBlogCount2(Integer.parseInt(map.get("blogCount2").toString()));
通常我们需要字符串格式时间的时候,我们可以对SQL中的时间进行格式化,例如DATE_FORMAT(reply_time, '%Y-%m-%d %H:%i:%s') AS reply_time然后将实体类中的时间成员变量改为String类型但是这样做有一个缺点,就是在插入数据的时候,需要对时间进行格式化,例如Date currentTime = new Date();SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String now = formatter.format(currentTime);articleInfo.setUpdateTime(now);所以,我们可以将实体类中的时间成员变量依然定义为Date类型然后在JSP页面获取的时候,用标签进行格式化,例如%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%fmt:formatDate value="${entity.updateTime}" pattern="yyyy-MM-dd HH:mm:ss"/但是,我用需要返回json数据的时候,就又头疼了,返回的时间戳难道还要用js进行格式化?关于这一点,我们可以借助于jackson的注解实现我们在get方法上添加如下注解即可@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
回到顶部