• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql-数据库读取出来的数据如何组装多层嵌套的json

mysql-数据库读取出来的数据如何组装多层嵌套的json

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了mysql json 算法 数据结构 java等相关知识,希望本文的分享对您有所帮助
mysqljson算法 数据结构 java

数据库字段如图

三个主键?day,hour,store?,就是按要可以查出某天的某小时的某个店铺的具体销售情况,
day,hour,store的数据可重复,但三个字段组成的数据是唯一的。
要求用java??mysql??jdbc(其它数据库连接技术也可以)但语言必须是java。
如何读取数据库组成下面这种格式的json?
我自己用jdbc然后多层while循环可以组成这种格式,但是非常低效。数据量一大就很慢很慢了

求高效的解决办法

多层嵌套格式
{
??2016-07-16:
?????{??
???????1:
??????????[
????????????nike:{
????????????sales_count:1000
????????????profit:200
????????????sales_value:10000
????????????
????????????
????????????}
???????????adidas:
???????????{
?????????????
????????????sales_count:1001
????????????profit:201
????????????sales_value:10001
???????????}
??????????
??????????]
?????????
???????????
2:
??????????[
????????????nike:{
????????????sales_count:1002
????????????profit:203
????????????sales_value:10004
????????????
????????????
????????????}
???????????adidas:
???????????{
?????????????
????????????sales_count:1005
????????????profit:206
????????????sales_value:10007
???????????}
??????????
??????????]
??????????......
??????????
??????????
?2016-07-17:
?????{??
???????1:
??????????[
????????????nike:{
????????????sales_count:1008
????????????profit:208
????????????sales_value:10008
????????????
????????????
????????????}
???????????adidas:
???????????{
?????????????
????????????sales_count:1009
????????????profit:209
????????????sales_value:10009
???????????}
??????????
??????????]
?????????
???????????
2:
??????????[
????????????nike:{
????????????sales_count:2002
????????????profit:204
????????????sales_value:20004
????????????
????????????
????????????}
???????????adidas:
???????????{
?????????????
????????????sales_count:1505
????????????profit:216
????????????sales_value:10077
???????????}
??????????
??????????]
......

}

图片

回复内容:

将数据库取出来的数据转化成对象,然后用gson将对象直接转化成json字符串!

你的SQL语句写好了,只要一个对记录集的大遍历,在里面加两个判断处理就可以了。你不是说写好了吗?贴出来让人修改。

另外,这个数量大是大到什么程度?你要是搞出来好几M甚至几十上百M的体积,光是传输也够慢了。

你这里有个问题,就是里面销售数据的key是店名,也就是不固定的,所以实现会非常复杂。
建议你稍微改造一下,复杂度会降低很多,里面的子数组格式改为:
[
{
store: nike
sales_count:2002
profit:204
sales_value:20004
},
{
sales_count:1505
profit:216
sales_value:10077
},
...
]

那么可以这么设计JavaBean接收数据,然后使用工具Object转jsonString

class Result {
List ts;
}

class T {
String day;
int hour;
List stores;
}

class Store {
String store;
int sales_count;
int profit;
int sales_value;
}

sql查询的话,建议不要用大sql,因为子查询太多,太多子查询会指数级减慢大sql效率,用java循环执行简单SQL。

1。 第一步,查询第一层的基本数据,得到List(T):
select distinct day, hour from Table;

  1. 第二步,循环List(T),根据day+hour,循环填充里面的store信息: select store, sales_count, profit, sales_value from T where day = ? and hour =?;

逻辑清晰,结构也不复杂,就两层。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05 关于SQL Server 2005安装失败的处理方法
  • 2017-05-11MySql事务无法回滚的原因有哪些
  • 2018-12-05sqlserver 自动备份所有数据库的SQL
  • 2018-12-0550个常用sql语句 网上流行的学生选课表的例子
  • 2017-05-11linux系统下实现mysql热备份详细步骤(mysql主从复制)
  • 2018-12-0564位Win10系统安装Mysql5.7.11的方法(案例详解)_MySQL
  • 2017-05-11深入解析mysql.sock不见的问题
  • 2018-12-05如何使数据库索引的使用效率更高?
  • 2017-05-11分享MySQL的自动化安装部署的方法
  • 2018-12-05oracle 字符串转成行

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Xshell远程管理MySQL服务器如何实现选择自动复制以及右键自动粘贴的设置!
    • mysql优化配置参数
    • mySQL中replace的用法
    • MySQL 数据库对服务器端光标的限制
    • 让MySQL支持中文排序的实现方法
    • lnmp安装mysql扩展库
    • Mysql优化之深入了解存储引擎,进行索引优化
    • mysql 中间件mycat安装与使用方法实例分享
    • 如何强制删除或恢复SQLServer正在使用的数据库
    • MySQL如何查看连接数和连接状态

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有