- 博客(272)
- 资源 (9)
- 收藏
- 关注
原创 MySql根据不同条件查询同一个字段进行连接查询并显示为两个字段
以user_goods表为主表,根据不同条件,对com_dictionary表进行左连接查询,因为这里涉及到同一个表同一个字段dictionary_code,但是要根据不同条件查询出对应的记录并且拆分为两个字段显示,所以要左连接两次,将其看作两个单独的表进行关联查询即可。使用连接查询,JOIN…ON语法后面可以跟多个条件。
2023-03-19 21:22:02
1185
原创 git reset命令的三种模式
有时,我们用git commit代码时,发现commit的内容有误或者有些文件不小心被commit了,这个时候就需要撤销这一次的commit操作,通常可以使用git reset命令来实现。用一句话概括该命令:git reset - Reset current HEAD to the specified state简单概括就是让HEAD这个指针指向其他的commit节点。git reset命令的语法格式如下:git reset [--soft | --mixed | --hard] [HEAD]
2021-05-22 10:02:11
1483
原创 如何在IDEA中快速找到指定类的Maven依赖
问题我们平时使用IDEA开发Java项目时,有时可能想使用其他项目中的某个类,这个时候通常需要在pom.xml中添加该类对应的Maven依赖,但是如果忘记了依赖怎么写怎么办呢?IDEA为我们提供了对应的查找类依赖的功能。解决方案这里以查找org.apache.commons.lang.StringUtils类的依赖为例进行演示。1、在项目External Libraries下找到StringUtils类对应jar包的artifactId,用于后续搜索之用。2、在Maven视图中,点击指定类对应的
2021-05-22 09:44:02
6883
2
原创 POI实际应用之POI简介
POI是什么?Apache POI是Apache软件基金会的开放源码函式库,它提供了一系列API给JAVA程序实现对Microsoft Office格式文档的读写功能。官网地址:http://poi.apache.org对于不同格式的文档,POI提供了不同的结构来实现读写功能:HSSF,提供对Microsoft Excel格式文档的读写功能(03版Excel,文件扩展名为.xls,最多只能存65536行数据)。XSSF,提供对Microsoft Excel OOXML格式文档的读写功能(07版E
2020-12-11 15:24:58
1344
原创 对象存储OSS之头像上传实现
学习完了OSS,我们来实现一个头像上传功能。基本思路就是在前端上传一个本地文件,点击上传按钮将其上传到阿里云服务器上,后台文件上传功能需要使用到OSS的API来实现。头像上传1、在前端项目中新增文件上传页面form.vue,使用image-cropper组件来显示头像,添加更换头像按钮,绑定点击事件,并向后台上传接口发送请求(在image-cropper组件中配置:url属性)。<template> <div class="app-container"> <e
2020-12-11 15:21:41
784
1
原创 对象存储OSS之测试OSS的基本API
经过之前的学习,我们已经开通了阿里云OSS服务并配置了测试账号权限,接下来就可以开始学习OSS的基本API了。如何快速的掌握使用一门技术?快速掌握使用一门技术,是每个程序员都要掌握的基本能力。一般只需要做到以下两点:1、查看官方文档2、练习基本的API阿里云OSS帮助文档阿里云OSS的API都在帮助文档里,我们首先要做的就是找到帮助文档。步骤如下:1、进入概览页面,点击右上角“开始使用阿里云OSS”。2、打开帮助文档,往下拉可以找到OSS针对不同编程语言提供的API和SDK包。我们这里点击
2020-12-11 15:11:19
2942
原创 对象存储OSS之获取测试账号权限
之前我们学习了如何开通阿里云OSS服务和创建Bucket,并且上传了一张图片,接下来就来学习一下如何获取测试账号权限。获取测试账号权限1.在Bucket列表页,点击右上方账号头像,点击“AccessKey管理”。2、在弹出的“安全提示”框中点击“开始使用子用户AccessKey”。AccessKey是访问阿里云API的密钥,具有该账户完全的权限。注意这里为了安全必须选择使用子权限。3、点击“用户组”,然后点击“创建用户组”,在弹出的表单中填写用户组名称、显示名称和备注,然后点击“确定”,然后出现
2020-12-11 15:07:05
714
原创 对象存储OSS之阿里云OSS介绍及开通
数据、文件存储方式一般,数据、文件的存储主要有以下几种方式:MySQL数据(MySQL)+文件(本地IO流)数据(MySQL)+缓存(Redis)+文件(服务器集群、fastDFS(集群)、hdfs(大数据))数据(MySQL)+缓存(Redis)+文件(OSS)对象存储OSS什么是OSS?对象存储OSS是为了解决海量数据存储和弹性扩容问题,我们这里采用的是阿里云OSS存储。阿里云官网对对象存储OSS的介绍如下:海量、安全、低成本、高可靠的云存储服务,提供99.9999999999
2020-12-11 15:02:53
4480
原创 前后端联调实例-讲师管理
之前学习了一下前后端联调的一般步骤和Nginx的简单配置,现在以讲师管理功能为例来实战一下。项目环境后端:SpringBoot + MyBatisPlus +MySQL+Nginx前端:vue-cli + axios后端1、编写讲师管理Controller,包含根据id删除讲师、分页查询讲师列表、新增讲师等请求接口。@Api(description = "讲师管理")@RestController@RequestMapping("/admin/edu/teacher")@CrossOrig
2020-11-01 18:14:20
627
原创 前后端联调的一般步骤和Nginx简单配置
前后端联调的一般步骤1、创建前端工程(这里创建的是vue-cli项目)2、编写后端登录业务3、替换页面元素为自己需要的,比如图标,标题之类的4、编写前端页面Vue组件5、编写跳转到组件的路由(router/index.js)6、如果需要从后端获取数据,使用Axios异步通信,默认框架中使用了request封装请求BASE_API:'"http://localhost:8120'7、编写处理后端接口的js函数import request from '@/utils/request'ex
2020-10-31 01:40:45
10951
原创 WunianEdu系统开发-底层微服务搭建
数据库搭建创建数据库wunian_edu,创建多张数据库表并插入一些数据。建表SQL如下:CREATE TABLE `edu_chapter` ( `id` char(19) NOT NULL COMMENT '章节ID', `course_id` char(19) NOT NULL COMMENT '课程ID', `title` varchar(50) NOT NULL COMMENT '章节名称', `sort` int(10) unsigned NOT NULL DEFAULT.
2020-10-31 01:37:18
272
原创 WunianEdu系统简介
功能简介WunianEdu系统是以提高IT人员技能为核心,采用个性化、随到随学的学习模式, 为学员提供高效学习路线,打造最适合在线学习的优质教学产品和服务。WunianEdu是一个B2C模式的职业技能在线教育系统,分为前台用户系统和后台运营平台。前台用户系统包括课程、问答、文章三大部分。后台运营平台包括会员管理、讲师管理、课程管理、文章资讯、统计分析等系统功能。系统使用了前后端分离架构。后端的主要技术架构为:SpringBoot + SpringCloud + MyBatis-Plus + My
2020-06-13 23:05:36
448
原创 浅谈在线教育
什么是在线教育?在线教育,是以网络为媒介的教学方式,通过网络,学员与教师即使相隔万里也可以开展教学活动;此外,借助网络课件,学员还可以随时随地进行学习,真正打破了时间和空间的限制,对于工作繁忙,学习时间不固定的职场人而言网络远程教育是最方便不过的学习方式。起源在线教育起源于一位名为萨尔曼·可汗的孟加拉裔美国人,他在美国创办了可汗学院。他仅仅靠自己一个人就制作了有关数学、物理、化学、生物、天文学等科目2300多部教学视频,利用视频技术改革传统教学手段,向全世界提供免费的高品质教育。全球有5600万中小学
2020-06-11 00:10:38
3318
原创 MyBatis-Plus快速入门
简介什么是MyBatis-Plus?MyBatis-Plus(以下简称MP),为简化开发而生。MP是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变。MP的特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持
2020-06-09 00:10:17
477
原创 Element-ui和vue-element-admin学习
Element-ui什么是Element-ui?根据官网的说法,Element-ui,是一套为开发者、设计师和产品经理准备的基于Vue 2.0的由饿了么公司出品的桌面端组件库。官网:https://element.eleme.cn/#/zh-CN如何使用?1、创建文件夹element-ui。2、下载组件。npm install vue #安装Vuenpm i element-ui -S #安装Element-ui3、为了代码更加清爽,可以将主要依赖vue.min.js和elem
2020-05-27 00:23:05
10235
原创 标准前端化工程 Vue-cli
知识回顾在学习Vue-cli之前,我们已经学习了前端体系、前后端分离的演变、Vue入门、Vue的基本语法、Vue组件、Vue路由、Axios等内容。接下来我们就来学习标砖前端化工程Vue-cli。Vue-cli什么是Vue-cli?Vue-cli是官方提供的一个脚手架工具,我们可以利用它快速生成前端化的工程模板,十分方便好用。其功能主要有:统一的目录快速调试单元测试在线运行…环境安装使用npm进行全局安装,如果是首次安装可能速度会有点慢。npm install vu.
2020-05-24 23:17:38
338
原创 Vue快速入门
MVVM模式什么是MVVM模式?MVVM(Model-View-ViewModel)是一种软件架构设计模式,由微软 WPF(用于替代 WinForm,以前就是用这个技术开发桌面应用程序的)和 Silverlight(类似于 Java Applet,简单点说就是在浏览器上运行的 WPF) 的架构师 Ken Cooper 和 Ted Peters 开发,是一种简化用户界面的事件驱动编程方式。 ...
2020-05-04 10:39:02
469
原创 学习Vue之前-快速了解前端体系和前后端分离的演变史
前端体系想要成为真正的互联网Java全栈工程师,前端是绕不开的一门必修课。接下来我们就来认识前端、了解前端、掌握前端,为成为互联网Java全栈工程师而前进。前端三要素前端三要素为:HTML(结构):超文本标记语言(Hyper Text Markup Language),决定网页的结构和内容。CSS(表现):层叠样式表(Cascading Style Sheets),设定网页的表现样式...
2020-04-27 22:11:17
874
原创 大前端进阶
我们知道,前端的基础无非就是:HTML+CSS+JS(jquery)+UI框架+…从现在开始,我们要学习进阶的前端技术,内容包括VSCode的使用、Node.js、ES6语法、NPM、Babel、模块化和Webpack。VSCode的使用VSCode是一个前端的代码编辑器,非常受前端开发者的青睐。我们先来学习一下它的安装和使用方法。1、从官网上下载VSCode,下载地址: https://...
2020-04-26 23:58:22
1900
原创 富文本编辑器Editormd的配置使用
我们经常可以看到各个博客网站中用于编辑文章的富文本编辑器,在富文本编辑器中,我们可以对我们的编辑内容样式进行设置。富文本编辑器一般是通过插件来实现的,我们只需要在页面中配置一下插件提供的一些API即可。本例中使用Editormd来演示如何配置使用富文本编辑器。Editormd简介Editormd是国内开源的一款在线Markdown编辑器,可嵌入的 Markdown 在线编辑器(组件),基于...
2020-04-18 00:09:12
7571
1
原创 SpringSecurity权限控制
初识SpringSecurity学习思路了解SpringSecurity是什么。查看官网简介。简单快速阅读官方文档。经过一段时间的学习,我们知道构建一个SpringBoot项目只需要三步:导入maven依赖。配置相关文件。编写测试代码。安全框架在Web开发中,安全一直是一个十分重要的环节。它是一种非功能性的需求,但是对于一个系统十分重要,我们一般都会使用一些组件...
2020-04-13 11:20:11
1898
1
原创 SpringBoot开发单体应用(三)
单体开发进阶SpringBoot的Web开发之路众所周知,CRUD是每个程序员的必经之路。作为一个初级程序员,只要能够独立开发出一个简单的CRUD系统即可,例如OA系统、CRM管理系统、基于表单的CRUD系统等。简单来说,分布式开发是后端提供接口,前端接收信息进行渲染;单体开发是后端提供数据,前端获取数据进行渲染。从开发流程来说,单体开发和分布式开发本质上并没有区别,只是用到的技术和思...
2020-04-07 13:49:32
981
原创 SpringBoot开发单体应用(二)
页面国际化国际化,英文名叫internationalization,因为中间有18个字母,又叫i18n。我们平时工作或者开发一些网站时,尤其是国际网站,国际化是必须要做的事情。准备工作首先需要保证配置文件的编码格式是UTF-8,否则可能出现页面乱码的情况。选择File->Settings,搜索File Encodings进行设置。测试使用1、建立不同语言的配置文件。在r...
2020-04-06 00:12:41
363
原创 SpringBoot开发单体应用
Web开发探究SpringBoot的最大特点:自动装配。使用SpringBoot的步骤:1、创建一个SpringBoot应用,选择模块、然后等待项目构建完成即可。2、编写一些需要的配置文件。3、专注于编写业务代码。其余东西不需要手动配置。配置相关的类:xxxAutoConfiguration:向容器中自动配置组件。xxxProperties:自动配置类,封装配置文件的内容。静...
2020-04-03 12:18:53
1136
原创 SpringBoot操作数据库
SpringData简介对于数据访问层,无论是SQL还是NoSQL,在SpringBoot 底层都是采用SpringData来进行封装的。官网地址:https://spring.io/projects/spring-data使用IDEA构建项目时,我们可以勾选SpringData相关依赖。如上图界面所示,Spring提供了很多工具供我们使用,它封装了大量的模板,在Template En...
2020-03-31 00:20:52
1845
原创 SpringBoot入门及原理
SpringBoot的诞生什么是Spring?现代化的java开发主要就是面向Spring开发。Spring是一个开源框架,它由Rod Johnson在2003年创建。它是为了简化企业级开发而创建的。Spring是十分优雅的,这是因为它的创始人是一位音乐学博士,某种意义上说,它是一个含有艺术基因的框架。Spring是如何简化开发的?1、JavaBean代表着一个个要new的对象...
2020-03-24 12:45:39
262
原创 深入理解JVM(二)
GC详解GC的作用域GC的作用域如下图所示。关于垃圾回收,只需要记住分代回收算法,即不同的区域使用不同的算法。不同区域的GC频率也不一样:年轻代:GC频繁区域。老年代:GC次数较少。永久代:不会产生GC。一个对象的历程一个对象的历程的如下图所示。JVM在进行GC时,并非每次都是对三个区域进行扫描的,大部分的时候都是对新生代进行GC。GC有两种类型:普通GC...
2020-03-18 23:29:28
305
原创 如何修改Typora中的markdown样式
Typora是一款优秀的markdown文本编辑器,可以用markdown语法来编辑文本的样式,它默认含有GitHub、Newsprint、Night、Pixyll、whitey五种主题。如果对这些主题的默认样式不满意也可以去自定义markdown样式。1.启动Typora编辑器,选择文件-偏好设置。2.在通用-高级设置中勾选开启调试模式。3.在外观-主题中点击打开主题文件夹按钮。4...
2020-03-18 23:22:20
3364
原创 深入理解JVM
JVM的位置JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM的位置如下图所示。JVM运行在操作系统之上,对于不同的操作系统需要运行不同的JVM。因此:Java程序是跨平台的,但JVM不跨平台。JVM的体系架构图JVM的体系架构如下图所示。重点关注...
2020-03-18 00:18:21
260
原创 JUC并发编程(三)
常用辅助类CountDownLatchCountDownLatch,是一种减法计数器。CountDownLatch主要有两个方法:await()会阻塞线程,等待计时器归零。countDown()会令计数器减1。例如,创建6个线程,需要等待这6个线程执行完再在主线程中输出“main End”。代码如下:package com.wunian.juc.help;import jav...
2020-03-18 00:09:48
252
原创 JUC并发编程(二)
读写锁写锁:也叫独占锁,一次只能被一个线程占有。读锁:也叫共享锁,该锁可以被多个线程占有。ReadWriteLock,即读写锁,正如它的名字一样,它包含了读锁和写锁,一个用于只读操作,一个用于写入操作,我们先来看看JDK文档中对它的说明。创建一个读写锁对象:ReadWriteLock readWriteLock = new ReentrantReadWriteLock();加读锁和...
2020-03-07 15:32:17
677
原创 JUC并发编程
JUC是什么?JUC,即java.util.concurrent包的缩写,是java原生的并发包和一些常用的工具类。线程基础知识线程和进程进程:计算机中运行中的程序,如QQ.exe等。线程:进程中执行的具体的任务,如打字、自动保存等。一个进程可以包含多个线程,一个进程至少有一个线程。Java程序至少有两个线程:GC线程和Main线程。并发和并行并发:多个线程操作同一个资源并且交替...
2020-03-04 23:39:14
322
原创 把0到9的数字转换成电话按钮上的字母
问题给定一个包含[0,9]中数字的整数数组,任务是打印所有可能的字母数字可以表示的组合,数字到字母的映射(就像在电话按钮上)正在被跟踪,注意0和1不映射到任何字母。所有映射如下图所示:写一个程序把0到9的数字转换成字母,且程序需要支持将0到99的数字转换成字母。例如:Input:arr[] ={3,4}Output: DG DH DI EG EH EI FG FH FIInput:...
2020-02-26 18:51:41
1688
原创 Spring Cloud服务注册与发现
Spring Cloud服务注册与发现,需要使用到Eureka组件。1.创建maven主工程创建maven主工程springcloud-demo,在pom文件中引入相关依赖,Spring Boot版本为2.0.3.RELEASE,Spring Cloud版本为Finchley.RELEASE,此pom文件作为整个项目的父pom文件,具有依赖版本控制的作用,其他module工程继承此pom。po...
2019-12-29 23:01:15
200
原创 curl的安装与配置
curl简介curl是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。curl还包含了用于程序开发的libcurl。curl的下载安装1.进入官网,找到页面上的curl-7.64.1.cab,点击进行下载 。下载地址:https://skanthak.homepage.t-online.de/...
2019-12-27 19:00:35
1486
原创 查看Java字节码的几种方式
我们都知道,Java字节码文件是不能直接打开的,但是如果我们想查看Java字节码文件怎么办呢?现在就来给大家介绍几种查看Java字节码的方式。Intellij IDEA中查看Java字节码IntelliJ IDEA为我们提供了查看字节码的工具,选中字节码文件,点击View->Show Bytecode即可直接进行查看,非常方便。Eclipse中查看Java字节码在Eclipse中查看...
2019-12-26 09:41:45
640
原创 Spring Cloud常用配置
Spring Cloud的配置一般配置在application.properties或者application.yml文件中,在进行分布式配置时,也会使用到bootstrap.properties或bootstrap.yml配置文件。下面我们就来看看在Spring Cloud中一些经常使用到的配置吧。Eureka配置设置当前实例的主机名称。eureka.instance.hostname...
2019-12-25 11:15:02
458
原创 Netty实现客户端与服务端通信
实现一个客户端与服务端通信的程序,可以使用socket网络编程来实现,而Netty作为一个封装了JDK的NIO通讯的异步事件驱动的网络应用框架,也同样可以实现。1.创建Maven项目,在pom文件中引入Netty依赖。<dependency> <groupId>io.netty</groupId> <artifactId>netty-al...
2019-12-18 18:52:58
842
原创 Netty reactor线程步骤和启动服务流程
reactor线程步骤reactor线程执行主要分为三个步骤,并且这三个步骤是不断的循环执行的。1.轮询注册到reactor线程对应的selector上的所有channel的IO事件。select(wakenUp.getAndSet(false));if (wakenUp.get()) { selector.wakeup();}2.处理产生网络IO事件的channel。pr...
2019-12-18 17:16:59
235
用 Android 实现的多功能媒体娱乐APP(媒体秀)
2023-03-19
用 js+html 实现 坦克大战 游戏
2022-07-04
用 js+html 实现游戏:看你有多色
2022-07-04
用 js+ html 实现一个纸牌游戏
2022-07-04
用 js+html 实现一个打飞机小游戏
2022-07-04
用 js+html 实现一个简易版的计算器
2022-07-02
用 js + html 实现一个网页版日历
2022-07-02
用 js + html 实现贪吃蛇小游戏
2022-05-31
用 js+html 实现一个网页计算器
2022-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人