mysql到JSP之间数据格式转换

灰太狼 2021-05-10 11:18 439阅读 0赞

经常有这样的情况,从数据库中获取的数据格式并不是我们想在JSP页面上展示的,我推荐给大家以下三种mysql到JSP之间数据转换格式。

数据库sql直接转换

有一些数据,我们可以直接通过sql直接转换,不过一般处理格式比较单一的内容。

  1. convert(case m.stauts when 1 then '启用' when 2 then '停收新单' when 3 then '停用账户' end,char) stauts

这种形式不善于处理格式比较复杂的类型,不过便捷一次到位。

利用JSTL

JSTL的格式处理也相当不错,这里推荐一篇文章JSTL标签 参考手册

  1. <fmt:formatNumber value="${item.order_price}" pattern="#,##0.00#"/>

这种形式需要前后台数据遵循jstl的标签格式。

控制端进行转换

这种方式主要是利用controller对获取的数据进行转换,替换为前端需要的格式,然后供前端显示,这里我详细说一下。

先看看后台数据:






















id uid username ip logintime logoutime
1 1 00010001 127.0.0.1 1434679452651 1435021823460

然后我们通过sql语句进行获取原始数据

  1. <select id="getMemLoginfoList" resultType="hashmap" parameterType="map"> select m2.uid, convert(m2.username,char) username, m2.ip ip, m2.logintime logintime, m2.logoutime logoutime, (m2.logoutime-m2.logintime) onlinetime from loginfo </select>

然后我们通过controller进行转换

  1. List<HashMap> memloginfolist = this.memLoginfoMapper.getMemLoginfoList(vo, vo.createRowBounds());
  2. for (HashMap map : memloginfolist) {
  3. String logintime = DateUtil.formatTimeMillis(map.get("logintime").toString());
  4. String logoutime = DateUtil.formatTimeMillis(map.get("logoutime").toString());
  5. String onlinetime = DateUtil.formatTimeInterval(map.get("onlinetime").toString());
  6. map.put("logintime", logintime);
  7. map.put("logoutime", logoutime);
  8. map.put("onlinetime", onlinetime);
  9. }
  10. public static String formatTimeInterval(String time) {
  11. long timeInterval = Long.parseLong(time);
  12. long day = 0;
  13. long hour = 0;
  14. long min = 0;
  15. long sec = 0;
  16. day = timeInterval / (24 * 60 * 60 * 1000);
  17. hour = (timeInterval / (60 * 60 * 1000) - day * 24);
  18. min = ((timeInterval / (60 * 1000)) - day * 24 * 60 - hour * 60);
  19. sec = (timeInterval / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
  20. StringBuilder result = new StringBuilder();
  21. if (day > 0) {
  22. result.append(day);
  23. result.append("天");
  24. }
  25. if (hour > 0) {
  26. result.append(hour);
  27. result.append("时");
  28. }
  29. if (min > 0) {
  30. result.append(min);
  31. result.append("分");
  32. }
  33. if (sec > 0) {
  34. result.append(sec);
  35. result.append("秒");
  36. }
  37. return result.toString();
  38. }

前端显示为
这里写图片描述


这种形式处理起来比较随意。

总结:之前我一直想写一个自定义的jstl标签,但是用起来更麻烦,所以就推荐上面这三种方式给大家。

发表评论

表情:
评论列表 (有 0 条评论,439人围观)

还没有评论,来说两句吧...

相关阅读

    相关 mysqlJSP之间数据格式转换

    经常有这样的情况,从数据库中获取的数据格式并不是我们想在JSP页面上展示的,我推荐给大家以下三种mysql到JSP之间数据转换格式。 数据库sql直接转换 有一些数据,