自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Maven系列第9篇:多环境构建,作为核心开发,这个玩不转有点说不过去!

整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。如果你作为公司核心开发,打算使用maven来搭建项目骨架,这篇文章的内容是你必须要掌握的。平时我们在开发系统的时候,会有开发环境、测试环境、线上环境,每个环境中配置文件可能都是不一样的,比如:数据库的配置,静态资源的配置等等,所以我们希望构建工具能够适应不同环境的构建...

2020-03-25 14:18:42 178

原创 Maven系列第8篇:大型Maven项目,快速按需任意构建,必备神技能!相知恨晚!

整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。本篇涉及到的内容属于神技能,多数使用maven的人都经常想要的一种功能,但是大多数人都不知道如何使用,废话不多说,上干货。需求背景我们需要做一个电商项目,一般都会做成微服务的形式,按业务进行划分,本次我们主要以账户业务和订单业务为例,我们将这两块业务分别作为2个大...

2020-03-24 11:22:20 376

原创 Maven系列第7篇:聚合、继承、单继承问题详解,必备技能!

本篇内容 maven中聚合详解 maven中继承详解 pom.xml中parent元素的使用详解 pom.xml中dependencyManagement元素使用详解 pom.xml中pluginManagement元素使用详解 单继承存在的问题及解决方案详解(springboot,springcloud中会常用) 解答上一篇遗留的...

2020-03-18 17:21:14 343

原创 Maven系列第6篇:生命周期和插件详解?高手必备!

整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。前面我们使用maven过程中,用到了一些命令,如下:mvncleanmvncompilemvntestmvnpackagemvninstallmvninstall-Dmaven.test.skip=truemvndeploymvnhe...

2020-03-17 17:33:27 401

原创 Maven系列第5篇:私服详解

环境 maven3.6.1 开发工具idea jdk1.8 本篇内容 私服介绍 windows中安装nexus私服 linux中安装nexus私服 nexus私服中各种仓库详解 配置本地Maven从nexus下载构件 将本地构件发布到私服的2种方式详解 总结 上一篇文章中有提到了私服,我们再来回顾一...

2020-03-17 15:34:22 285

原创 Maven系列第4篇:仓库详解

环境 maven3.6.1 开发工具idea jdk1.8 本篇内容 maven是如何找到我们依赖的jar的 什么是仓库 仓库的分类 各种类型仓库详解 maven中远程仓库配置详解 关于构件版本问题说明 构件文件的布局 在maven出现之前,项目中用到第三方jar包时,我们会把这些依赖的jar包拷贝...

2020-03-16 14:03:32 251

原创 Maven系列第3篇:详解maven解决依赖问题

我们先来回顾一下什么是maven?maven是apache软件基金会组织维护的一款自动化构件工具,专注服务于java平台的项目构件和依赖管理。预备知识 Maven系列:第1篇:Maven未出世前,我们那些痛苦的经历! Maven系列第2篇:安装、配置、mvn运行过程详解 本文主要内容 感受一下maven的效果 maven约定配置 maven中p...

2020-03-16 11:01:14 1898

原创 Maven系列第2篇:安装、配置、mvn运行过程详解

本文主要内容 linux中安装maven window中安装maven mvn命令运行的原理 maven配置设置 本篇环境 jdk1.8 maven3.6.2 我们要写java代码,需要安装jdk,那我们要使用maven,也类似,需要在我们的机器中安装maven。linux中安装安装mavenmaven是使用java语言编写的,所...

2020-03-16 10:16:45 154

原创 Maven系列第1篇:什么是maven?为什么需要它?

为什么我们要学习maven?学习某些技术,肯定是我们遇到了某些问题,而这些问题目前手头上没有很好的方案去解决,此时刚好有一种技术可以很好的解决这个问题,这样能够驱动我们愿意去学。所以我们学任何技术之前,需要先了解这种技术能够解决什么问题。带着问题去学习,大家才有兴趣,才能够更快的掌握。我们遇到了什么问题呢?maven还未出世的时候,我们有很多痛苦的经历。痛点1:jar包难以寻找...

2020-03-13 14:53:46 196

原创 Mybatis系列第12篇:掌握缓存为查询提速!

什么是缓存?缓存就是存储数据的一个地方(称作:Cache),当程序要读取数据时,会首先从缓存中获取,有则直接返回,否则从其他存储设备中获取,缓存最重要的一点就是从其内部获取数据的速度是非常快的,通过缓存可以加快数据的访问速度。比如我们从db中获取数据,中间需要经过网络传输耗时,db server从磁盘读取数据耗时等,如果这些数据直接放在jvm对应的内存中,访问是不是会快很多。mybatis...

2020-03-13 14:26:03 154

原创 Mybatis系列第11篇:类型处理器,这个你得会玩!

mybatis内部参数设置和结果的处理先来看一个案例:jdbc的方式插入用户信息,参数为UserModel:publicclassUserModel{privateIntegerid;privateStringname;privateIntegerage;//省略了getset方法}publicstaticint...

2020-03-13 09:29:50 177

原创 Mybatis系列第10篇:动态SQL,这么多种你都会?

mybatis中一个比较强大的功能就是动态sql,记得在刚开始工作那会,当时使用jdbc开发系统,在java代码中搞了很多判断去拼接sql,代码看起来比较乱,也不方便维护和扩展。mybatis在处理sql的拼接这块简直是我们的福音,基本上sql拼接的所有的痛点,mybatis都帮我们解决了。下面我们来学一下mybatis中各种动态sql的用法。案例sql脚本DROPDATABASE...

2020-03-12 14:44:24 90

原创 Mybatis系列第9篇:延迟加载、鉴别器、继承怎么玩?

建库建表创建一个db:javacode20184张表:t_user(用户表)t_goods(商品表)t_order(订单表)t_order_detail(订单明细表)表之间的关系:t_order和t_user是一对一的关系,一条订单关联一个用户记录t_order和t_order_detail是一对多关系,每个订单中可能包含多个子订单,每个子订单对应一个商品...

2020-03-12 11:35:28 98

原创 Mybatis系列第8篇:自动映射,使用需谨慎!

什么是自动映射?介绍自动映射之前先看一下手动映射,如下:<resultMapid="orderModelMap1"type="com.javacode2018.chat05.demo7.model.OrderModel"><idcolumn="id"property="id"/><resultcolumn="userId"pr...

2020-03-11 15:00:06 1472

原创 Mybatis系列第7篇:各种查询详解

主要内容 单表查询3种方式详解 一对一关联查询(4种方式)详解 一对多查询(2种方式)详解 综合案例 总结 建议 源码 建库建表创建一个db:javacode20184张表:t_user(用户表)t_goods(商品表)t_order(订单表)t_order_detail(订单明细表)表之间的关系:...

2020-03-10 10:07:03 173

原创 Mybatis系列第6篇:恕我直言,mybatis增删改你未必玩得转!

建库建表 mybatis增删改返回值说明及源码解析 jdbc获取自增值的3种方式详解 mybatis获取自增值的3种方式详解 建库建表/*创建数据库javacode2018*/DROPDATABASEIFEXISTS`javacode2018`;CREATEDATABASE`javacode2018`;USE`javacode2018...

2020-03-09 12:57:14 201

原创 Mybatis系列第5篇:Mapper接口多种方式传参详解、原理、源码解析

主要内容本篇详解mapper接口传参的各种方式。 传递一个参数 传递一个Map参数 传递一个javabean参数 多参数中用@param指定参数名称 java编译中参数名称的处理 mapper接口传参源码分析 传递1个Collection参数 传递1个List参数 传递1个数组参数 mybatis对...

2020-03-09 11:19:06 860 1

原创 Mybatis系列第4篇:Mybatis使用详解(2),一起跟上节奏!

1、idea创建本篇案例 建库建表 创建项目 2、别名使用详解(typeAliases) 为什么需要使用别名 别名3种用法详解 方式1:使用typeAlias元素注册别名 方式2:使用package元素批量注册别名 方式3:使用package结合@Alias批量注册并指定别名的名称 别名不区分大小写 mybati...

2020-03-08 10:54:57 102

原创 MyBatis系列第3篇:Mybatis使用详解(1)

主要内容1、快速入门 准备数据库 我们的需求 使用idea创建项目 pom.xml中引入mybatis依赖 配置mybatis全局配置文件 创建Mapper xml文件 mybatis全局配置文件中引入Mapper xml文件 构建SqlSessionFactory对象 构建SqlSession对象 ...

2020-03-08 10:37:57 272

原创 MyBatis系列第2篇:入门篇,带你感受一下mybatis独特的魅力!

本篇主要内容 通过一个案例感受一下mybatis的强大之处 mybatis开发项目的具体步骤 介绍mybatis中主要的几个对象 我们先来一个案例,让大家感受一下mybatis是多么的牛逼,我相信大家看了案例之后,会强烈的激发大家学习mybatis的兴趣。案例:原来ibatis是这么强大下面的案例,大家先不用关系代码为什么这么写,先感受一下效果,后面我们再来细...

2020-03-07 18:22:56 143

原创 MyBatis系列第1篇:MyBatis未出世之前我们那些痛苦的经历

本篇内容 java操作数据库相关的各种技术介绍 这么多技术,如何选择? 这么多技术,为什么我们选择的是mybatis 不知道大家是否还记得使用jdbc如何操作数据库?加载驱动、获取连接、拼接sql、执行sql、获取结果、解析结果、关闭数据库,这些操作是纯jdbc的方式必经的一些过程,每次操作数据库都需要写这些,但是真正和开发相关有:拼接sql、执行sql、解析结果,...

2020-03-06 17:37:24 125

原创 智能化工单应用

前言近年来,中国视频监控市场受平安城市建设,北京奥运会,上海进博会,广州亚运会,深圳大运会等安保项目以及各行业视频监控需求快速增长等因素的刺激和拉动,取得了快速发展,整个市场规模迅速扩大。“十二五”期间,随着平安城市建设等各项政策的继续开展和深化,以及交通、教育、金融等各个行业用户的安防意识的不断增强,预计未来视频监控市场将保持强劲增长。在这些如平安城市建设、世博会等大规模项目中,面对数以万计...

2020-01-06 18:43:23 442

原创 java高并发系列-第六篇:线程的基本操作

新建线程新建线程很简单。只需要使用new关键字创建一个线程对象,然后调用它的start()启动线程即可。 Thread thread1 = new Thread1(); t1.start(); 那么线程start()之后,会干什么呢?线程有个run()方法,start()会创建一个新的线程并让这个线程执行run()方法。这里需要注意,下面代码也能通过编译,也能...

2019-12-19 15:33:18 79

原创 java高并发系列-第五篇:深入理解进程和线程

进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。进程具有的特征: 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的 并发性:任何进程都可以同其他进行一起并发执行 独立性:进程是系统进行资源分配和调度...

2019-12-19 10:45:31 86

原创 java高并发系列-第四篇:JMM相关的一些概念

JMM(java内存模型),由于并发程序要比串行程序复杂很多,其中一个重要原因是并发程序中数据访问一致性和安全性将会受到严重挑战。如何保证一个线程可以看到正确的数据呢?这个问题看起来很白痴。对于串行程序来说,根本就是小菜一碟,如果你读取一个变量,这个变量的值是1,那么你读取到的一定是1,就是这么简单的问题在并行程序中居然变得复杂起来。事实上,如果不加控制地任由线程胡乱并行,即使原本是1的数值,你也...

2019-12-19 10:37:59 72

原创 java高并发系列-第三篇:有关并行的两个重要定律

有关为什么要使用并行程序的问题前面已经进行了简单的探讨。总的来说,最重要的应该是处于两个目的。第一,为了获得更好的性能;第二,由于业务模型的需要,确实需要多个执行实体。在这里,我将更加关注第一种情况,也就是有关性能的问题。将串行程序改造为并发程序,一般来说可以提高程序的整体性能,但是究竟能提高多少,甚至说究竟是否真的可以提高,还是一个需要研究的问题。目前,主要有两个定律对这个问题进行解...

2019-11-27 15:26:24 136

原创 java高并发系列-第二篇: 并发级别

由于临界区的存在,多线程之间的并发必须受到控制。根据控制并发的策略,我们可以把并发的级别分为阻塞、无饥饿、无障碍、无锁、无等待几种。阻塞一个线程是阻塞的,那么在其他线程释放资源之前,当前线程无法继续执行。当我们使用synchronized关键字或者重入锁时,我们得到的就是阻塞的线程。synchronize关键字和重入锁都试图在执行后续代码前,得到临界区的锁,如果得不到,线程就会被挂起等...

2019-11-27 15:16:26 117

原创 java高并发系列-第一篇:必须知道的几个概念

同步(Synchronous)和异步(Asynchronous)同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。整个过程,不会阻碍调用者的工作。如图:上图中显示了同步方法调用和异步方法调用...

2019-11-27 14:27:01 104

原创 Redis缓存、高可用、持久化(下)

一,Redis作缓存服务器​ 本篇博客是接着上一篇博客未分享完的技术点。​ redis作为缓存服务器是众多企业中的选择之一,虽然该技术很成熟但也是存在一定的问题。就是缓存带来的缓存穿透,缓存击穿,缓存失效问题,继而引用分布式锁。1.1,缓存穿透​ 在如今的项目中大多采用垂直的MVC架构,由service层去调用DAO层,然后DAO层再去查询数据库。而redis作为缓存服务器就是在s...

2019-11-20 15:56:21 90

原创 Redis的五种数据结构原理分析(中)

本章主要内容简单介绍redisredis中的五种数据结构分析应用场景分析总结关于Redisredis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash五种数据结构。除此之外,通过复制、持久化和客户端分片等特性,用户可以很方便地将redis扩展成一个能够包含数百GB数据和每秒处理上百万次...

2019-11-19 16:10:39 83

原创 Redis的常用命令与Java整合及高级应用篇(上)

一,redis是什么?​ 首先数据库分为关系型数据库和非关系型数据库,关系型数据库是采用关系模型来组织数据的数据库,简单来说就是二维表格模型,同时保证事务的一致性。​ 相反非关系型数据库采用key-value形式进行存储,是一种数据结构化存储方法的集合,具有分布式性质。​ Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(...

2019-11-15 15:32:53 184

原创 牛B的MySQL学习笔记

Windows服务-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)连接与断开服务器mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VAR...

2019-11-14 17:44:50 71

原创 Mysql系列 - 第二十七篇:mysql数据库如何确保数据不丢失?有几点值得我们借鉴

这是Mysql系列第27篇。本篇文章我们先来看一下mysql是如何确保数据不丢失的,通过本文我们可以了解mysql内部确保数据不丢失的原理,学习里面优秀的设计要点,然后我们再借鉴这些优秀的设计要点进行实践应用,加深理解。预备知识 mysql内部是使用b+树的结构将数据存储在磁盘中,b+树中节点对应mysql中的页,mysql和磁盘交互的最小单位为页,页默认情况下为16kb,表中的数据...

2019-11-14 15:40:56 838

原创 Mysql系列 - 第二十六篇:聊聊mysql实现分布式锁?

这是Mysql系列第26篇。本篇我们使用mysql实现一个分布式锁。分布式锁的功能 分布式锁使用者位于不同的机器中,锁获取成功之后,才可以对共享资源进行操作 锁具有重入的功能:即一个使用者可以多次获取某个锁 获取锁有超时的功能:即在指定的时间内去尝试获取锁,超过了超时时间,如果还未获取成功,则返回获取失败 能够自动容错,比如:A机器获取锁lock1之后,...

2019-11-14 15:39:05 87

原创 Mysql系列 - 第二十五篇:sql中where条件在数据库中提取与应用浅析

这是Mysql系列第25篇。读本篇文章之前,需要先了解一些知识: 什么是索引? mysql索引原理详解 mysql索引管理详解 如何正确的使用索引? 上面3篇文章没有读过的最好去读一下,不然后面的内容会难以理解。问题描述一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣。当然,要完整描述一条SQL在数据库中的生命周期,这是一...

2019-11-14 15:38:04 176

原创 Mysql系列 - 第二十四篇:如何正确的使用索引?

这是Mysql系列第24篇。学习索引,主要是写出更快的sql,当我们写sql的时候,需要明确的知道sql为什么会走索引?为什么有些sql不走索引?sql会走那些索引,为什么会这么走?我们需要了解其原理,了解内部具体过程,这样使用起来才能更顺手,才可以写出更高效的sql。本篇我们就是搞懂这些问题。读本篇文章之前,需要先了解一些知识: 什么是索引? mysql索引原理详解 ...

2019-11-14 15:36:08 180

原创 Mysql系列 - 第二十三篇:MySQL索引原理详解(下)

这是Mysql系列第23篇。环境:mysql5.7.25,cmd命令中进行演示。代码中被[]包含的表示可选,|符号分开的表示可选其一。关于索引的,可以先看一下前2篇文章: 什么是索引? mysql索引原理详解 本文主要介绍mysql中索引常见的管理操作。索引分类分为聚集索引和非聚集索引。聚集索引每个表有且一定会有一个聚集索引,整个表的数据存储在聚集索...

2019-11-14 15:33:37 105

原创 Mysql系列 - 第二十二篇:MySQL索引原理详解(上)

这是Mysql系列第22篇。背景使用mysql最多的就是查询,我们迫切的希望mysql能查询的更快一些,我们经常用到的查询有: 按照id查询唯一一条记录 按照某些个字段查询对应的记录 查找某个范围的所有记录(between and) 对查询出来的结果排序 mysql的索引的目的是使上面的各种查询能够更快。预备知识什么是索引?上一篇中有详细...

2019-11-14 15:32:12 145

原创 Mysql系列 - 第二十一篇:什么是索引?

这是Mysql系列第21篇。本文开始连续3篇详解mysql索引: 第1篇来说说什么是索引? 第2篇详解Mysql中索引的原理 第3篇结合索引详解关键字explain 本文为索引第一篇:我们来了解一下什么是索引?路人在搞计算机之前,是负责小区建设规划的,上级领导安排路人负责一个万人小区建设规划,并提了一个要求:可以快速通过户主姓名找到户主的房子;让路人出个好的解...

2019-11-13 10:42:27 88

原创 Mysql系列 - 第十九篇:游标使用

这是Mysql系列第19篇。环境:mysql5.7.25,cmd命令中进行演示。代码中被[]包含的表示可选,|符号分开的表示可选其一。需求背景当我们需要对一个select的查询结果进行遍历处理的时候,如何实现呢?此时我们需要使用游标,通过游标的方式来遍历select查询的结果集,然后对每行数据进行处理。本篇内容 游标定义 游标作用 游标使用步骤 ...

2019-11-13 10:32:08 155

空空如也

空空如也

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

TA关注的人

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