Mysql里查询字段为Json格式的数据模糊查询以及分页方法
public void datagrid(CustomFormEntity customForm,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
//搜索参数
StringBuffer searchSql=new StringBuffer("1=1");
String showName = customForm.getShowName();
if (StringUtil.isNotEmpty(showName) ) {
searchSql.append(" and ").append(" mJson->'$.showName' like '%"+showName+"%'");
}
//头部
StringBuffer sbHead=new StringBuffer();
sbHead.append("SELECT * ");
//查询体
StringBuffer sbBody=new StringBuffer();
sbBody.append(" from ");
sbBody.append(" cf_model ");
sbBody.append(" where ");
sbBody.append(searchSql);
sbBody.append(" order by sort asc");
//查询
Session session=this.systemService.getSession();
//获取总数
List<Object> listObj=systemService.findListbySql("select count(*) "+sbBody.toString());
long count =Long.valueOf(""+listObj.get(0));
int rows = dataGrid.getRows();
int page = dataGrid.getPage();
//解决查询搜索页码问题-获取不到数据
if(((page-1)*rows)>=count){
page=1;
}
//获取分页后数据
String sql=sbHead.toString()+" "+sbBody.toString()+" LIMIT "+(page-1)*rows+","+dataGrid.getRows();
//查询结构
List<Map<String,Object>> c=systemService.findForJdbc(sql,new Object[]{});
int size = c.size();
List<Map<String,Object>> results= new ArrayList<Map<String,Object>>();
for (int k = 0; k < size; k++) {
Map map = (Map)JSON.parse((String)c.get(k).get("mJson"));
map.put("id", c.get(k).get("id"));
results.add(map);
}
//set data
dataGrid.setResults(results);
dataGrid.setTotal((int)count);
TagUtil.datagrid(response, dataGrid);
}
json表里面有个mJson字段数据如下面的Json格式
{"dataType":"1","id":"","ifMust":"1","laySort":"1","maxLen":"2","minLen":"1","showName":"身高"}
需要对其中的f开头的Json key值所对的value进行模糊查询,方法如下:
select * from t_table_name where 1=1 and mJson->'$.showName' like '%高%' order by sort asc
Mysql里查询字段为Json格式的数据模糊查询以及分页方法的更多相关文章
- mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler
mybatis 比 ibatis 改进了很多,特别是支持了注解,支持了plugin inteceptor,也给开发者带来了更多的灵活性,相比其他ORM,我还是挺喜欢mybatis的. 闲言碎语不要讲, ...
- Django 1.8.11 查询数据库返回JSON格式数据
Django 1.8.11 查询数据库返回JSON格式数据 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 环境 Win10 Python2.7 Django 1.8.11 返回多 ...
- SQL Server中将查询结果转换为Json格式脚本
这篇文章主要介绍了SQL Server中将查询结果转换为Json格式脚本分享,本文直接给出实现代码,需要的朋友可以参考下 原文地址:http://www.jb51.net/article/61462. ...
- 省市县从数据库读出来的list数据转换成json格式的数据
一,数据源 1.1,数据库查出来的数据是 两张表先各自左外连接,然后在相互左外连接查找省市县的数据(业务需求必须这样做,省市去的是第一张表,而市县取的是第二张表,两张表中间通过市的名字连接)见这个博文 ...
- ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理
话不多说,直接进入主题. 需求:基于Http请求接收Json格式数据,返回Json格式的数据. 整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性 ...
- SQLyog-直接导出JSON格式的数据
前言:以前做过的一个项目,有这样的一个需求使用搜索引擎来查询对应的区域信息,不过区域信息要先导出来,并且数据格式是JSON格式的,在程序中能实现这个需求,不过下面的这种方法更加的简单,通过 ...
- hive中导入json格式的数据(hive分区表)
hive中建立外部分区表,外部数据格式是json的如何导入呢? json格式的数据表不必含有分区字段,只需要在hdfs目录结构中体现出分区就可以了 This is all according to t ...
- Android Volley获取json格式的数据
为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...
- SSH返回Json格式的数据
在开发中我们经常遇到客户端和后台数据的交互,使用比较多的就是json格式了.在这里以简单的Demo总结两种ssh返回Json格式的数据 项目目录如下 主要是看 上图选择的部分 WebRoot里面就 ...
随机推荐
- 19-10-24-H
H H H H H H ZJ一下: T1只会暴力,测试点分治. (表示作者的部分分并没有给够,暴力加部分表按测试点分类可以得60吧……) T2先直接手玩第一个子任务. 然后就$Find$了一个神奇的( ...
- 善用 NuGet 程序包管理器控制台
每种集成开发环境都会提供扩展包的下载与安装,VS (微软可视化集成开发环境) 下的叫程序包管理控制台,我们把他叫做<牛干 程序包管理控制台>. 在 工具=>NuGet 程序包管理器= ...
- 原 JEECMS导入IDEA进行二次开发图文教程
JEECMS导入IDEA进行二次开发图文教程 2017年05月15日 17:03:53 Swain_Ho 阅读数 3257 版权声明:本文为博主原创文章,未经博主允许不得转载. https:// ...
- Installing Node.js and Express on Ubuntu
Installing Node.js and Express on Ubuntu 1. 在nodejs官网上下载Linux Binaries(已经包含了npm):2. 安装Node.js下载后解压,并 ...
- SpringCloud是如何运行的?
SpringCloud是基于SpringBoot这一高度自动化的应用开发框架,将各类业界比较知名的.得到过实践反馈的开元服务治理相关的技术框架进行优化整合的框架,是一种开发方式的优化和组合,,是一组框 ...
- springboot 2 Hikari 多数据源配置问题(dataSourceClassName or jdbcUrl is required)
springboot 2 Hikari 多数据源配置问题(dataSourceClassName or jdbcUrl is required) 最近在项目中想试一下使用 Hikari 连接池,以前用 ...
- python-基础-基础知识-变量-选择-循环
1 基础知识 1.1 注释的分类 1.2 变量以及类型 变量定义 num1 = 100 #num1就是一个变量,就好一个小菜篮子 num2 = 87 #num2也是一个变量 result = num1 ...
- 卸载VS2015之后,安装VS2017出错
安装出现问题. 可通过以下方式排查包故障问题: 1. 使用以下搜索 URL 来搜索针对每个包故障的解决方案 2. 针对受与影响的工作负荷或组件修改选项,然后重新尝试安装 3. 从计算机上删除产品,然后 ...
- Leetcode113. Path Sum II路径总和2
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ...
- 跟我一起了解koa(一)
安装koa2 1.初始化package.json npm init 2.新建app.js,并且安装koa cnpm install --save koa //app.js const koa = re ...