自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夜空中最亮的星

好记心不如烂笔头,记载着自己的努力,记载着自己的曾经,让自己更加快乐的成长。

  • 博客(41)
  • 收藏
  • 关注

原创 MySql在使用AES_ENCRYPT或者ENCODE加密

AES_ENCRYPTselect TO_BASE64(AES_ENCRYPT(‘这里要进行加密算法了’, ‘1234567890123456’))AES_DECRYPTSELECT AES_DECRYPT(FROM_BASE64(‘yCzYiHcp+UjqlMJ2oxiqUUxOgCZGH9Jy+5qa6YhAax8=’),‘1234567890123456’);...

2020-04-20 13:57:06 851

原创 结构体转map[string]interface{}的方法

在go语言中结构体转map[stirng]interface{}中有几种方法,但是也有一些小小的"坑",比如说我们在存储一些信息时有各种类型的,下面来看一个结构体:// UserInfo 用户信息type UserInfo struct { Name string `json:"name"` Age int `json:"age"`}u1 := UserInfo{Name: ...

2020-04-12 16:51:13 9335

原创 go语言json使用技巧

基本的序列化在Go语言中json.Marshal()(系列化)与json.Unmarshal(反序列化)的基本用法type Person struct { Name string Age int64 Weight float64}func main() { p1 := Person{ Name: "奇奇", Age: 18, Weight: 55....

2020-04-12 01:09:33 626 1

原创 docker使用

启动命令systemctl start docker #启动 systemctl enable docker #设置开机自启动基本命令docker search centos #搜索镜像docker pull docker.io/ansible/centos7-ansible #根据需求拉取镜像for i in `docker search ce...

2019-05-22 16:23:43 188

原创 python机器学习——Matplotlib

图片灰度处理图片灰度处理的三种方法import numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as plt# 图片灰度处理三种方法im_data = plt.imread('fj.jpg')print(im_data.shape)plt.imsh...

2019-05-07 12:26:42 295

原创 python机器学习——Pandas

Pandas是基于Numpy开发出的,专门用于数据分析的开源Python库

2019-04-29 17:57:34 441

原创 python机器学习——Numpy

以下的缩写均是导入模块的缩写import numpty as npimport pandas as pdimport matplotlib.pyplot as plt使用np.array()有python list创建参数为列表:[1,2,3,4,5]注意:numpy默认ndarray的所有的数据类型都是相同的如果传递进来的数据类型有不同的,则统一为同一类型,优先级为:...

2019-04-28 17:16:17 588 1

转载 Python成长之路——scrapy框架

scrapy的爬虫流程创建scrapy项目创建一个爬虫完善spiderspider的数据传到pipeline使用pipeline简单设置loglogging模块的使用

2019-04-23 11:46:33 441

原创 Python成长之路——regex,bs4,xpath,jsonpath的使用

Regular Expression(正则表达式)正则表达式解析单字符类型说明.除换行以外所有字符[][aoe] [a-w] 匹配集合中任意一个字符\d数字[0-9]\D非数字\w数字、字母、下划线、中文\W非\w\s所有的空白字符\S非空白数量修饰类型说明*任意多次 >=0

2019-04-19 12:36:00 695

原创 Python成长之路——读写文件模式

读写文件模式r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内...

2019-04-19 10:44:51 138

原创 Python成长之路——urllib库

模拟浏览器发送请求的库,Python自带urllib模块调用的方法说明urllib.requesturlopen(url)请求url,并返回请求url所有的内容urlretrieve(url,path)请求url,并将url反馈的内容保存到path路径下urllib.parsequoteurl编码函数,将中文进行转化为%xxxunquote...

2019-04-18 00:23:49 132

原创 Python成长之路——multiprocess模块

process模块介绍process模块是一个创建进程的模块,借助这个模块,就可以完成进程的创建Process([group [, target [, name [, args [, kwargs]]]]]),由该类实例化得到的对象,表示一个子进程中的任务(尚未启动)强调:需要使用关键字的方式来指定参数args指定的为传给target函数的位置参数,是一个元组形式,必须有逗号...

2019-04-17 12:03:36 3632

原创 Python成长之路——socket《二》

接上一篇Python成长之路——socket《一》黏包的解决方法方案一解决黏包的问题方法在于先找到问题的根源,接收端不知道发送端要发送多长的字节流长度,所以需要在发送端在发送数据之前,将要发送字节流的长度告知接收端,接收端用一个死循环接收所有的数据。server端import socket, subprocessip_port = ('127.0.0.1', 8080)s = s...

2019-04-12 14:27:33 181

原创 Python成长之路——socket《一》

什么是socketSocket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。在学习socket之前,我们先来了解下Tcp协议和Udp协议TCP(Transmission Control ...

2019-04-11 16:55:36 149

原创 Python成长之路——内置函数(format格式化)

** format 说明 **函数功能将一个数值进行格式化显示如果参数format_spec未提供,则和调用str(value)效果是相同的,转化为字符串格式化>>> format(3.1415936)'3.1415936'>>> str(3.1415926)'3.1415926'对于不同的类型,参数format_spec可提供的值都...

2019-04-05 15:06:04 441

原创 Python成长之路——filter和map

filterfilter()函数是接收一个函数 F 和一个 List, 这个函数 F的作用是对每个元素进行判断,返回的结果为 True或者是False,filter() 根据判断的结果过滤掉不符合条件的元素,将符合条件的元素放到一个新的list// 利用filter过滤掉偶数def is_odd(x): return x % 2 == 1ret = list(filter(is_o...

2019-04-05 14:53:45 182

原创 Python成长之路——内置函数(eval、exec、complie)

eval() 将字符串类型的代码执行并返回结果print (eval("1+2+3+4+5"))// output 15exec() 将字符串类型的代码执行exec ("print('1+2+3+4+5')")// output 1+2+3+4+5compile将字符串类型的代码编译,代码对象能够通过exec语句来执行或者是eval来计算结果参数说明:参数source:...

2019-04-05 14:33:08 236

原创 Python成长之路——匿名函数

匿名函数:为了解决那些功能很简单的需求而设计的一句话函数我们平时定义一个简单的函数def func(a,b): return a + bprint(func(2,4))换成匿名函数func = lambda a,b:a + bprint(func(3,4))匿名函数定义的格式匿名函数格式说明函数名 = lambda 参数:返回值参数可以有多个,用逗号进行隔开...

2019-04-05 14:08:34 302 1

原创 Python成长之路——列表推导式和生成器表达式

闲话就不多说了,直接上代码吧列表解析v_list = [ "获取到第 %s 个元素"%i for i in range(10)]print(v_list)// 执行的结果 ['获取到第 0 个元素', '获取到第 1 个元素', '获取到第 2 个元素', '获取到第 3 个元素', '获取到第 4 个元素', '获取到第 5 个元素', '获取到第 6 个元素', '获取到第 7 个元...

2019-04-04 10:47:47 459

原创 Python成长之路——生成器

了解生成器我们知道迭代器有两种:一种是调用方法直接放回的;一种是可迭代对象执行iter方法得到的。迭代器的有点是可以节省内存。如果在某些情况下,我们也需要节省内存,就只能是自己写,我们自己写的这个能实现迭代器功能的东西就叫做生成器。python中提供的生成器生成器的函数:常规函数定义,但是,使用的是yield语句而不是return语句返回结果,yield语句一次返回一个结果,在每个结...

2019-04-03 19:44:51 152

原创 Python成长之路——迭代器

迭代器:一个列表执行了_iter_()之后的返回值就是迭代器

2019-04-03 11:38:28 124

原创 Python学习之路——形参中的:*args和**kwargs的用法和区别

*args 用来将参数打包成tuple给函数体调用**kwargs 打包关键字参数成dict给函数体调用*args用法表示的是实参中按照位置传值,将多出来的值都给args,以元祖的方式呈现def foo(x,*args): print (x,args);foo(1,2,3,4,5,6,7)//运行结果为 (1, (2, 3, 4, 5, 6, 7))从执行的结果中可...

2019-04-02 22:34:46 267

原创 Python成长之路——装饰器函数

装饰器的形成过程通过学习和研究对python的装饰器有了一定的了解,为了加深印象,重新整理一遍,以下是个人的理解,并不是很全,后续有新的理解在进行修改或更新。import timedef func1(): time.sleep(0.01) print("this is func1")def timer(fn): def inner(): st...

2019-04-02 19:34:57 129

转载 Mysql批量执行更新shell脚本

在生产上执行更新sql,当更新的数据超过上100万的时候,执行更新操作会造成卡表或者锁表。本文主要记录一个了批量更新Mysql某张表的数据的脚本代码片。mysql的批量执行更新#!/bin/bash. ~/.bash_profilelog=/home/apps/update/update_log_1_$(date +%F).logvstart=1step=10000vstop=$((...

2019-01-16 17:19:59 1410

转载 Spring Boot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

spring-boot-assembly在spring boot项目中使用maven profiles和maven assembly插件根据不同环境打包成tar.gz或者zip将spring boot项目中的配置文件提取到外部config目录中将spring boot项目中的启动jar包移动到boot目录中将spring boot项目中的第三方依赖jar包移动到外部lib目录中bin目...

2019-01-03 19:40:43 3117

原创 MySQL性能问题

查询执行计划explain + sql语句explan select from tb ;id:编号select_type:查询类型table:表type:类型possible_keys:预测用到的索引key:实际使用的索引key_len:实际使用索引的长度ref:表之间的引用rows:通过索引查询到的数量extra:额外的信息准备数据create table cou...

2018-10-28 16:01:30 772

转载 mysql 按照月份自动创建表,以年和月为表明,动态生成。

需求:mysql5.5 数据库,想要根据月份自动创建表,每个月创建一张表,需要数据库自动创建,并根据当前年和月动态生成表名称。解决办法:连接数据库工具为Navicat首先创建存储过程,然后通过创建定时事件执行存储过程。先查看事件是否开启 show variables like ‘%scheduler%’;如果未开启则需要开启 set global event_scheduler =...

2018-10-18 23:39:16 7626 2

原创 Activiti工作流--组任务角色的设置--之十二(完结)

将任务分配给某个角色在流程设计当中指定处理任务的某个角色 (注意:添加处理人员不是在assignee选项 而是 cadidate group)在流程设计的时候用流程变量的方式指定某个角色作为处理人,然后在前面的流程处理完的时候用流程变量指定某些角色的人传入到下一个流程 .在流程设计的时候给流程任务添加一个监听器 ,在业务代码里面指定某个角色注意:查询任务方式的不一样(只能通过候选...

2018-10-13 21:34:57 8722 4

原创 Activiti工作流--组任务分配--之十一

将组任务分配给某些人有三个途径在流程设计当中指定处理任务的某些人 (注意:添加处理人员不是在assignee选项 而是 cadidateUsers)在流程设计的时候用流程变量的方式指定某些任务处理人,然后在前面的流程处理完的时候用流程变量指定某些具体的人传入到下一个流程 .在流程设计的时候给流程任务添加一个监听器 ,在业务代码里面指定某些处理人注意:查询任务方式的不一样(只能通过...

2018-10-13 21:13:56 1841

原创 Activiti工作流--任务的分配--之十

用户任务分配主要有三种方式将任务分配个某个人将任务分配个某群人将任务分配个某个角色(组)将任务分配个某个人有三个途径在流程设计当中指定处理任务的某个人在流程设计的时候用流程变量的方式指定任务处理人,然后在前面的流程处理完的时候用流程变量指定某个具体的人传入到下一个流程 .在流程设计的时候给流程任务添加一个监听器 ,在业务代码里面指定处理人流程业务模拟我们来设计一个简单的...

2018-10-13 21:00:31 1197

原创 Activiti工作流--并行网关--之九

流程的业务描述 会议记录会签并行网关是不需要设置流程变量的,并行网关不在流程变量的范围内比如:在开完某个产品设计会以后,需要对会议约定一些事项进行签字画押涉及到两个部门(产品部/研发部)的主管和经理确认的顺序:a:产品部的主管确认然后产品部的经理确认b:研发部的主管确认 然后研发部的经理确认注意:以上两个处理步骤可以同时进行,都完成以后,代表流程结束先获取连接private...

2018-10-13 20:45:38 4526 2

原创 Activiti工作流--流程变量的应用之二:排他网关--之八

流程的业务描述财务报账审批流程:a: 如果报账金额大于5000和小于10000时,财务审批以后,交由财务主管审批,然后结束流程b: 如果报账金额大于或者等于10000,财务审批完以后交由财务经理审批,然后结束流程c: 如果是其他情况,直接结束流程先获取连接private ProcessEngine processEngine; @Beforepublic void initP...

2018-10-13 20:32:05 2054

原创 Activiti工作流--流程变量应用之一:选择连线--之七

流程的业务描述财务报账审批流程:如果财务主管接到审批任务,发现金额只有500时,自己审批完流程结束如果财务主管接到审批任务,发现金额是1000时,审批完以后转给财务经理继续审批,财务经理审批完流程结束先获取连接private ProcessEngine processEngine; @Beforepublic void initProcessEngine(){ pro...

2018-10-13 18:55:45 1318 1

原创 Activiti工作流--流程变量的设置与应用--之六

流程变量在流程执行或者任务执行过程中,用于设置和获取变量,工作流引擎通过使用流程变量在溜车鞥的执行过程中传递参数。流程变量的作用域只对应一个流程实例,也就是各个流程之间的变量是相互不影响的。流程变量的设置流程变量可以在流程实例启动的时候,在任务执行的过程中,在任务执行完毕饿时候进行设置。先获取连接private ProcessEngine processEngine; ...

2018-10-13 18:14:28 2532

原创 Activiti工作流--流程启动的相关操作--之五

首先还是先获取连接private ProcessEngine processEngine; @Beforepublic void initProcessEngine(){ processEngine = ProcessEngines.getDefaultProcessEngine();}流程定义(流程图的设计) * 流程部署涉及到的几个动作和表 * 流程部署表 act_re_d...

2018-10-12 22:59:57 2740

原创 Activiti工作流--流程定义的相关操作--之四

这里是接着上篇进行往下写的,相关配置的话这里就不重复了,可以参照前面的文章获取配置连接private ProcessEngine processEngine; @Beforepublic void initProcessEngine(){ processEngine = ProcessEngines.getDefaultProcessEngine();}流程的定义和部署@Tes...

2018-10-12 22:15:37 956

原创 Activiti工作流程--工作流数据库表详细介绍--之二

       Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的

2018-10-12 21:38:02 2581

原创 Activiti工作流--流程定义--之三

     &a

2018-10-12 21:26:34 1628

原创 Activiti工作流--重要概念--之一

Workflow       Workflow

2018-10-12 20:56:47 842

原创 Replace into与Merge into的用法总结

MySQL中replace用法总结插入一条数据,存在则不操作,不存在就插入(必须现有唯一键)使用insert ignore语句:insert ignore into table(col1,col2) values ('a','b');这样一来,如果表中已经存在的数据,就不会插入,如果没有就会插入一条新数据。插入一条数据,存在就更新,不存在就插入(必须现有唯一键)这种有两种操作...

2018-10-11 22:01:32 6247

空空如也

空空如也

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

TA关注的人

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