首页 > 数据库 >javascript把本地sql数据库表转换为对象

javascript把本地sql数据库表转换为对象

时间:2023-04-07 16:59:04浏览次数:45  
标签:return 数据库 javascript ret console values obj sql let

在做项目的时候,需要读取本地数据库,并且在页面上显示出来,

原始数据

读取出来的原始数据如下:

var r=sqliteDB.exec(document.getElementById('txtSQL').value);
console.info(r);

 

 使用系统的转换方式

console.log('Here is a row: ' + JSON.stringify(r));

 

 可以看到其实数据就是拍平了的字符串

自定义转换对象

自己日常使用对象的形式比较习惯,整理就自己拼接对象,代码如下:

    utilsLib={
        
        // 方法传入两个数组,第一个数组为key,第二个数组对应位置为value,此方法在Python中为zip()函数。
         ArraytoObj : (keys = [], values = []) => {
            if (keys.length === 0 || values.length === 0) return {};
            const len = keys.length > values.length ? values.length : keys.length;
            const obj = {};
            for (let i = 0; i < len; ++i) {
                obj[keys[i]] = values[i]
            }
            return obj;
        },

        // 转驼峰表示:func.camel('USER_ROLE',true) => UserRole
        // 转驼峰表示:func.camel('USER_ROLE',false) => userRole
         camel : (str, firstUpper = false) => {
            let ret = str.toLowerCase();
            ret = ret.replace(/_([\w+])/g, function (all, letter) {
                return letter.toUpperCase();
            });
            if (firstUpper) {
                ret = ret.replace(/\b(\w)(\w*)/g, function ($0, $1, $2) {
                    return $1.toUpperCase() + $2;
                });
            }
            return ret;
        },
        
        // 把数组里面的所有转化为驼峰命名
         camelArr : (arrs = []) => {
            let _arrs = [];
            arrs.map(function (item) {
                _arrs.push(utilsLib.camel(item));
            });
            return _arrs;
        },
        
        // 把数据库对象转换成实体对象(json格式的对象)
        // 1.把columns列名转化为驼峰;
        // 2.把columns和values进行组合成键值对;
         dbToObj : (_dbData = {}) => {
            let _res = [];
            _dbData.map(function (item) {
                let _columns = utilsLib.camelArr(item.columns);
                item.values.map(function (values) {
                    _res.push(utilsLib.ArraytoObj(_columns, values));
                });
            });
            return _res;
        }
    }
    

 

// 解析转换数据
let obj = utilsLib.dbToObj(r);
console.info(obj);

结果如下:

 

 可以看到已经转换为json格式的对象了。

 

总结

来一个完整的代码吧

var r=sqliteDB.exec(document.getElementById('txtSQL').value);
console.info(r);
console.log('Here is a row: ' + JSON.stringify(r));
// 解析数据
let obj = utilsLib.dbToObj(r);
console.info(obj);

执行结果如下:

 

标签:return,数据库,javascript,ret,console,values,obj,sql,let
From: https://www.cnblogs.com/mq0036/p/17296697.html

相关文章

  • C# SQL JEXCEL 增删改查
    Handler1.ashx(用一般程序连接数据库)1<%@WebHandlerLanguage="C#"Class="Handler1"%>23usingSystem;4usingSystem.Web;5usingSystem.Data;6usingSystem.Data.SqlClient;//数据库7usingNewtonsoft.Json;//操作json库89......
  • MySQL笔记之一致性视图与MVCC实现
    一致性读视图是InnoDB在实现MVCC用到的虚拟结构,用于读提交(RC)和可重复度(RR)隔离级别的实现。一致性视图没有物理结构,主要是在事务执行期间用来定义该事物可以看到什么数据。  一、ReadView事务在正式启动的时候我们会创建一致性视图,该一致性视图是基于整个库的。 1、tran......
  • 非关系数据库型--Redis
    RedisRedis安装1.yum/apt安装root@ubuntu:~#aptinforedisPackage:redisVersion:5:6.0.16-1ubuntu1Priority:optionalSection:universe/databaseOrigin:Ubuntu[root@localhost~]#yuminforedisAvailablePackagesName:redisVersion:5.0.3......
  • 你不会还不知道JavaScript常用的8大设计模式?
    JavaScript常用的8大设计模式有工厂模式:工厂模式是一种创建对象的模式,可以通过一个共同的接口创建不同类型的对象,隐藏了对象的创建过程。单例模式:单例模式是一种只允许实例化一次的对象模式,可以通过一个全局访问点来访问它。建造者模式:建造者模式是一种创建复杂对象的模式,通......
  • 动力节点王鹤SpringBoot3笔记——第四章 访问数据库
    视频:动力节点SpringBoot3从入门到项目实战第四章访问数据库SpringBoot框架为SQL数据库提供了广泛的支持,既有用JdbcTemplate直接访问JDBC,同时支持“objectrelationalmapping”技术(如Hibernate,MyBatis)。SpringData独立的项目提供对多种关系型和非关系型数据库的访问支持。......
  • 踩坑/docker桌面版安装mysql
     很久没安装了,忘记如何启动了。删掉了本地images,然后重新拉取镜像。5.7.5-m15是最新的,但是本地启动失败。后来换成8.0.32版本的就可以了。这里需要说下中间出的问题:因为国内拉取docker官网镜像有问题,换成国内的进行:https://dashboard.daocloud.io/;dockerpulldaocloud.io/l......
  • SQL子句学习(2)
    (一)AND,OR,NOT运算符实例1运算优先级:NOT>AND>OR,可以使用括号改变,一般都加括号便于理解这些运算符用于多条件筛选,跟数学中的逻辑运算一样练习1答案1点击查看答案代码SELECT*FROMorder_itemsWHEREorder_id=6ANDunit_price*quantity>30--除了SELECT后可以进行......
  • mysql+navicat安装配置教程
    一、MySQLl和Navicat的关系Mysql一个关系型数据库管理系统,由瑞典MysqlLAB公司开发,目前属于Oracle旗下产品,是目前最流行的关心型数据库管理系统之一。Navicat一个数据库管理工具,用可视化界面提供给用户操作Mysql数据库管理系统。记得我第一次安装Navicat之后,就以为......
  • mysql运维------主从复制
    1.概述主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。MySQL复制的有点主要包......
  • MySQL数据库与Nacos搭建监控服务
    目录Nacos部署项目环境快速开始nacos2.2.0版本配置说明MySQL部署安装方式Linux平台(CentOS-Stream-9)部署MySQL调试防火墙管理工具MySQL用户权限MySQL导入mysql-schema脚本Springboot项目构建项目环境项目构建Nacos联动测试Nacos监控(控制台)基本功能演示验证数据库表我相信有不少小......