mysql到JSP之间数据格式转换-阿里云开发者社区

开发者社区> 沉默王二> 正文

mysql到JSP之间数据格式转换

简介: mysql到JSP之间数据格式转换
+关注继续查看

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


数据库sql直接转换


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


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


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


利用JSTL


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


<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语句进行获取原始数据

<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进行转换

List<HashMap> memloginfolist = this.memLoginfoMapper.getMemLoginfoList(vo, vo.createRowBounds());
            for (HashMap map : memloginfolist) {
                String logintime = DateUtil.formatTimeMillis(map.get("logintime").toString());
                String logoutime = DateUtil.formatTimeMillis(map.get("logoutime").toString());
                String onlinetime = DateUtil.formatTimeInterval(map.get("onlinetime").toString());

                map.put("logintime", logintime);
                map.put("logoutime", logoutime);
                map.put("onlinetime", onlinetime);
            }
            public static String formatTimeInterval(String time) {
        long timeInterval = Long.parseLong(time);

        long day = 0;
        long hour = 0;
        long min = 0;
        long sec = 0;

        day = timeInterval / (24 * 60 * 60 * 1000);
        hour = (timeInterval / (60 * 60 * 1000) - day * 24);
        min = ((timeInterval / (60 * 1000)) - day * 24 * 60 - hour * 60);
        sec = (timeInterval / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);

        StringBuilder result = new StringBuilder();
        if (day > 0) {
            result.append(day);
            result.append("天");
        }

        if (hour > 0) {
            result.append(hour);
            result.append("时");
        }

        if (min > 0) {
            result.append(min);
            result.append("分");
        }

        if (sec > 0) {
            result.append(sec);
            result.append("秒");
        }


        return result.toString();
    }


前端显示为 

image.png



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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
8454 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
10249 0
jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
jsp文件的请求是如何被服务器的JSP容器转换成静态网页的
66 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
12110 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载