数据库锁的分类(粒度,级别)

数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。 数据库锁出现的原因是为了处理并发问题,因为数据库是一个多用户共享的资源,当出现并发的时候,就会导致出现
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

2019.4.7面试题

1.String a = “123”; String b = “123”; a==b的结果是什么? 这包含了内存,String存储方式等诸多知识点。 ans: 同样序列的字符串直接量为一个实例,所以其实引用变量a和b其实是指向同一个实例,地址也就相同。引用变量比较的是地址,所以第一个打印出来为true。 2.HashMap里的hashcode方法和equal方法什么时候需要重写?如果不重写会有什么后果?对此大家可以进一步了解HashMap(甚至ConcurrentHashMap)的底层实现。
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

vue配置全局less变量/方法 详细过程

核心:sass-resources-loader组件 实现过程如下: 1.安装 npm i sass-resources-loader -S 2.修改配置文件build/utils.js 2.1 在cssLoaders中添加如下代码: // 全局less变量配置 function lessResourceLoader() { var loaders = [ cssLoader, 'less-loader', { loader: '
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

vue打包静态资源路径报错

使用vue-cli创建的vue项目直接打包会出现静态资源找不到的问题,解决方案如下: 修改config/index.js的build配置,将assetsPublicPath的值修改为 ./ 再次打包如下,静态资源路径已经改为了./
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

vue解决ie与低版本浏览器es6兼容问题

使用vue-cli搭建vue项目打包后在ie上打开静态资源出现空白,但是在chrome上一切正常,经检测发现打包后的js存在兼容问题,ie等低版本浏览器对es6存在不支持情况,解决方法如下: 1. 安装babel-polyfill npm i babel-polyfill -S 2. 在main.js引入abel-polyfill 完成!
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

node监听组件supervisor 监听node项目代码改变 更新服务

新建node项目,通过 node xx.js 启动项目,当代码发生改变需要重新启动项目,使用 supervisor组件 即可实时监测代码变化更新项目并自动重启项目,具体操作如下: 1.安装: npm i supervisor -g 2.使用: 命令行使用 supervisor 代替 node 启动项目,当命令行提示如下信息时表示设置成功:
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

restful风格数据交互 前端封装

restful 是目前最流行的 API 设计规范,用于 Web 数据接口的设计,核心思想就是,客户端发出的数据操作指令都是"动词 + 宾语"的结构。 交互方式主要有以下几种: get请求:用于查询后台数据库数据; post请求:用于向后台数据库新增数据; put请求:用于修改后台数据库数据; delete请求:用于删除后台数据库数据; 项目基于统一管理原则制定了以下请求封装供参考: 1.安装axios npm i axios -S 2.新建文件,封装请求 import axios from
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

时间格式转换 - 最好用的前端组件moment

最近一个新的项目,因需求日期格式回显用户可设置,经过同行老司机指引发现Moment.js这一强大助力,感觉很好用! 1. 安装moment组件,也可以直接引入相关js代码 npm i moment -S 2. 使用 /** * @param {String} date 需要转化的时间值,要求与ISO 8601格式匹配(不传入,默认使用当前时间); * @param {String} rule 需要转换的时间格式 */ moment(date).format(rule) ISO 8
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

开发环境、测试环境、生成环境区别 npm安装

环境简述 开发环境:开发环境是程序猿们专门用于开发的服务器,配置可以比较随意, 为了开发调试方便,一般打开全部错误报告。 测试环境:一般是克隆一份生产环境的配置,一个程序在测试环境工作不正常,那么肯定不能把它发布到生产机上。 生产环境:是指正式提供对外服务的,一般会关掉错误报告,打开错误日志。可以理解为包含所有的功能的环境,任何项目所使用的环境都以这个为基础,然后根据客户的个性化需求来做调整或者修改。 三个环境也可以说是系统开发的三个阶段:开发->测试->上线,其中生产环境也就是通常说的真实环
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

element Form resetFields踩过的坑

描述: 自己封装了修改(弹窗)组件,每次的打开修改弹窗后请求修改项数据进行回填,关闭弹窗时使用Form组件的resetFields方法重置表单,第一次使用该组件正常,第二次使用该组件在关闭时,会闪现第一次打开时的修改项的数据; 原因: form表单的重置是以第一次打开的数据作为重置标准,如果先打开的是更新,那么重置之后以第一次更新的数据作为标准; 解决方法: 每次关闭弹窗时销毁组件,每次打开该组件再对该组件的dom进行重新挂载,挂载完成后进行修改项数据请求回填; 使用: 通过v-if控制For
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

ElementUI el-time-picker踩坑-只显示小时、分钟,分并添加范围校验

开始时间设置: <el-time-picker v-model="form.preClockOffTime" class="date-box" format='HH:mm' 设置下拉框时间格式 value-format="HH:mm" 设置返回值时间格式 :picker-options="{ 校验开始时间不的大于结束时间或最大时间值 selectableRange:`00:00:00 -${form.nex
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

uglify-webpack-plugin打包es6语法报错

最近闲来无事,就参照webpack官网搭建demo,在搭建生产环境时出现以下报错: 发现uglify-webpack-plugin插件打包时无法解析es6语法, 解决方法:配置公共webpack配置 1.安装 "babel-core" "babel-loader" "babel-preset-env" npm i babel-core [email protected] babel-preset-env -D ps: babel-loader默认安装最新版本,需指定安装7.1.5版本,方可
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

import() webpack打包报错

按照webpack官网案例搭建了一个小的项目,在使用动态导入方式做代码分离时,惊现报错,报错如下: 一番搜索找到了以下解决方案: 解决过程如下: 1.安装babel-plugin-dynamic-import-webpack npm i babel-plugin-dynamic-import-webpack -D 2.修改 .babelrc 配置文件,在plugins中添加如下配置 3.再次执行打包命令,打包成功
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

cnpm 替换 npm

原因:在开发过程中遇到了npm安装依赖不完整现象; 果断在此次项目开发改用了cnpm包管理器,替换npm为cnpm过程如下: 1. 安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 控制台提示如下,代表安装成功: 也可用查看cnpm版本命令查看是否安装成功 cnpm -v 2. 更换包管理器 npm config set registry https://registry.npm.taobao.or
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

vue踩坑 页面未触发渲染

最近项目中数次遇到了 “页面没有按照预想渲染” 的现象,特推出以下两种解决思路: 1. $nextTic()方法 具体操作:在$nextTic()方法回调函数内进行data更新 this.$nextTick(() => { // ... }); 2. $forceUpdate()方法 具体操作:执行方法,即可使组件强制重新渲染 // ... this.$forceUpdate();
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

js 线程

什么是线程? 提到线程,必不可少提到进程了,百度解释如下: 进程:操作系统分配的占有CPU资源的最小单位。拥有独立的地址空间。 线程:安排CPU执行的最小单位。同一个进程下的所有线程,共享进程的地址空间。 简单讲,计算机就像工厂,进程是个大车间,计算机内部有很多个这样的大车间。线程是工人,每一个车间里的工人至少有一个。 js是单线程还是多线程? javaScript是单线程执行机制。 ps: 什么是单线程?单线程就是一个进程中只有一个线程。程序顺序执行,前面的执行完,才会执行后面的程序,即一次
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

清除浮动常用方法

方法1: 浮动元素后添加新元素,设置width:0;height:0;overflow:hidden;clerar:both; 方法2: 盒子设置overflow:auto;zoom:1; ps:zoom属性是IE浏览器特有的一个属性,它的原本功能是设置或检测对象的缩放比例,此处可用来兼容IE低版本清除浮动原理为触发IE的haslayout 来清除浮动 方法3: 通过::after为盒子追加伪元素,并设置伪元素相关属性; 方法4: 盒子设置display:inline-block; ps:ma
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

react配置全局scss变量

自己在搭一个react的移动端demo,考虑到以后可能回做样式整体调整,就进行了scss变量全局的配置,配置过程如下: 1.安装sass-resources-loader npm i -S sass-resources-loader 2.创建公共配置文件 我创建了两个scc配置文件,一个存放变量variable.scss,一个存放混合指令mixin.scss 3.设置配置文件 如果是creact-react-app脚手架搭建的项目,没有找到config文件夹下webpack.config.d
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

数据输入输出流DataInputStream,DataOutputStream

一、简介 DataInputStream,DataOutputStream可以按照基本数据类型大小读写数据 例如按Long大小写出一个数字,写出时该数据占8字节,读取的时候也可以按照Long类型读取,一次读取8个字节。 二、使用方式 public static void demo3() throws FileNotFoundException, IOException { DataOutputStream dos = new DataOutputStream(new FileOutpu
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0

两种方式实现键盘录入

一、方式一(IO流) BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //InputStreamReader转换流 String line = br.readLine(); System.out.println(line); br.close(); 二、方式二(Scanner) Scanner sc = new Scanner(System.in); String line = sc.nex
分类: 其他 发布时间: 04-10 23:11 阅读次数: 0