(八): 查询结果直接返回Json格式数据
Bee简单易用:单表操作、多表关联操作,可以不用写sql,极少语句就可以完成SQL操作;10分钟即可学会使用。
Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化。高级需求,还可以方便自定义SQL语句。
查询结果直接返回Json格式数据
1. 别的ORM工具为什么不能直接返回json格式数据
当初ORM出现的目的就是为了用面向对象的方式操作数据库,查询时直接返回结果行的对象。json是在前后端分离后才流行起来的数据格式,此时ORM已出现十年了。但在前后端分离大行其道的今天,在微服务炙手可热之时,ORM工具怎么能不提供json相关的功能!
2. Bee提供的json查询功能
从效率考虑,肯定是查询结果时,直接转成json格式数据比后面再转换要好。因此Bee提供了直接将查询结果返回json格式数据的方法。
SuidRich接口关于json的方法
PreparedSql接口关于json的方法
3. 使用例子
SuidRich接口关于json的方法使用实例
String json=suidRich.selectJson(new User());Logger.info("selectJson(new User()):");Logger.info(json);
输出日志:
[Bee] selectJson SQL:
select id,email,last_name,name,password,username,createtime from user
selectJson(new User()):
[{"id":800001,"email":"beeUser@163.com","name":"Bee","password":"bee","username":"bee","createtime":1587126423000},{"id":800002,"email":"honey@163.com","name":"Honey","password":"honey","username":"honey","createtime":1583138493000},{"id":800003,"password":"bee-user","username":"testuser","createtime":1587126423000},{"id":800004,"password":"bee-user","username":"testuser","createtime":1587808755000}]
PreparedSql接口关于json的方法使用实例
String jsonString1= preparedSql.selectJson(sql, new Object[] { "bee" },1,3);//array selectJsonLogger.info(jsonString1);String jsonString= preparedSql.selectJson(sql2, map,1,3);//map selectJsonLogger.info(jsonString);
4. 关于json格式的相关设置
在bee.properties中,可以对返回的json格式进行设置。
#查询结果直接返回Json是否忽略null
bee.osql.selectJson.ignoreNull=true
#查询结果直接返回Json中, timestamp是否用毫秒表示
bee.osql.selectJson.timestamp.withMillisecond=true
bee.osql.selectJson.date.withMillisecond=true
bee.osql.selectJson.time.withMillisecond=false
5. 将查询的json字符串转成对象
使用fasterxml 将查询User的json字符串转成User对象:
package org.teasoft.exam.bee.osql;import org.teasoft.bee.osql.SuidRich;
import org.teasoft.exam.bee.osql.entity.User;
import org.teasoft.honey.osql.core.BeeFactory;
import org.teasoft.honey.osql.core.Logger;import com.fasterxml.jackson.databind.ObjectMapper;/*** @author Kingstar* @since 1.7.2*/
public class UseJson {public static void main(String[] args) throws Exception {SuidRich suidRich = BeeFactory.getHoneyFactory().getSuidRich();String json = suidRich.selectJson(new User());Logger.info("selectJson(new User()):");Logger.info(json);ObjectMapper mapper = new ObjectMapper();User user[] = mapper.readValue(json, User[].class);Logger.info("将直接查询的json转成对象:");for (int i = 0; i < user.length; i++) {Logger.info(user[i].toString());}}
}
输出日志:
[Bee] selectJson SQL:
select id,email,last_name,name,password,username,createtime from user
selectJson(new User()):
[{"id":800001,"email":"beeUser@163.com","name":"Bee","password":"bee","username":"bee","createtime":1587126423000},{"id":800002,"email":"honey@163.com","name":"Honey","password":"honey","username":"honey","createtime":1583138493000},{"id":800003,"password":"bee-user","username":"testuser","createtime":1587126423000},{"id":800004,"password":"bee-user","username":"testuser","createtime":1587808755000}]
将直接查询的json转成对象:
User[id=800001,email=beeUser@163.com,lastName=null,name=Bee,username=bee,createtime=2020-04-17 20:27:03.0]
User[id=800002,email=honey@163.com,lastName=null,name=Honey,username=honey,createtime=2020-03-02 16:41:33.0]
User[id=800003,email=null,lastName=null,name=null,username=testuser,createtime=2020-04-17 20:27:03.0]
User[id=800004,email=null,lastName=null,name=null,username=testuser,createtime=2020-04-25 17:59:15.0]
经验证,转成的user对象与直接查询出来的一样。
旧的方式:
查询到Result结果集-->转成User对象List-->Spring等框架再将List转成json;
Bee的新方式:
查询到Result结果集-->将Result直接转成json;
将直接查询到的json,直接传回前端使用,解析效率提高了!
到这里,查询结果直接返回Json格式数据的用法就介绍完了。要是有什么问题,记得告诉我们哦!
Bee V1.9.8 查询结果直接返回Json数据,支持分页,只查询部分字段!
(八): 查询结果直接返回Json格式数据相关推荐
- django mysql返回json_Django 1.8.11 查询数据库返回JSON格式数据
Django 1.8.11 查询数据库返回JSON格式数据 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 环境 Win10 Python2.7 Django 1.8.11 返回多 ...
- 返回json格式数据乱码
本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody@RequestMapping(value = "getListByTime", m ...
- Spring MVC--使用Jackson返回JSON格式数据
使用Jackson返回JSON格式数据 index.jsp <%@ page language="java" contentType="text/html; cha ...
- 使用jQuery发送POST,Ajax请求返回JSON格式数据
问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...
- Flask设置返回json格式数据
https://blog.csdn.net/angus_17/article/details/80455838 from flask import Flask, jsonifyapp = Flask( ...
- ajax返回数据输出成表,javascript代码实例教程-ajax请求返回Json格式数据如何循环输出成table形式...
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过. 首先,Ajax请求数据,(用的是Jquery的Ajax) [javascript] $(function(){ ...
- java 返回 json格式_java 如何返回json格式数据,需要技巧
今天上午给同事调了半个小时的程序,最后发现是在后台代码的java返回json格式的数据出了个错误.因此就想到了广大的初学者一开始学习jquery的时候可能会遇到这个问题.现在我就把我的给大家分享一下, ...
- Django 查询数据库返回JSON格式数据
和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 返回多条数据 示例 import json from django.http import HttpResponse from dj ...
- JAVA中返回json格式数据
1. 返回json格式 package com.demo.util;import com.alibaba.fastjson.JSONObject;import java.util.HashMap; i ...
最新文章
- (U3D)Time的使用
- 需求用例分析之九:序列图
- Android 6.0动态权限
- APICloud方法
- Panorama Viewer – jQuery 360度全景展示插件
- common lisp 学习第一天 初步接触
- 诺基亚:你以为他死了,他却靠这一点重回世界第二
- (转) intellij idea部署web项目时的位置(Tomcat)
- 7. Flask 大型程序的结构
- 一分钟带你全面了解计算机考研常识,让你对考研不再陌生!
- oracle 求班级平均分
- 多商户商城小程序源码有何优势?
- GD32使用IAR编程详细教程
- SpringBoot Controller Post接口单元测试
- ios 唤醒小键盘 如何使得小键盘上出现 “前往”、“搜索”、“”等按钮
- C++ 字符跑酷#3 游戏制作实录
- poj 3687(拓扑排序)
- idea 切换分支smart checkout和force checkout区别
- 什么时候进行套利交易比较好?
- MongoDB 入门教程实战学习笔记-31-mongo 聚合查询管道 Aggregation Pipieline