自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 mysql实现将 两个字段合并成一个字段查询

mysql实现将 两个字段合并成一个字段查询CONCAT()函数用于将多个字符串连接成一个字符串。 SELECT d.psl_code, d.psl_name, concat( d.psl_code,",",d.psl_name) as w FROM monthly_bill_detail_price_library d WHERE d.source_no in ("bbbbbb1222")

2022-01-10 17:43:28 10173

原创 java springboot 项目中LocalDateTime中间的T去掉

在属性上面添加 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")如下: /** * 创建时间 */ @TableField("Creationtime") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timez

2021-07-13 17:04:53 1888 2

原创 java 实现发送手机验证码的功能 (超详细)

我这里使用的旦米(http://www.danmi.com/)你们用阿里的就去看看其他博客1.首先注册一个旦米的账号,第一次注册会免费的送你10元。足够你去测试用,不用担心自己去充钱。2.注册好了登录进去,必须要公司认证,认证通过之后才能使用。可以自己去网上搜一些企业的营业执照。但是一定要有效的才有用。这个我自己也是搞了大半天才弄好。3.认证通过之后,找到验证码通知里面的API配置 获取你自己的 ACCOUNT SID 和 AUTH TOKEN4.在短信通知里的模板管理里面配置你短信模板,审核通

2021-06-23 14:06:29 3951 2

原创 sql语句统计最近七天,30天的数据, 统计当天数据总和,统计当天每小时的数据,今日金额的支出

SELECT date_format( a.date, '%c.%d' ) times, b.count AS totals FROM (SELECT curdate( ) AS date UNION ALLSELECT date_sub( curdate( ), INTERVAL 1 DAY ) AS date UNION ALLSELECT date_sub( curdate( ), INTERVAL 2 DAY ) AS date UNION ALLSELECT date_su

2021-03-29 09:50:22 5164 2

原创 本地Kubernetes开发环境搭建指导

本地Kubernetes开发环境搭建指导1.Docker安装建议安装Docker桌面版下载地址:https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe说明:初次启动时,如提示安装依赖内核,请根据提示安装。1.1配置国内镜像仓库右上角 —— settings —— Docker Engine —— 修改为:“registry-mirrors”: [“https://05mm57ha.mirr

2021-03-05 16:12:10 537

原创 java循环结构(for +while+do-while)

循环语句1–for:初始化语句:在循环最初执行,而且只做唯一一次;条件判断(布尔表达式):如果成立则循环继续;如果不成立,则循环推出;步进语句:每次循环之后都要进行的扫尾工作,每次循环都要执行;for(初始化表达式;布尔表达式;步进语句){}例如:public class test1 { public static void main(String[] args) { for (int i = 1; i <= 10; i++) {

2020-12-15 11:17:46 85

原创 java基本数据类型和引用数据类型

基本数据类型整数型:byte; short; int ;long浮点数:dobule ;float字符型:char布尔:true ;flase注意事项:1.字符串不是基本类型,而是引用类型;2.浮点型可能只是一个近似值,并非精确的值;3.数据范围和字节不一定相关;比如float比long的范围更广,但是float是4字节,long是8字节;4.浮点数默认类型是double,如果一定要用float类型,需要加上一个后最F如果是整数默认是long是int类型,如果一定要用long类型,需要加

2020-12-15 09:39:57 88

原创 学java的第一天

java语言跨平台性;jvm(java虚拟机)是java的核心所在,是 运行所有程序发假象计算机,是java的运行环境,是java最具吸引力的特征之一,我们编写的java代码,都运行在jvm之上;跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用java编写的软件可以运行在任何的操作系统上,这个特性成为java语言的跨平台性,该特性是由jvm实现的,我们编写的程序运行在jvm上,而jvm玉兴在操作系统中;JRE 和JDKJRE 是java程序的运行环境,包含JVM和运行所需要的核心类库;

2020-12-15 09:39:29 66

原创 mysql与sql server中sql语句的差异

1.搜索数据的前十条数据;mysql :select * from test limit 10sql serverselect top 10* from test2,数据分页mysql:@page_size一个多少条数据@pageNum 第几页select * from test limit (pageNum-1)*page_size,page_sizesql server:select top ${page_size} * from(select row_number() o

2020-12-07 13:59:08 128

原创 超简单在本地创建一个SSH Key 并在github上添加 SSH Key 的方法

一.在本地创建一个SSH Key打开git Bash 客户端$ ssh-keygen -t rsa -C "邮箱"注意:邮箱是指你创建github时设置的邮箱忘记邮箱的可以在github里面查看!如果忘记账号密码那…第一次生成的话,直接一路回车,不需要输入密码。不是第一次生成的话,会提示 overwrite (y/n)? 问你是否覆盖旧的 SSH Key ,直接填 y ,然后一直回车就行了,最后得到了两个文件:id_rsa和id_rsa.pub。在用户目录下的.ssh文件夹里就会生成id

2020-11-17 17:39:07 421

原创 ping请求超时的解决方法?

在ping请求时超时解决种问题的思路1,确定ping的ip地址是正确的2、对方与自己不在同一网段内,通过路由也无法找到对方,但有时对方确实是存在的,当然不存在也是返回超时的信息。3、对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)...

2020-11-11 17:18:45 7699

原创 JS排序:localeCompare() 方法实现中文排序、sort方法实现数字英文混合排序

1、可以使用localeCompare() 方法来实现中文按照拼音排序,方法相当简单var array = ['白鸽', '麻雀', '大象', '狗', '猫', "鸡"];array = array.sort(function compareFunction(item1, item2) { return item1.localeCompare(item2);});//["白鸽", "大象", "狗", "鸡", "麻雀", "猫"]2,可以使用排序字母和数字公用var statis

2020-10-29 10:50:39 2132

原创 sql批量查询

将传入的字符串进行处理let b = 'A1B560,AC2909' b = b.split(',') c = '('for(let i=0;i<b.length;i++){ c += "'" + b[i] +"'"+','}let lent = c.length-1c = c.substr(0,lent)c+=')'console.log(c)处理成('A1B560','AC2909')sql语句select * from class where code

2020-10-28 13:21:19 2487

原创 javaScript 调试常用的几种方法

JavaScript 调试工具在程序代码中寻找错误叫做代码调试。调试很难,但幸运的是,很多浏览器都内置了调试工具。内置的调试工具可以开始或关闭,严重的错误信息会发送给用户。有了调试工具,我们就可以设置断点 (代码停止执行的位置), 且可以在代码执行时检测变量。浏览器启用调试工具一般是按下 F12 键,并在调试菜单中选择 “Console” 。1.console.log() 方法如果浏览器支持调试,你可以使用 console.log() 方法在调试窗口上打印 JavaScript 值:2.设置

2020-10-27 13:54:33 619

原创 nodejs+node-xlsx+后端生成excel

1.下载依赖npm install node-xlsx;npm install fs;2.在项目中导入const xlsx = require('node-xlsx');const fs = require('fs');3.使用//导出的数据const statisticsInfo= await accountsSrv.getAccountDetailInfoSrv(parmas); let data1 = []; let header = [ '条形码',

2020-10-26 13:39:46 870

原创 sql语句的简单查询 插入修改和删除

简单查询1,查询所有字段select * from test2,查询单个字段select name from test3,查询表的多个字段select name,age from test4,给字段命名第一种方式select name as n,age as a from test第二种方式 也可以把as 去掉select name n,age a from test5,给表命名也跟字段命名一样select * from test as t也可以去掉where语

2020-10-14 15:53:47 734

原创 nodejs(5)crypto加密解密使用实例

const express = require("express");const app = express();const mysql = require("mysql");const crypto = require("crypto");app.listen(3000, function (err) { if (!err) { console.log("监听成功"); }});//链接数据库var db = mysql.createConnection({ host:

2020-10-09 15:13:32 585 1

原创 nodejs(4)fs以文件流的方式写入和读取以及管道流

1,以流的方式读取文件const fs = require('fs');var readStream= fs.createReadStream('./hh.txt');var count = 0;var str = '';readStream.on('data',(data)=>{ str += data; count++;})readStream.on('end',()=>{ console.log(str) console.log(count);})readSt

2020-10-09 14:26:49 677

原创 常见 几种 git操作代码回退的方法

第一种:当你git commit后 没有push 你想回退这种情况发生在你的本地代码仓库,可能你add ,commit 以后发现代码有点问题,想要从取消git reset ....如果是撤销某个文件或文件夹:第二种:当你push后想要回退代码使用 git revert ....首先你得使用 Git log 查看提交历史1.不传入任何参数的默认情况下,git log 会按时间先后顺序列出所有的提交,最近的更新排在最上面。 正如你所看到的,这个命令会列出每个提交的 SHA-1 校验和、作者的名字和

2020-09-30 10:53:53 4830

原创 nodejs+根据输入的某年某月某天计算一个人的大概出生日期

如果输入的是多少岁要计算这个人的出生日期moment().subtract(9, 'years') 如果输是按月计算,当为日期和月份传入小数时,它们会被四舍五入到最接近的整数。 星期、季度、年份会被转换到日期或月份,然后四舍五入到最接近的整数。moment().subtract(1.5, 'months') == moment().subtract(2, 'months')按天计算moment().subtract(7, 'days');这是我写的一个简单demolet Patient

2020-09-29 12:49:56 304

原创 nodejs(3)__filename和__dirname

__filename__filename 表示当前正在执行的脚本的文件名。它将输出文件所在位置的绝对路径,且和命令行参数所指定的文件名不一定相同。 如果在模块中,返回的值是模块文件的路径。__dirname__dirname 表示当前执行脚本所在的目录。...

2020-09-25 15:57:41 225

原创 nodejs (2) 回调函数

Node.js 回调函数Node.js 异步编程的直接体现就是回调。异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。回调函数一般作为函数的最后一个参数出现:func

2020-09-25 14:48:25 127

原创 浅谈const ,let ,var 的区别

使用const来定义一个常量,常量也就是不能被修改,不能被重新赋值的变量。使用let来定义一个变量,而不要再使用var了,因为var有很多坑;可以认为let就是修复了bug的var。比如,var允许重复声明变量而且不报错;var的作用域让人感觉疑惑。最佳实践:优先用const,如果变量需要被修改才用let;要理解目前很多早期写的项目中仍然是用var。​...

2020-09-24 14:40:23 64

原创 redis 服务启动不了,启动redis一闪就关解决方案

打开命令行进入redis目录3-输入 redis-server.exe redis.windows.conf若出现如图这表示启动成功

2020-09-18 09:18:00 1326

原创 node js+sql 后端分页查询效率越来越低解决方案

创建分页的时候查询效率越来低的解决原因1,没创建索引CREATE INDEX index_name ON table_name(column_name,column_name) include(score)普通索引CREATE UNIQUE INDEX index_name ON table_name (column_name) ;非空索引CREATE PRIMARY KEY INDEX index_name ON table_name (column_name) ;主键索引使用ALTER

2020-09-08 15:58:40 143

原创 sqlserver 中 row_number() over() as rownumber的用法

简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。ROW_NUMBER() OVER函数的基本用法row_number name 1 霓虹 2 你好 3 hello 4 word开始使用排序是乱的row_number() over(ORDER BY 排序的字段)) as rownumbe改正使用:row_nu

2020-09-04 15:07:16 1289

原创 npm ERR! errno -4058报错解办法

npm ERR! errno -4058报错解办法npm ERR! path XXX\node_modules\abbrevnpm ERR! code ENOENTnpm ERR! errno -4058npm ERR! syscall accessnpm ERR! enoent ENOENT: no such file or directory, access ‘XXXX\node_modules\abbrev’npm ERR! enoent This is related to npm no

2020-08-24 14:50:40 28615 3

原创 redis数据持久化

Redis持久化redis提供了将数据定期自动持久化到硬盘的能力,包括RDB和AOF两种方案,两种方案分别由其长处后短处,可以配合起来同事运行,去报数据的稳定性。必须使用数据持久化?redis的数据持久化机制是可以关闭的。如果你只是把redis作为缓存使用redis中存储的所有数据都不是该数据的主题而仅仅是同步过来备份的,那么可以关闭redis的数据持久化机制。但通常来说,简历至少开一RDB方式数据的持久化, 因为:RDB方式的持久化几乎不损耗redis本身的性能,在进行RDB持久化时,Redi

2020-07-06 17:14:54 87

原创 索引

索引是一种数据结构,一旦建立了索引后,数据库中查询优化器使用索引来快速定位数据,然后就无需扫描表中给定查询的每一行了普通索引:最基本的所有类型,而且没有唯一性之类的限制创建索引:create index 索引的名字 on 表名修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);创建表的时候指定索引,例如CREATE TABLE tablename ( […], INDEX [索引的名字] (列的列表) ); 可重复,唯一索引:这种索引和普通

2020-07-06 16:32:44 81

原创 为什么不使用传统ajngo而使用django+restful架构风格

django传统类继承的是viewdjango restful 类继承的是APIVIEWrestful多了几个序列化组件,还有那个限流组件,流量组件等。。代码减省,原来django需要自己去封装,自己去便利,查询结果。使用restful有那个序列器,来完成查询结果,采用django restful架构风格 设计的软件可以更简洁,更有层次,更易于实现缓存等机制。​ 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可

2020-06-23 17:37:06 137

原创 python的三大器(装饰器,生成器,迭代器)....

一 .装饰器装饰器的作用:装饰器的本质:是一个闭包(高阶函数+嵌套函数)装饰器的功能:在不修改原函数的及其调用的情况下对原函数的功能进行扩展。流程:定义一个要装饰的功能,定义第一个内层函数,内层函数他必须是多值参数的形式,把功能写好,然后调用内层函数,并且给他一个返回值,等把装饰功能写好后,在把这个返回值给它返回来,然后在把内层函数名给返回来。import timedef cla_index(f): def inner(*args,**kwargs): sta

2020-06-23 17:05:13 274

原创 基于协同过滤推荐详解(比较全面的文章)

推荐算法:​ 推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,目前应用推荐算法比较好的地方主要是网络,其中淘宝做的比较好。协同过滤推荐:1.启发式推荐算法(Memory-based algorithms)启发式推荐算法易于实现,并且推荐结果的可解释性强。启发式推荐算法又可以分为两类:基于用户的协同过滤(User-based collaborative filtering):主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的物品,并预测目标用户对对应物品的评分

2020-06-20 17:17:17 1300

原创 Node.js的简介---node.js是什么????

NOde.js是基于CHrome V8 引擎的JavaScript运行环境。 NOde.js使用了一个时间驱动,非阻塞式I/O的模型,使其轻量又高效。 NOde.js 包管理器npm ,是全球最大的开源库生态系统。Node.js可以解析js代码(没有浏览器安全级别的限制)他提供了很多系统级别的API如:文件的读写进程的管理网络的通信…npm 的使用查看npm的版本npm -v升级node就是升级npmnpm install n --global查看安装是东西npm list

2020-06-20 14:45:17 140

原创 五种IO模型(小白都能看懂是讲解)

在网络环境下,通俗的讲,将IO分为两步:1.等;2.数据搬迁。如果要想提高IO效率,需要将等的时间降低。五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、多路复用IO、异步IO。前四个被称为同步IO。一,阻塞IO(blocking I/O)最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线

2020-06-18 19:55:52 221

原创 redis分布式锁的理解

分布式锁分布式锁本质是占一个坑,当别的进程也要来占坑时发现已经被占,就会放弃或者稍后重试占坑一般使用 setnx(set if not exists)指令,只允许一个客户端占坑先来先占,用完了在调用del指令释放坑setnx lock:codehole true… do something critical …del lock:codehole但是这样有一个问题,如果逻辑执行到中间出现异常,可能导致del指令没有被调用,这样就会陷入死锁,锁永远无法释放为了解决死锁问题,我们拿到锁时.

2020-06-17 20:56:21 159

原创 深入了解Nginx

nginx概述nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。这里主要通过三个方面简单介绍nginx反向代理负载均衡nginx特点正向代理说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式,我们会从两个方面来说关于正向代理的处理模式,分别从软件方面和生活方面来解释一下什么叫正向代理在如今的

2020-06-17 08:56:24 173

原创 vue中如何安装Elementui以及配置?

1.首先安装element-uinpm i element-ui -S2.安装成功后在main.js中到导入element-ui,并使用import ElementUI from 'element-ui';import 'element-ui/lib/theme-chalk/index.css';Vue.use(ElementUI);3安装好后就可以在官网去找自己想要的组件了https://element.faas.ele.me/#/zh-CN...

2020-06-12 18:48:05 535

原创 了解python中的进程,线程和协成

1. 1什么是协程(进入上一次调用的状态)1. 协程,又称微线程,纤程,协程是一种用户态的轻量级线程。2. 线程的切换会保存到CPU的栈里,协程拥有自己的寄存器上下文和栈,3. 协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈4.协程能保留上一次调用时的状态(即所有局部状态的一个特定组合),每次过程重入时,就相当于进入上一次调用的状态5. 协程最主要的作用是在单线程的条件下实现并发的效果,但实际上还是串行的(像yield一样)1.2 协程缺点(无

2020-06-11 22:26:28 139

原创 django + vue 图片验证码的使用

后端操作#导入图片库#绘画库from PIL import ImageDraw#字体库from PIL import ImageFont#图片库from PIL import Image#随机库import random#文件流import io# 定义一验证码class MyCode(View): #定义一个随机验证颜色 def get_random_color(self): R = random.randrange(255)

2020-06-11 22:25:18 457

原创 md5密码加密操作

导入加密库import hashlib# md5加密# 只要重名就会覆盖以前的def make_passsword(mypass): # 生成md5对象 md5 = hashlib.md5() # 定义加密对象 sing_str = mypass # 转码 sign_utf8 = str(sing_str).encode(encoding='utf-8') # 加密操作 md5.update(sign_utf8) #

2020-06-11 22:24:26 238

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除