- 博客(23)
- 收藏
- 关注
原创 mybatis批量删除报错
2.mybatis批量删除出错1.Mybatis报错(Parameter ‘**’ not found. Available parameters are [array])这个错误一般是出现在批量删除传数组的时候,出现的错误先上代码<delete id="deleteBatch" > delete from measurement_info where id in <foreach collection="ids" item="id" separat
2021-03-20 15:43:47 1086
原创 hashMap基础源码解析
2.hashMap基础源码解析默认初始化容量:static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16数组最大容量:static final int MAXIMUM_CAPACITY = 1 << 30;默认加载因子:static final float DEFAULT_LOAD_FACTOR = 0.75f;链表调整为红黑树的链表长度阈值(JDK1.8):static final int TR
2021-03-20 15:07:39 125
原创 初识HashMap
1.初识HashMap下面是出自于jdk1.8中文文档缩写的一段话基于哈希表的 Map接口的实现。这种实现提供了所有可选的Map操作,并允许 null值和 null关键。(这 HashMap类大致相当于 Hashtable,除了它是不同步的,允许空值。)这类做任何保证Map的秩序;特别是,它并不能保证订单将随时间保持恒定。这个实现的基本操作提供了稳定的性能(get和put),假设哈希函数的分散元素之间的正确的桶。在集合视图迭代需要时间成正比的“能力”的HashMap实例(桶的数量)加上其尺寸(
2021-03-20 10:40:32 123
原创 类的加载过程
1.类的加载过程1.1 字节码在聊 Java 类加载机制之前,需要先了解一下 Java 字节码,因为它和类加载机制息息相关。计算机只认识 0 和 1,所以任何语言编写的程序都需要编译成机器码才能被计算机理解,然后执行,Java 也不例外。Java 在诞生的时候喊出了一个非常牛逼的口号:“Write Once, Run Anywhere”,为了达成这个目的,Sun 公司发布了许多可以在不同平台(Windows、Linux)上运行的 Java 虚拟机(JVM)——负责载入和执行 Java 编译后的字节码
2021-03-19 17:19:30 123 2
原创 解决阿里云OSS上传图片只能下载,不能预览问题。
一.解决阿里云OSS上传图片只能下载,不能预览问题。1.阿里云对象存储上传的图片打开是下载,并不是我想要的效果,我希望的是可以直接预览:可以直接在网址上面查看的那种。首先你得检查一下你的图片contentType,一般是通过代码设置的,直接在阿里云上传的图片,返回的url链接是直接下载的。我们使用代码上传,只需要看看你的代码里面上传图片的类型。老规矩,还是直接上代码 metadata.setContentType(getcontentType(fileName.subst
2021-03-16 08:46:47 9517 6
原创 如何后端解密小程序的手机号等主要信息呢?
2.如何后端解密小程序的手机号等主要信息呢?下面也是从纯后端的角度去分析,首先,出于安全问题,前后解析手机号等这种情况,虽然可以解析,但是太不安全,随随便便就能被别人获取到,所以考虑到安全问题,还是决定在后端解析就好了,直接上代码public JSONObject getUserInfo(@RequestBody Map<String,String> map) { String encryptedData = map.get("encryptedData");
2021-03-08 16:15:59 313
原创 如何利用前端传过来的code去获取session_key和openid
1.如何利用前端传过来的code去获取session_key和openid首先,大家对于微信的登录流程不熟悉的,最好去看一下微信的开发文档,这样对于下面我说的,会一看就懂!网址:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html好的,接下来上代码了public JSONObject getSessionKeyOrOpenId(String code) { String
2021-03-08 16:08:58 1444 1
原创 Java中的泛型
10.Java中的泛型泛型最初的诞生是因为,代码的重用,泛型的产生本质是来源于软件设计!在软件设计的过程中经常会用到容器类,容器类代码都一样只是数据类型不同,如果能够让一种类型容纳所有类型,就可以实现代码重用,但是没有一种类型可以容纳所有类型,为了解决容器的问题,由此就产生了泛型设计。由此可见,泛型是一个不确定的参数类型,即“参数化类型”!泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。那么怎么使用泛型,进行软件设计呢?泛型有什么使用的方式呢?有以下三种:泛型类
2021-03-03 16:04:01 108 2
原创 Java的== 与 equals区别
9.Java的== 与 equals区别9.1 ==方法介绍==方法是用于比较地址时候相同。如果地址相同,就返回true.如果地址不同,就返回fales。这是我们最基本的理解的方式,一下是大佬们更加详细的解释它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型比较的是值,引用数据类型比较的是内存地址)。基本数据类型:byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。
2021-03-03 15:15:07 101 3
原创 hashCode() 和 equals() 的关系
8.hashCode() 和 equals() 的关系8.1equals()equals() 方法用于比较两个对象是否相等,它与 == 相等比较符有着本质的不同。在万物皆对象的 Java 体系中,系统把判断对象是否相等的权力交给程序员。具体的措施是把 equals() 方法写到 Object 类中,并让所有类继承 Object 类。 这样程序员就能在自定义的类中重写 equals() 方法, 从而实现自己的比较逻辑。关于 equals() 和 == 的区别你可以–参考这篇文章–hashCode(
2021-03-02 16:57:41 263
原创 认识String类
7.认识String类7.1String类是java.lang包中的一个类,是我们日常中使用的非常多的一个类,它不是基础数据类型,底层实现是字符数组来实现的:String类是由final修饰的,所以是无法被继承的,一旦创建了String对象,我们就无法改变它的值。因此,它是线程安全的,可以安全地用于多线程环境中。接下来来说说创建字符串会有哪几种方式1.使用new去创建一个字符串2.使用""去创建一个字符串3.使用+去拼接字符串他们的具体的区别是什么呢?下面现在分析1和2的区别,先上代码
2021-03-02 16:13:54 83
原创 List集合中的remove元素
List集合中的remove元素1.通常,我们会进行一个for循环,然后想要移除的元素与循环的元素进行一个对比,此时如果他们的值相等,就把此时循环到的那个值相等的元素进行移除,这是我们最基本的思路,但是,List集合是可重复的,还有我们的for循环是否在某些是否会存在一些Bug呢?下面我们先上代码package com.example.demo;import java.util.ArrayList;import java.util.List;import java.util.concurren
2021-02-05 15:36:16 1117 1
原创 判断元素是否在集合中
判断元素时候在集合中通常,我们判断元素时候存在在集合中 ,最常用的方法就是,把数据全部加载到集合中,然后进行集合遍布,对单个集合进行一个比较,但是这样实现是能实现,但是当数据量过于庞大的时候,就会很大程度的影响到系统想性能了。所以有一个新的概念提出:布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。主要用于判断一个元素是否在一个集合中。通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,这个时候往往我们都是采用 Has
2021-02-04 17:16:22 5288
原创 Java 中文件之魔数
Java 中令人匪夷所思的 Magic 之魔数先来讲讲一个故事,公司突然有一个需求,客户提交的文件,让你获取到他提交的文件到底是一个什么文件,这个不是小事一桩吗?直接上代码。public static String getFileTypeByExt(String filePath) { if (StringUtils.isBlank(filePath)) { return null; } return filePath.toLowe
2021-02-04 16:58:13 1286 3
原创 foreach循环
1.foreach循环本篇文章参考纯洁的微笑文章 :http://www.justdojava.com/2019/12/14/java-foreach/foreach简直就是功能强大,不管是什么数组,集合都可以用foreach搞定,比如小马哥的上一篇博客中:https://blog.csdn.net/weixin_44109717/article/details/113651457写到了for循环的日子,我们可以这样用,enum OptionFirst {Tom, Jerry, Jack, Mary
2021-02-04 16:11:59 3081 4
原创 java循环的正确使用
java循环的正确使用1.java中的循环的正确使用一般循环一个数组的时候,使用for循环循环一个集合的时候,使用Iterator迭代器enum Option {Tom, Jerry, Jack, Mary}Collection<Option> options = Arrays.asList(Option.values());for(Iterator<Option> i = options.iterator(); i.hasNext();){ for (Iter
2021-02-04 16:00:15 256 1
原创 vue的4种路由传参的方式
二. vue的4种路由传参的方式router-link不带参数时:to后面表示跳转的地址<router-link :to="{name:'home'}">带参数时:to后面表示跳转的地址, params传参数 (类似post)路由配置 path: “/home/:id” 或者 path: “/home:id”不配置path ,第一次可请求,刷新页面id会消失配置path,刷新页面id会保留html 取参 $route.params.idscript 取参 this.
2020-08-05 16:19:25 941
原创 Mybatis的jdbcType和javaType,oftype的区别
1.jdbcType是数据库数据类型,javaType是java数据类型,对应的关系图为:上代码:<resultMap type="java.util.Map" id="resultjcm"> <result property="FLD_NUMBER" column="FLD_NUMBER" javaType="double" jdbcType="NUMERIC"/> <result property="FLD_VARCHAR" column="FLD_VARCH
2020-08-03 11:42:40 1160 1
原创 五.MyBatis-Plus的逻辑删除
五.MyBatis-Plus的逻辑删除物理删除 :从数据库中直接移除逻辑删除 :再数据库中没有被移除,而是通过一个变量来让他失效! deleted = 0 => deleted = 1管理员可以查看被删除的记录!防止数据的丢失,类似于回收站!1, 在数据库中增加deleted字段,并且默认值设为0,0表示未删除,1表示已经删除2.在pojo层导入实体类@TableLogic //逻辑删除 private Integer deleted;3.配置// 逻辑删除组件!@Bea
2020-07-15 20:07:22 252
原创 四.MyBatis-Plus的查询,删除,分页
四.MyBatis-Plus的查询,删除,分页1.查询(比较简单,不作介绍) @Test //按照id数组查询 void selectByIds(){ List<user> users = usermapper.selectBatchIds(Arrays.asList(1, 2, 3)); System.out.println(users); } @Test //通过map查询 void selectByMap(
2020-07-15 19:48:47 342
原创 三.MyBatis-Plus乐观锁的使用
三 MyBatis-Plus中乐观锁的使用1.在面试过程中,我们经常会被问道乐观锁,悲观锁!这个其实非常简单!乐观锁 : 故名思意十分乐观,它总是认为不会出现问题,无论干什么不去上锁!如果出现了问题,再次更新值测试悲观锁:故名思意十分悲观,它总是认为总是出现问题,无论干什么都会上锁!再去操作!乐观锁实现方式:取出记录时,获取当前 version更新时,带上这个version执行更新时, set version = newVersion where version = oldVersion如
2020-07-15 18:49:21 586
原创 二.MyBatis-plus的自动填充数据
二 MyBatis-Plus的自动填充1.以数据库表中的字段举例,因为创建时间、修改时间!这些个操作一遍都是自动化完成的,我们不希望手动更新!阿里巴巴开发手册:所有的数据库表:gmt_create、gmt_modifified几乎所有的表都要配置上!而且需要自动化!换成通俗易懂的就是createTime和updateTime2.在数据库中新增字段createTime和updateTime,使用datetime属性3.在实体层上增加这两个实体类@TableField(fill = Field
2020-07-15 01:15:40 394
原创 一.MyBatis-Plus最简单的上手
MyBatis-Plus最简单的上手资源的建表准备1.建立名字为mybatis-plus的数据库2.建表DROP TABLE IF EXISTS user; CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', ...
2020-07-14 15:24:33 149 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人