设计模式【2.1】-- 简单工厂模式怎么演变成工厂方法模式?

2021-01-23
阅读 2 分钟
901
还记得前面的简单工厂模式么?我们开了一个水果工厂FruitFactory,生产三种水果Apple,Pear,Orange。今天给大家讲讲工厂方法模式:

如何使用docsify搭建自己的github文档?

2021-01-21
阅读 4 分钟
1.6k
安装前提确认电脑已经安装好 node 和 npm 环境。 如果还没有装好,那需要执行下面的步骤:1.进入官网:[链接] , 下载长期支持版。2.安装就直接下一步就可以了,默认会把环境变量添加进去。3.直到finish,打开cmd命令行,查看环境变量以及版本。(此时你们看到的应该还是只把node.js的根目录添加到环境变量path)4.运行...

2020我写了什么?

2021-01-21
阅读 3 分钟
999
去年我写了哪些东西?这是我做总结的时候想的第一个问题,然后我回头看我写过的文章。[TOC]下面主要讲解几个主要的方向:剑指Offer去年完成35篇,今年主要目标是完成全部,以及补充多种解法,同时维护刷题的仓库,使用docsify搭建,刚刚建立起来:[链接]剑指Offer话题集合:[链接]LeetCode系列主要是为了保持刷题手感,年...

Mybatis【13】-- Mybatis动态Sql标签的使用

2021-01-21
阅读 8 分钟
6.1k
mybatis有一个强大的特性,其他框架在拼接sql的时候要特别谨慎,比如哪里需要空格,还要注意去掉列表最后一个列名的逗号,mybtis的动态sql可以帮助我们逃离这样的痛苦挣扎,那就是动态SQL.它还可以处理一种情况,当你不确定你的参数不知道是不是为空的时候,我们不需要在业务逻辑中判断,直接在sql中处理,代码无比简洁...

Git学习【1】 -- 基本常用命令

2021-01-21
阅读 2 分钟
965
[TOC]安装完Git,如何玩呢?下面是一些初始化和初级的常用命令。新建文件夹之后,打开文件夹,右击,进入git Bashhere,就可以使用命令行了。1.设置用户名设置的是全局的用户名(--global) {代码...} 2.设置用户邮箱 {代码...} 3.初始化文件夹下面的命令表示,创建文件夹名字为test,进入文件夹并初始化为git管理,创建...

Mybatis【12】-- Mybatis多条件怎么查询?

2021-01-19
阅读 2 分钟
825
下面是sql语句,如果value是基本类型的话,我们需要使用#{},里面一定写对应的key,如果value是一个对象的话,里面我们需要写对应的key.属性,比如#{stu.score}:

JVM笔记【1】-- 运行时数据区

2020-12-26
阅读 3 分钟
966
C/C++每一个new操作都需要自己去delete/free,而java里面有虚拟机自动管理内存,不容易出现内存泄漏或者溢出的问题,但是不容易出现不代表不出现,了解虚拟机怎么使用和管理内存是十分重要的是,对程序优化或者问题排查有帮助。

Mybatis【11】-- Mybatis Mapper动态代理怎么写?

2020-12-26
阅读 4 分钟
1.2k
[TOC]1.回顾Mybatis执行sql的流程在之前的代码中我们的运行过程再梳理一下,首先我们执行Test,调用dao接口方法接口的定义:调用接口的实现类方法:最后才是调用真正的sql:上面的代码是在接口实现类里面自己去执行id,查找并执行mapper文件里面的sql,那么我们想是不是可以减少一步呢?如果我们不用自己实现接口,只需要将...

设计模式【2】-- 简单工厂模式了解一下?

2020-12-26
阅读 2 分钟
1k
[TOC]1.简单工厂模式介绍工厂模式,比较常用,属于创建型模式,也就是主要是用来创建对象的。工厂模式,有三种,主要分为:简单工厂模式工厂方法模式抽象工厂模式其中,本文要讲的就是,简单工厂模式,但是简单工厂模式,并不是属于GoF讲的23种设计模式中。简单工厂模式,也叫静态工厂方法模式。简单而言,就是有一个具...

设计模式【1.3】-- 为什么饿汉式单例是线程安全的?

2020-12-26
阅读 3 分钟
3k
我们都知道,饿汉式单例是线程安全的,也就是不会初始化的时候创建出两个对象来,但是为什么呢?首先定义一个饿汉式单例如下: {代码...} 之所以是线程安全的,是因为JVM在类加载的过程,保证了不会初始化多个static对象。类的生命周期主要是:加载-->验证-->准备-->解析-->初始化-->使用-->卸载上面...

设计模式【1.2】-- 枚举式单例有那么好用么?

2020-12-26
阅读 9 分钟
2.8k
单例模式:是一种创建型设计模式,目的是保证全局一个类只有一个实例对象,分为懒汉式和饿汉式。所谓懒汉式,类似于懒加载,需要的时候才会触发初始化实例对象。而饿汉式正好相反,项目启动,类加载的时候,就会创建初始化单例对象。

Mybatis【10】-- Mybatis属性名和查询字段名不同怎么做?

2020-12-26
阅读 9 分钟
1.2k
很多时候我们有这样的需求,数据库的字段名与实体类的属性名不一致,这个时候我们需要怎么做呢?有两种解决方案,第一种:直接在查询的时候使用别名,将别名设置成与实体类的属性名一致。第二种:使用resultType,自己定义映射关系。整个项目的目录如下:首先,我们需要搭建数据库mysql环境(test.sql),id我们写成了sid,n...

设计模式【1.1】-- 你想如何破坏单例模式?

2020-12-26
阅读 14 分钟
912
单例模式:是一种创建型设计模式,目的是保证全局一个类只有一个实例对象,分为懒汉式和饿汉式。所谓懒汉式,类似于懒加载,需要的时候才会触发初始化实例对象。而饿汉式正好相反,项目启动,类加载的时候,就会创建初始化单例对象。

设计模式【1】-- 单例模式到底几种写法?

2020-12-26
阅读 5 分钟
1.3k
1.涉及一个单一的类,这个类来创建自己的对象(不能在其他地方重写创建方法,初始化类的时候创建或者提供私有的方法进行访问或者创建,必须确保只有单个的对象被创建)。

Mybatis【9】-- Mybatis占位符#{}和拼接符${}有什么区别?

2020-12-26
阅读 3 分钟
4.9k
1.#{}占位符可以用来设置参数,如果传进来的是基本类型,也就是(string,long,double,int,boolean,float等),那么#{}里面的变量名可以随意写,什么abc,xxx等等,这个名字和传进来的参数名可以不一致。

Lambda【1】-- List相关Lambda表达式使用(上篇)

2020-12-26
阅读 6 分钟
972
Lambda在jdk1.8里面已经很好用了,在这里不讲底层的实现,只有简单的用法,会继续补全。首先一个list我们要使用lambda的话,需要使用它的stream()方法,获取流,才能使用后续的方法。

Mybatis【8】-- Mybatis返回List或者Map以及模糊查询怎么搞?

2020-12-26
阅读 2 分钟
1.4k
好像执行sql之后都没有结果的。其实不是的,增删改的sql执行之后都会有一个int类型的返回值,表示的意思是这个操作影响的行数。举个例子,如果我们插入一行成功的话,影响的就是一行。如果我们修改一条数据成功的话,那么我们也是影响了一行。如果我们删除一条数据成功的话,那么返回的就是1,表示影响了一行,如果没有...

Mybatis【7】-- Mybatis如何知道增删改是否成功执行?

2020-12-26
阅读 4 分钟
1.1k
代码直接放在Github仓库【[链接] 】 需要声明的是:此Mybatis学习笔记,是从原始的Mybatis开始的,而不是整合了其他框架(比如Spring)之后,个人认为,这样能对它的功能,它能帮我们做什么,有更好的理解,后面再慢慢叠加其他的功能。

Mybatis【6】-- Mybatis插入数据后自增id怎么获取?

2020-12-05
阅读 4 分钟
6.9k
代码直接放在Github仓库【[链接] 】 需要声明的是:此Mybatis学习笔记,是从原始的Mybatis开始的,而不是整合了其他框架(比如Spring)之后,个人认为,这样能对它的功能,它能帮我们做什么,有更好的理解,后面再慢慢叠加其他的功能。

Mybatis【5】-- Mybatis多种增删改查那些你会了么?

2020-12-05
阅读 15 分钟
1k
代码直接放在Github仓库【[链接] 】 需要声明的是:此Mybatis学习笔记,是从原始的Mybatis开始的,而不是整合了其他框架(比如Spring)之后,个人认为,这样能对它的功能,它能帮我们做什么,有更好的理解,后面再慢慢叠加其他的功能。

JDBC【4】-- jdbc预编译与拼接sql对比

2020-12-05
阅读 6 分钟
2.6k
在jdbc中,有三种方式执行sql,分别是使用Statement(sql拼接),PreparedStatement(预编译),还有一种CallableStatement(存储过程),在这里我就不介绍CallableStatement了,我们来看看Statement与PreparedStatement的区别。

【java基础】-- java接口和抽象类的异同分析

2020-12-05
阅读 5 分钟
791
在java中,通常初学者搞不懂接口与抽象类,这也是面试比较容易问到的一个问题。下面我来谈谈自己的理解。如有不妥之处,还望批评指正,不胜感激。

【Java基础】-- instanceof 用法详解

2020-12-05
阅读 4 分钟
7.4k
instanceof其实是java的一个二元操作符,和=,<,>这些是类似的,同时它也是被保留的关键字,主要的作用,是为了测试左边的对象,是不是右边的类的实例,返回的是boolean值。

使用PicGo存储markdown图片(阿里云或者github)

2020-12-05
阅读 2 分钟
1.2k
之前使用极简床图,但是后来好像挂了,真是一件悲伤的事,最近才发现了一个神器,开源的PicGo,已经有各个平台的版本了。链接如下:[链接] 去下载自己的平台即可。虽然你要是Mac,有iPic也是很ok的。

java集合【10】——— LinkedList源码解析

2020-12-05
阅读 25 分钟
1.3k
我们除了最最常用的ArrayList之外,还有LinkedList,这到底是什么东西?从LinkedList官方文档,我们可以了解到,它其实是实现了List和Queue的双向链表结构,而ArrayList底层则是数组结构。

【Java基础】-- isAssignableFrom的用法详细解析

2020-11-28
阅读 4 分钟
1.1k
首先我们必须知道的是,java里面一切皆对象,类本身也是会当成对象来处理,主要体现在类的.class文件,其实加载到java虚拟机之后,也是一个对象,它就是Class对象,全限定类名:java.lang.Class。

JDBC【4】-- SPI底层原理解析

2020-11-28
阅读 11 分钟
933
背景:SPI是什么?SPI,即是Service Provider Interface,是一种服务提供(接口实现)发现机制,可以通过ClassPath路径下的META-INF/Service文件查找文件,加载里面定义的类。一般可以用来启用框架拓展和替换组件,比如在最常见的数据库连接JDBC中,java.sql.Driver,不同的数据库产商可以对接口做不一样的实现,但是JDK...

Mybatis【4】-- 关于Mybatis别名定义

2020-11-28
阅读 9 分钟
1.8k
代码直接放在Github仓库【[链接] 】,可直接运行,就不占篇幅了。我们下面需要改进的是别名,也趁这个机会介绍一下别名的作用。其实在我们实际开发中,大多数情况下,一个mapper.xml文件对应的是对一个对象的操作,当前的mapper如下: {代码...} 我们可以看出:parameterType有时候会写很长很长,每写一个sql我们就要使...

Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息

2020-11-28
阅读 5 分钟
1.1k
在上一个demo中,处理了多个namespace的问题,那么我们可以看到代码还是会有一定的冗余,比如下面这段代码中我们每一个增删改查操作都需要读取一遍配置文件:

Mybatis【2.3】-- Mybatis一定要使用commit才能成功修改数据么?

2020-11-28
阅读 3 分钟
1k
代码直接放在Github仓库【[链接]】,mybatis-02可直接运行,就不占篇幅了。为什么我们有时候不使用commit也能修改数据库成功?[TOC]1.从数据库的层面上来讲,其实这个主要看你用什么“存储引擎”像以下的代码就是使用了自动提交的mysql引擎。 {代码...} 如果是不支持事务的引擎,如myisam,则是否commit都没有效的。如果是...