Mysql To Charts(三)--读写Mysql
来源:互联网 发布:网络博客大全 编辑:程序博客网 时间:2024/06/04 17:54
原已实现从Jira平台抓取数据,并写人数据库中
因数据的直观性和可对比性,现需将数据绘制成曲线图的形式
计划将各个项目分别以Week为单位绘制新增bug数、关闭bug数以及遗留bug数的曲线图
写入Mysql
在Jira平台数据自动化获取中,我们已实现了从Jira平台中抓取数据并写入Mysql中,但在实现的时候,是以当前时间Now为名称创建数据表格,现需要把每周的数据都写入在一个表格中,故增加一个“周”的表头,数据类型为INT
对于对应的日期,需要判断该日期的星期数
1. 通过分割字符串,获取输入日期的年、月、日的值
2. 判断是否为闰年,定义二月份的天数
3. 根据获取到的月份数,求和得到该日期在一年中的天数
4. 求得该日期的星期数
实现代码如下:
/**输入日期,获得星期数参数:Dateinput 日期,如:"2016-3-24"*/function theWeek(Dateinput) { arr = Dateinput.split('-'); //必须转为数字类型 var intyears = parseInt(arr[0]); var intmouths = parseInt(arr[1]); var intdays = parseInt(arr[2]); var totalDays = 0; if (intyears < 1000) intyears += 1900 var days = new Array(12); days[0] = 31; days[2] = 31; days[3] = 30; days[4] = 31; days[5] = 30; days[6] = 31; days[7] = 31; days[8] = 30; days[9] = 31; days[10] = 30; days[11] = 31;//判断是否为闰年,针对2月的天数进行计算 if (Math.round(intyears / 4) == intyears / 4) { days[1] = 29 } else { days[1] = 28 } if (intmouths == 1) { totalDays = totalDays + intdays; } else { for (var count = 1; count < intmouths; count++) { totalDays = totalDays + days[count - 1]; } totalDays = totalDays + intdays; } //得到第几周 var week = Math.round(totalDays / 7); console.log("the week is "+week); return week;}theWeek("2016-3-24");
运行后输出结果为:
the week is 12
数据库表格
如下:
数据表格:
读取Mysql
创建读取数据库的jiraMysqlQuery.js文件
1.创建数据库连接
var connection = mysql.createConnection({ //主机 host: 'localhost', //用户名 user: 'root', //密码 password: '123456', //端口号 port: '3306' });
2.读取数据库对应表格的数据
connection.query('USE nodejs_mysql_test'); connection.query('select id', function (err, data) { callback(err, data); });
由于需要读取的是2016project表格中的项目名称、新增bug数、遗留bug数、关闭bug数、周等数据
connection.query('USE nodejs_mysql_test'); connection.query('select id,项目名称,新增bug数,遗留bug数,关闭bug数,周 from 2016project where 项目名称 = "SeewoLink" ;', function (err, data) { callback(err, data); connection.destroy(); });
- 表头为“新增bug数”等为汉字字符,故需要“新增bug数 as newBugsNumber”转换
- 在获取数据时,需要将“周”这项数据从低到高排列,故创建数据时创建INT类型数据,在SQL语句中,使用
order by 周 ASC
来实现升序排列
读取数据库后, - 需要将数据库关闭连接
需要不断去调用读取数据库的函数,故将读取的函数封装并将值抛出
实现的代码如下:
var mysql = require('mysql');var checkProjectBugNumber = function(projectName, callback) { var connection = mysql.createConnection({ //主机 host: 'localhost', //用户名 user: 'root', //密码 password: '123456', //端口号 port: '3306' }); connection.query('USE nodejs_mysql_test'); connection.query('select id, 项目名称 as name, 新增bug数 as newBugsNumber, 遗留bug数 as remainBugsNumber,' + ' 关闭bug数 as closedBugsNumber, 周 as week from 2016project where 项目名称 = "' + projectName + '" ' + ' order by 周 ASC;', function (err, data) { callback(err, data); connection.destroy(); });};exports.checkProjectBugNumber = checkProjectBugNumber;
0 0
- Mysql To Charts(三)--读写Mysql
- Mysql To Charts(二)--相关知识点
- Mysql To Charts(四)--draw ichartjs
- Mysql To Charts(五)--routers文件
- Mysql To Charts(六)--views文件
- Mysql To Charts(七)--效果show
- Mysql To Charts(一)--Express 应用生成器
- 灯液未泱-mysql读写分离(三)
- mysql读写分离(三)--- 读写分离实现
- mysql主从复制(三)之实现读写分离
- mysql主从复制(三)实现读写分离
- 使用spring实现读写分离(mysql主从复制)三:使用spring实现读写分离
- Mysql读写分离mysql-proxy(可用)
- Mysql读写分离(1)
- CentOS7,MySQL主从配置和读写分离(MySQL主从、MySQL读写分离、MySQL分布式、数据库读写分离、主从配置)
- Mysql读写分离实现的三种方式
- MySQL 优化(三)
- MySQL 同步(三)
- Java图形化界面开发
- MySQL中concat函数(连接字符串)
- Python——sys.argv
- Spring IOC原理之Java反射机制
- hibernate问题总结。
- Mysql To Charts(三)--读写Mysql
- Struts2访问Servlet API
- STLvector的内存问题
- kali_notes
- tools:replace的前缀 tools未绑定
- https是如何保证数据传输的安全
- Android 关于inflate
- $.fn.extend 与$.extend
- php异步发送请求