精华内容
下载资源
问答
  • 用MyBatis结果集拦截器做过这样一个需求:由于项目需求经常变动,项目MySQL数据库都是存放JSON字符串,例如:用户的基本信息随着版本升级可能会有变动数据表CREATE TABLE `account` (`id` bigint(11) unsigned NOT ...

    用MyBatis结果集拦截器做过这样一个需求:

    由于项目需求经常变动,项目MySQL数据库都是存放JSON字符串,例如:用户的基本信息随着版本升级可能会有变动

    数据表

    CREATE TABLE `account` (

    `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,

    `infos` text NOT NULL COMMENT '用户JSON基本信息',

    `createTime` int(10) unsigned NOT NULL COMMENT '创建时间',

    `updateTime` int(10) unsigned NOT NULL COMMENT '更新时间',

    PRIMARY KEY (`id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    数据:

    id

    infos

    createTime

    updateTime

    1

    {"nickName":"Jan","region_area":"","region_city":"深圳市","region_country":"中国","region_province":"广东省","sex":"男","signature":"只要不放弃就还有机会!"}

    1467793564

    1470795733

    JSONPlugin拦截器

    使用MyBatis拦截器对ResultSetHandler接口的handleResultSets方法进行拦截:

    package me.xuebai.modules.mybatis;

    import java.sql.ResultSet;

    import java.sql.Statement;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Map;

    import java.util.Properties;

    import org.apache.commons.lang3.StringUtils;

    import org.apache.ibatis.executor.resultset.ResultSetHandler;

    import org.apache.ibatis.plugin.Interceptor;

    import org.apache.ibatis.plugin.Intercepts;

    import org.apache.ibatis.plugin.Invocation;

    import org.apache.ibatis.plugin.Plugin;

    import org.apache.ibatis.plugin.Signature;

    import com.alibaba.fastjson.JSON;

    import com.alibaba.fastjson.TypeReference;

    import me.xuebai.modules.entity.Account;

    @Intercepts({@Signature(

    type= ResultSetHandler.class,

    method = "handleResultSets",

    args = {Statement.class})})

    public class JSONPlugin implements Interceptor {

    @Override

    public Object intercept(Invocation invocation) throws Throwable {

    Object[] args = invocation.getArgs();

    // 获取到当前的Statement

    Statement stmt = (Statement) args[0];

    // 通过Statement获得当前结果集

    ResultSet resultSet = stmt.getResultSet();

    List resultList = new ArrayList();

    if(resultSet != null && resultSet.next()) {

    Account account = new Account();

    // infos字段

    String infos = resultSet.getString("infos");

    // 判断是否为空

    if(StringUtils.isNotBlank(infos)) {

    // fastjson泛型反序列化

    Map infMap = JSON.parseObject(infos, new TypeReference(){});

    account.setInfos(infMap);

    resultList.add(account);

    }

    // handleResultSets返回结果一定是一个List

    // size为1时,Mybatis会取第一个元素作为接口的返回值。

    return resultList;

    }

    return invocation.proceed();

    }

    @Override

    public Object plugin(Object target) {

    return Plugin.wrap(target, this);

    }

    @Override

    public void setProperties(Properties properties) {

    }

    }

    mybatis-config.xml

    在mybatis配置文件中注册插件:

    测试输出

    Account account = accountDao.get(1L);

    // {sex=男, region_city=深圳市, region_area=, nickName=Jan, region_country=中国, signature=只要不放弃就还有机会!, region_province=广东省}

    System.out.println(account.getInfos());

    展开全文
  • Bootstraptable简单的来说就是一个表格控件,但是这个表格可不是一般的表格,分页、排序、查询都自带了,你就给他一个json数据就可以了。 接下来我们就看看怎么用: 先在页面中引入所需的js文件和css文件 <link...

    今天分享一下bootstraptable的相关技能点,由于第一次接触,所以刚开始碰了好多壁,于是趁现在过去不久,先总结总结。

    Bootstraptable简单的来说就是一个表格控件,但是这个表格可不是一般的表格,分页、排序、查询都自带了,你就给他一个json数据就可以了。

    接下来我们就看看怎么用:

    1. 先在页面中引入所需的js文件和css文件
    <link rel="stylesheet" href="bootstrap.min.css">
    <link rel="stylesheet" href="bootstrap-table.css">
    <script src="jquery.min.js"></script>
    <script src="bootstrap.min.js"></script>
    <script src="bootstrap-table.js"></script>
    <script src="bootstrap-table-zh-CN.js"></script>
    
    1. 在我们所需要展示数据的表格上价格id,或者class都可以,在这里我以id为例。
    <table id="table"></table>
    
    1. 接下来就是给表格里面加数据了,我们可以在加载当前页面时利用ajax去请求控制器,查询所需要的数据,然后放在一个集合中,转换成json格式就可以了。
      下面是js中相关代码:
    $(function () {
         caseTable();
        });
       
    
    //加载数据
    function caseTable() {
        $('#table').bootstrapTable({
            method: "get",  		//提交方法
            striped: true,			//是否显示行间隔色
            cache:true,			//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性
            singleSelect: false,		//设置True 将禁止多选
            url: "/Home/GetAllAnJian",//查询的地址
            dataType: "json",			//服务器返回的数据类型
            pagination: true, 			//是否分页	
            pageSize: 5,				//页大小
            pageNumber: 1,			//当前页
            search: false, 				//显示搜索框
            contentType: "application/x-www-form-urlencoded",	//发送到服务器的数据编码类型
            queryParams:null,			//参数
            //    function (parms) {
            //    return {
            //        aid: $("#aid").val(),
            //    };
            //},
            columns: [
                
                {
                    title: "案件编号",		//列标题
                    field: 'aid',				//该列映射的data的参数名	
                    align: 'center',			//水平对齐方式
                    valign: 'middle',		//垂直对齐方式
                    sortable: true			//是否排序
    
                },
                {
                    title: '案件名称',
                    field: 'aname',
                    align: 'center',
                    valign: 'middle',
                    sortable: true
                },
                {
                    title: '案件类型',
                    field: 'atypename',
                    align: 'center',
                    valign: 'middle',
                    sortable: true
                },
     {
                    field: '',
                    title: '操作',
                    halign: 'center',
                    align: 'center',
                    width: '50px',			//宽度
                    sortable: true,			//下面是单独加的按钮
                    formatter: function (value,row,index) {
                        var e = '<button class="btn btn-primary" οnclick="tijiao(\'' + row.aid + '\')">提交</button>';
                        return e;
                    },
                }]
        });
    }
    
    1. 后台查询数据的代码(以asp mvc为例):
      控制器是:HomeController
      请求数据的方法:
    //查询所有的案件信息
    public JsonResult GetAllAnJian(string aid)
    {
    
    List<AnJian> anAll = (from a in entity.AnJian
    	where a.astatename.Equals("新建")
    	select a).ToList();
    //将日期类型转换成string类型
    for (int i = 0; i < anAll.Count; i++)
    	{
    	anAll[i].adate_formate = anAll[i].adate.ToString();
    	}
    	return Json(anAll, JsonRequestBehavior.AllowGet);
    	}
    

    下面是演示图(数据随便填的):
    在这里插入图片描述

    对了,另外结合layui使用更好用哦,时候不早了,明天在说结合layui使用的方法。

    在这里插入图片描述

    展开全文
  • 用MyBatis结果集拦截器做过这样一个需求:由于项目需求经常变动,项目MySQL数据库都是存放JSON字符串,例如:用户的基本信息随着版本升级可能会有变动数据表CREATE TABLE `account` (`id` bigint(11) unsigned NOT ...

    用MyBatis结果集拦截器做过这样一个需求:

    由于项目需求经常变动,项目MySQL数据库都是存放JSON字符串,例如:用户的基本信息随着版本升级可能会有变动

    数据表

    CREATE TABLE `account` (

    `id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,

    `infos` text NOT NULL COMMENT '用户JSON基本信息',

    `createTime` int(10) unsigned NOT NULL COMMENT '创建时间',

    `updateTime` int(10) unsigned NOT NULL COMMENT '更新时间',

    PRIMARY KEY (`id`)

    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

    数据:

    id

    infos

    createTime

    updateTime

    1

    {"nickName":"Jan","region_area":"","region_city":"深圳市","region_country":"中国","region_province":"广东省","sex":"男","signature":"只要不放弃就还有机会!"}

    1467793564

    1470795733

    JSONPlugin拦截器

    使用MyBatis拦截器对ResultSetHandler接口的handleResultSets方法进行拦截:

    package me.xuebai.modules.mybatis;

    import java.sql.ResultSet;

    import java.sql.Statement;

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Map;

    import java.util.Properties;

    import org.apache.commons.lang3.StringUtils;

    import org.apache.ibatis.executor.resultset.ResultSetHandler;

    import org.apache.ibatis.plugin.Interceptor;

    import org.apache.ibatis.plugin.Intercepts;

    import org.apache.ibatis.plugin.Invocation;

    import org.apache.ibatis.plugin.Plugin;

    import org.apache.ibatis.plugin.Signature;

    import com.alibaba.fastjson.JSON;

    import com.alibaba.fastjson.TypeReference;

    import me.xuebai.modules.entity.Account;

    @Intercepts({@Signature(

    type= ResultSetHandler.class,

    method = "handleResultSets",

    args = {Statement.class})})

    public class JSONPlugin implements Interceptor {

    @Override

    public Object intercept(Invocation invocation) throws Throwable {

    Object[] args = invocation.getArgs();

    // 获取到当前的Statement

    Statement stmt = (Statement) args[0];

    // 通过Statement获得当前结果集

    ResultSet resultSet = stmt.getResultSet();

    List resultList = new ArrayList();

    if(resultSet != null && resultSet.next()) {

    Account account = new Account();

    // infos字段

    String infos = resultSet.getString("infos");

    // 判断是否为空

    if(StringUtils.isNotBlank(infos)) {

    // fastjson泛型反序列化

    Map infMap = JSON.parseObject(infos, new TypeReference(){});

    account.setInfos(infMap);

    resultList.add(account);

    }

    // handleResultSets返回结果一定是一个List

    // size为1时,Mybatis会取第一个元素作为接口的返回值。

    return resultList;

    }

    return invocation.proceed();

    }

    @Override

    public Object plugin(Object target) {

    return Plugin.wrap(target, this);

    }

    @Override

    public void setProperties(Properties properties) {

    }

    }

    mybatis-config.xml

    在mybatis配置文件中注册插件:

    测试输出

    Account account = accountDao.get(1L);

    // {sex=男, region_city=深圳市, region_area=, nickName=Jan, region_country=中国, signature=只要不放弃就还有机会!, region_province=广东省}

    System.out.println(account.getInfos());

    展开全文
  • <p>SpringBoot,因为数据是爬下来的,有的字段可能很长,存到mysql里。返回给前段的话有的字段可能会很...是在查询的时候字段进行截取,还是在实体类的地方配置注解之类的比较好?</p>
  • 对数据进行group (分组) facet stats (统计) ; 并且要添加到之前的条件中 用的是Riak KV 数据库 图2 是 模拟条件情形 因为没使用过solr 所以不知道思路是什么,也不知道怎么去做.希望有...
  • 服务端根据接收到的json数据对mysql数据库进行查询,并把结果反馈给用户。采用sqlalchemy数据库进行操作,以下数据库链接的创建,释放是否合理呢?class db:def __init__(self,db_ip='',db_name='',db_user='',...

    用tornado开发web service服务。服务端根据接收到的json数据对mysql数据库进行查询,并把结果反馈给用户。采用sqlalchemy对数据库进行操作,以下对数据库链接的创建,释放是否合理呢?

    class db:

    def __init__(self,db_ip='',db_name='',db_user='',db_pass='',db_charset=''):

    self.db_str = 'mysql+pymysql://'+db_user+':'+db_pass+'@'+db_ip+':3306/'+db_name+'?'+'charset='+db_charset

    self.engine = create_engine(self.db_str, encoding='utf-8', echo=False)

    self.dbsession = sessionmaker(bind=self.engine)

    def return_dbsession(self):

    return self.dbsession

    def close_session(self):

    self.session.close()

    database = db(db_ip='127.0.0.1', db_name='data_utf', db_user='root', db_pass='root', db_charset='utf8')

    处理post请求代码如下

    class rcvRequest(tornado.web.Request):

    session = scoped_session(database.return_dbsession())()

    response = []

    for ctt in session.query(table).filter(table.ID == id):

    response.append(ctt)

    self.write(str(response))

    session.close()

    展开全文
  • 今天我用ajax从后台取数据json 传回页显示 ,在后台查询出来的数据还没乱码, 发到前台js中就乱码了 ,这种情况 在js中怎么对这个json 进行处理?
  • // 对查询到的状态进行反序列化 err = json.Unmarshal(f, &file) if err != nil { return file, false } ​</code></pre> <p>  <p>DataFile结构体定义如下 <code class="language-vbnet">type ...
  • 初次接触pyspark使用,对于表查询中的数据处理,在原有列数据基础上生成新的一列,可通过functions中的函数对数据进行处理 import sys from encoder import decode_userfeature reload(sys) sys....
  • 服务端根据接收到的json数据对mysql数据库进行查询,并把结果反馈给用户。采用sqlalchemy数据库进行操作,以下数据库链接的创建,释放是否合理呢?class db:def __init__(self,db_ip='',db_name='',db_user='',...
  • 我将数据库中的数据显示在前端中,做完后才发现,整个div写在了前端里,是静态的,只能我绑定的ID数据进行删除与修改,做错了。 ![图片说明](https://img-ask.csdn.net/upload/202009/15/1600153525_507960.png...
  • rest_framework 学习记录

    2019-10-19 16:31:53
    如果要对数据进行验证,应该怎么验证 如果要获取Form表单数据,应该怎么获取 如果要获取JSON数据,应该怎么获取 如果要用户进行权限验证,应该怎么验证 如果要分页,应该怎么分,有几种分页方式 ...
  • //查询列表数据 Query query = new Query(params); List<WagesDO> wagesList = wagesService.list(query); int total = wagesService.count(query); PageUtils pageUtils = new PageUtils(wagesList, ...
  • SpringBoot中Mybatis时区问题

    千次阅读 2019-06-15 21:19:57
    这边先给大家介绍一下bug背景,有一个订单服务需要实时获取第三方接口订单数据,然后第三方的json数据进行解析入库。流程其实很简单,但是数据库就是没有当天的订单数据,代码检查了好几遍都没发现问题。 问题...
  • 并且这次遇到的不是json数据格式,是form-data格式。 不知道是否我写数据的格式有误。 ![图片说明](https://img-ask.csdn.net/upload/202009/17/1600314742_638096.png) 了。上述提到的,我的入参数据格式都是...
  • 于是想到实现一个基于Boost离线文档的搜索引擎,离线的HTML文件进行分析,、并对查询进行分词(借用第三方库),然后根据相关性(简陋的相关性公式)进行排序,最终将查询结果用JSON数据格式进行组织打包,...
  • 前端与后台的交互

    千次阅读 2017-07-23 21:28:21
    前端与后台的交互在web应用开发过程中,总免不了前端与...然后后台根据前端传递的参数进行数据查询,经过一定的数据处理后,以JSON或文本形式将数据传递到前端;最后,前端根据后台查询到的数据以一定的模板进行渲染。
  • 一、需求分析 首先根据用户需求,可以进行选择性导出,之前已经做了全部导出,这次新需求又来了,不过仔细想想也,全部导出几万条数据,意义并不大,而可选择性的导出用户需要的数据才是用户需要的。有需求就有...
  • 如何通过ip查地址了解对方位置?

    千次阅读 多人点赞 2021-03-03 15:51:10
    每个人都有独立的ip地址,对应一个位置,这也是我们电脑的唯一标识,那么当我们了解别人的ip地址,是不是就可以知道他具体的位置了呢?理论上是可以的,但是这个基本上只有警察...结果为json格式数据: {"content":{.
  • C#基类库(苏飞版)

    2014-05-16 23:11:45
    10.执行查询语句,返回MySqlDataReader ( 注意:调用该方法后,一定要MySqlDataReader进行Close ) 11.执行查询语句,返回DataSet,执行SQL语句,返回影响的记录数,执行多条SQL语句,实现数据库事务。 执行多条SQL...
  • 全新的MySQL视频教程,课程MySQL的核心知识点进行了大量深入的展开,细致的讲解和总结 较以往的MySQL核心基础课程有更好的优势,是MySQL运维人员 编程人员及相关技术人员的必备学习课程 ├─10、课程:进阶...
  • 后台又如何接受(实在抱歉,我太菜了,没怎么搞过前端,之前都是专做后台,只需要从后台返回json数据到前端,还真不知道controller怎么接收ajax)。 , , 请大神给我详细的说说,下拉联动如何搞,如何返回ajax到...
  •  显示用户加入购物车的商品,计算总的价格,提供全选和取消全选的按钮,从后台获取商品的单价,判断当前剩余的数量,当用户点击数量添加或者减少之后,对于总价要实时刷新,采用jQuery对数据进行修改,当用户取消...
  • C#基础类库

    2018-07-11 08:45:26
    C#操作缓存的帮助类,实现了怎么设置缓存,怎么取缓存,怎么清理缓存等方法,只需要调用方法就可以实现 CookieHelper C#操作Cookie的帮助类,添加Cookie,删除Cookie,修改Cookie,清理Cookie SessionHelper C#...
  • 1、用js和jQuery怎么进行表单验证 24 3、列举javaScript的3种主要数据类型,2种复合数据类型和2种特殊数据类型。 24 4、谈谈你的JS的理解? 24 5、ajax的优点? 25 6、简述一下ajax调试代码查找错误的方法? 26 7、...
  • 其后数年根据各种资料和网友贡献词库增长到 10 万左右,又找到 Linux 下面的 cdict-1.0-1.rpm 这个开源字典数据(mdict 的主词库也是根据 cdict 转换得到),并按照英国国家语料库的前 16 万单词进行校对,补全很多...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

怎么对json数据进行查询