自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学习笔记记录

学习阶段用于记录学习要点

  • 博客(61)
  • 收藏
  • 关注

原创 SpringSecurity权限控制

权限管理过程中的相关概念2.1 主体英文单词:principal使用系统的用户或设备或从其他系统远程登录的用户等等。简单说就是谁使用系统谁就是主体。2.2 认证英文单词:authentication权限管理系统确认一个主体的身份,允许主体进入系统。简单说就是“主体”证明自己是谁。笼统的认为就是以前所做的登录操作。2.3 授权英文单词:authorizatio将操作系统的“权力”“授予”“主体”,这样主体就具备了操作系统中特定功能的能力。所以简单来说,授权就是给用户分配权限整个流

2021-09-02 15:03:08 152

原创 POI使用

引入Excel 的两种形式:Excel2003 : Excel2003是一个特有的二进制格式,其核心结构是复合文档类型的结构,存储数据量较小,后缀:xlsExcel2007 :Excel2007的核心结构是XML类型的结构,采用的是基于xml的压缩方式,使其占用的空间更小,效率更高,后缀:xlsxpoi操作文档结构:HSSF 提供读写xls格式档案的功能。XSSF提供读写xlsx格式档案的功能。常用API:HSSFWorkbook(工作簿)2003版XSSFWorkbook(工作

2021-08-27 16:25:46 174

原创 mybatis自动生成

所需依赖 <!-- 依赖 MyBatis 核心包 --> <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version>

2021-08-20 18:23:38 127

原创 VM centos7配置

网卡配置网卡地址 :/etc/sysconfig/network-scripts/ifcfg-ens33service network restart重启网络服务

2021-06-21 16:47:42 96

原创 JAVA 小案例 巩固基础(非web)

模拟斗地主发牌需求分析:public class ChinesePoker { // 定义牌的花色 static List<String> colors = Arrays.asList("♠", "♥", "♣", "♦"); // 定义牌大小 static List<String> numbers = Arrays.asList("2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4

2021-05-21 16:27:36 108 1

原创 索引结构-优化查询

什么是索引:MySql 官方对索引的定义为:索引(Index)是帮助MySql高效获取数据的数据结构。由此可以得到索引的本质:索引是一种数据结构。可以简单理解为:排好序的快速查找数据结构在数据之外,数据库系统还维护了满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式实例:一般来说 索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式储存在磁盘上。我们平常所说的索引

2021-05-12 16:33:15 271 6

原创 Mysql高级-安装

Linux 安装Mysql官方下载地址这里使用5.5.48的版本,注意自己是32位还是64位查看有没有rpm安装过mariadb : rpm -qa | grep mariadb如果有 移除mariadb : rpm -e --nodeps mariadb-*同理,再看看有没有安装mysql 如果有先卸载然后把残留的文件夹删除,不删除会安装失败的rpm -ivh MySQL-server-5.5.48-1.linux2.6.x86_64.rpm如果出现以下错误原因:这是

2021-04-20 09:37:35 92

原创 Mysql-存储过程-函数-流程控制

变量系统变量全局变量 服务器每次启动将为所有的全局变量赋予初始值,针对所有连接(会话)有效,但不能跨重启会话变量 只在当前会员中有效# 查看所有系统变量SHOW [session] VARIABLES; # 会话SHOW GLOBAL VARIABLES; # 全局# 按条件查询SHOW SESSION VARIABLES LIKE '%char%'# 查看指定的某个系统变量的值SELECT @@tx_isolation;SELECT @@autocommit# 为某个

2021-04-15 16:16:53 139

原创 Mysql-TCL语言

Transaction Control Language 事务控制语言事务的ACID属性1、原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。2、 一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A.

2021-04-13 16:51:38 143

原创 MySql-DML-DDl语言

DML插入一、方式一语法:insert into 表名(字段名,...) values(值,...);INSERT INTO admin(`username`,`password`) VALUES('1','2')特点:1、要求值的类型和字段的类型要一致或兼容2、字段的个数和顺序不一定与原始表中的字段个数和顺序一致但必须保证值和字段一一对应3、假如表中有可以为null的字段,注意可以通过以下两种方式插入null值①字段和值都省略②字段写上,值使用null4、字段和值的个数必须一

2021-04-12 17:31:59 124

原创 Mysql知识点记录-SELECT

DISTINCT:去重(过滤重复数据);select ‘123’ + 90;其中一方为字符型,试图将字符型数值转换成数值型类型,如果转换成功,则继续做加法运算,如果转换失败,则将字符型那一方转换为0只要一方为null 结果就为null模糊查询:like : 通配符:%任意多个,_任意单个betwenn and :在什么范围内 ;例: select * from saly where s betwenn 100 and 200; 就表示 在100 到 200范围内not betwenn

2021-03-30 18:15:42 173

原创 Mybatis自定义插件

即使你没开发过 MyBatis 插件,估计也能猜出来,MyBatis 插件是通过拦截器来起作用的,MyBatis 框架在设计的时候,就已经为插件的开发预留了相关接口,如下:public interface Interceptor { Object intercept(Invocation invocation) throws Throwable; default Object plugin(Object target) { return Plugin.wrap(target, this

2021-03-27 11:23:06 204

原创 Mybatis_高级查询

一对一查询在实际开发中,经常会遇到一对一查询,一对多查询等。这里我们先来看一对一查询。例如:每本书都有一个作者,作者都有自己的属性,根据这个,我来定义两个实体类:public class MyBook { private Integer id; private String name; private Author author; @Override public String toString() { return "MyBook{" +

2021-03-25 17:59:14 141

原创 Mybatis_Mapper

引入 Mapper前面我们所写的增删改查是存在问题的。主要问题就是冗余代码过多,模板化代码过多。发现它有很多可以优化的地方。每个方法中都要获取 SqlSession,涉及到增删改的方法,还需要 commit,SqlSession 用完之后,还需要关闭,sqlSession 执行时需要的参数就是方法的参数,sqlSession 要执行的 SQL ,和 XML 中的定义是一一对应的。这是一个模板化程度很高的代码。既然模板化程度很高,我们就要去解决它,原理很简单,就是前面 Spring 中所说的动态代理。我们

2021-03-25 11:55:05 402

原创 Mybatis入门

1.1 JDBC 存在的问题数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库连接池可解决此问题。Sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变 java 代码。使用 preparedStatement 向占位符号传参数存在硬编码,因为 sql 语句的 where 条件不一定,可能多也可能少,修改 sql 还要修改代码,系统不易维护。对结果集解析存在硬编码(查询列名),sql 变化导致解析代码变化,系统不易维护,如果能将数据

2021-03-24 10:31:52 106

原创 JDK 动态代理 与 CGLIB 动态代理

JDK和CGLib动态代理实现动态代理在Java中有着广泛的应用,如Spring AOP,Hibernate数据查询、测试框架的后端mock、RPC,Java注解对象获取等。动态代理的代理关系是在运行时期确定的。接下来主要阐述两种动态代理的区别。JDK和CGLib动态代理分析自Java 1.3以后,Java提供了动态代理技术,允许开发者在运行期创建接口的代理实例,后来这项技术被用到了Spring的很多地方。JDK动态代理主要涉及java.lang.reflect包下边的两个类:Proxy和Invoca

2021-03-23 11:15:16 141

原创 springmvc-REStful接口/静态资源/拦截器

13.8 SpringMVC 的支持SpringMVC 对 RESTful 提供了非常全面的支持,主要有如下几个注解:@RestController这个注解是一个组合注解:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Controller@ResponseBodypublic @interface RestController { /** * The value may i

2021-03-22 17:22:47 176

原创 springmvc-json 处理

12.1 返回 JSON目前主流的 JSON 处理工具主要有三种:jacksongsonfastjson在 SpringMVC 中,对 jackson 和 gson 都提供了相应的支持,就是如果使用这两个作为 JSON 转换器,只需要添加对应的依赖就可以了,返回的对象和返回的集合、Map 等都会自动转为 JSON,但是,如果使用 fastjson,除了添加相应的依赖之外,还需要自己手动配置 HttpMessageConverter 转换器。其实前两个也是使用 HttpMessageConverte

2021-03-22 16:14:46 134

原创 springmvc-数据回显

11.1 数据回显基本用法数据回显就是当用户数据提交失败时,自动填充好已经输入的数据。一般来说,如果使用 Ajax 来做数据提交,基本上是没有数据回显这个需求的,但是如果是通过表单做数据提交,那么数据回显就非常有必要了。11.1.1 简单数据类型简单数据类型,实际上框架在这里没有提供任何形式的支持,就是我们自己手动配置。我们继续在第 10 小节的例子上演示 Demo。加入提交的 Student 数据不符合要求,那么重新回到添加 Student 页面,并且预设之前已经填好的数据。前端<form

2021-03-22 14:56:23 1883

原创 springmvc-文件上传

springmvc 实现文件上传(上古方案)SpringMVC 中对文件上传做了封装,我们可以更加方便的实现文件上传。从 Spring3.1 开始,对于文件上传,提供了两个处理器:CommonsMultipartResolverStandardServletMultipartResolver第一个处理器兼容性较好,可以兼容 Servlet3.0 之前的版本,但是它依赖了 commons-fileupload 这个第三方工具,所以如果使用这个,一定要添加 commons-fileupload 依赖。

2021-03-22 12:15:31 151

原创 springmvc 参数

@RequestMapping标记请求 URL很简单,只需要在相应的方法上添加该注解即可: @Autowired private HelloService helloService; @RequestMapping("/hello") public ModelAndView hello() { ModelAndView mv = new ModelAndView("hello"); mv.addObject("name", helloSe

2021-03-20 16:24:54 542

原创 springmvc-入门

spring mvc 简介springMVC是一种很流行的web层mvc框架。通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。spring mvc 是spring的一个子框架,拥有spring的特性,比如 依赖注入。Hello mvc依赖: <dependencies> <dependency> <groupId>org.springfra

2021-03-20 11:06:36 72

原创 git知识点

初始化本地仓库git init将本地内容添加至git本地暂存区中git add .将暂存区添加至本地仓库中git commit -m "first commit"添加远程仓库路径git remote add origin url将本地内容push至远程仓库中git push -u origin master更新git pullgit仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。有两种方法可解决这个问题:方法1:强行将代码推到github仓库里面去(推荐,省时省力)git pu

2021-03-20 10:49:16 150

原创 正则表达式

语法一:普通字符字母,数字,汉字,下划线,以及没有特殊定义的标点符号,都是“普通字符”。表达式种的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符。例如:被匹配到的文本,会以黄蓝相隔简单的转义字符:字符作用\n代表换行符\t制表符\\代表\本身\^,\$,\.,\(,\),\{,\},\?,\+,\*,\|,\[,\]匹配这些字符本身语法二:标准字符集合能够与“多种字符” 匹配的表达式注意区分大小写,大写是相反的意思

2021-03-19 10:28:26 62

原创 Java api实现微信同款排序

如图,根据微信中文名字首字母排序。中文转拼音 pinyin4j: <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> public static void main(Strin...

2021-03-17 16:11:27 319 4

原创 Spring入门

为什么使用Spring?1)方便解耦,简化开发(高内聚、低耦合)Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理2)AOP编程的支持Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能声明式事务的支持只需要通过配置就可以完成对事务的管理,而无需手动编程3)方便集成各种优秀框架Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis等)的直接支持4)降低JavaEE AP

2021-03-15 17:31:36 91

原创 Java 文件压缩

依赖: <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.9.7</version> </dependency>utils:package com.example.codergene

2021-02-23 16:00:48 64

原创 Java 獲取路徑

// System.out.println(this.getClass().getResource("").getPath()); // 當前類路徑 System.out.println(this.getClass().getResource("/").getPath()); // 當前類根路徑 String path = System.getProperty("user.dir"); // 當前項目根路徑 // String path = System.getProperty("user...

2021-02-18 15:35:03 56

原创 IDEA快捷键

1.自动补全这个快捷键基本每一行代码都会用上。简直不要太牛逼!如图。使用提示功能之后,光标在小括号里面。这行就差一个;就结束了,换成以前,需要按->到后面去补写一个分号。现在只需要Ctrl + Shift + Enter,就可以实现自动补全末尾的分号。真的很实用啊这个。一旦用上了 ,就不能拜托了类推,下图这种情况 ,就会自动补全{}``是不是很牛。赶紧去试试吧。=========================================================Ctrl

2021-02-05 17:12:17 318

原创 Java 注解/反射

什么是注解?内置注解元注解// 定义一个注解// 定义一个注解@Target(value = { ElementType.METHOD, ElementType.TYPE }) // 使用范围@Retention(value = RetentionPolicy.RUNTIME) // 生效范围@Documented // 表示是否将我们的注解生成在JAVADOC中@Inherited // 子类可以继承父类的注解public @interface MyAnnotaion { //

2021-02-04 11:53:44 52

原创 Java多线程

什么是线程?线程是程序中执行的线程。(来自JDK8API)程序一旦跑起来,就变成了进程,而线程是进程的最小单位。创建方式一: 继承Thread类Thread 类:直接继承于Object ,它是实现了Runnabble 接口的。最基本的创建使用方式:// 方式一 :1. 继承Threadpublic class TestThread extends Thread { // 2. 重写Run方法 @Override public void run() { for (int i =

2021-02-03 12:21:23 149

原创 防抖函数

如果一个函数内 短时间被执行很多遍,可以对其节流: // 节流函数 /** * fun 传入的函数 * delay 多少秒内不执行 * **/ debounce(fun, delay) { let timer = null; return function (...args) { // 如果delay时间内被调用,则取消上一次 if (timer) { clearTimeout

2021-01-29 19:54:51 49 1

原创 better-scroll

BetterScroll 是什么BetterScroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件。它的核心是借鉴的 iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。BetterScroll 是使用纯 JavaScript 实现的,这意味着它是无依赖的。基本使用<div class="wrapper"> <ul class="content"> &

2021-01-28 17:08:57 220

原创 10-Vue网络模块封装

选择什么网络模块?vue中发送网络请求有非常多的方式, 那么, 在开发中, 如何选择呢?选择一: 传统的Ajax是基于XMLHttpRequest(XHR)为什么不用它呢?非常好解释, 配置和调用方式等非常混乱.编码起来看起来就非常蛋疼.所以真实开发中很少直接使用, 而是使用jQuery-Ajax选择二: 在前面的学习中, 我们经常会使用jQuery-Ajax相对于传统的Ajax非常好用.为什么不选择它呢?首先, 我们先明确一点: 在Vue的整个开发中都是不需要使用jQuery了

2021-01-26 12:09:16 177

原创 09-Vue-Vuex

认识Vuex官方解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用 集中式存储管理 应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。状态管理到底是什么?状态管理模式、集中式存储管理这些名词听起来就非常高大上,让人捉摸不透。其实,你可以简单的将其看成把需要多个组件共享的变量全部存储

2021-01-25 17:34:44 60

原创 Vue 脚手架

什么是Vue CLI如果你只是简单写几个Vue的Demo程序, 那么你不需要Vue CLI.如果你在开发大型项目, 那么你需要, 并且必然需要使用Vue CLI使用Vue.js开发大型应用时,我们需要考虑代码目录结构、项目结构和部署、热加载、代码单元测试等事情。如果每个项目都要手动完成这些工作,那无以效率比较低效,所以通常我们会使用一些脚手架工具来帮助完成这些事情。CLI是什么意思?CLI是Command-Line Interface, 翻译为命令行界面, 但是俗称脚手架.Vue CLI

2021-01-22 18:39:10 127

原创 Promise-异步请求封装处理

什么是Promise呢?ES6中一个非常重要和好用的特性就是Promise但是初次接触Promise会一脸懵逼,这TM是什么东西?看看官方或者一些文章对它的介绍和用法,也是一头雾水。Promise到底是做什么的呢?Promise是异步编程的一种解决方案。那什么时候我们会来处理异步事件呢?一种很常见的场景应该就是网络请求了。我们封装一个网络请求的函数,因为不能立即拿到结果,所以不能像简单的3+4=7一样将结果返回。所以往往我们会传入另外一个函数,在数据请求成功时,将数据通过传入的函数回

2021-01-22 16:56:42 1030 1

原创 08-Vue(实战TabBar一)

效果图 。先开发底部导航栏base样式:body { padding: 0; margin: 0;}components :TabBar.vue:<template> <div id="tab-bar"> <!-- 插槽 --> <slot></slot> </div></template><script>import TabBarItem from

2021-01-22 11:49:42 130

原创 07-VueRouter

第一步.导入路由对象,并且调用 Vue.use(VueRouter)第二步:创建路由实例,并且传入路由映射配置第三步:在Vue实例中挂载创建的路由实例第四步:使用路由<router-link>: 该标签是一个vue-router中已经内置的组件, 它会被渲染成一个<a>标签.<router-view>: 该标签会根据当前的路径, 动态渲染出不同的组件.网页的其他内容, 比如顶部的标题/导航, 或者底部的一些版权信息等会和<router-view&gt

2021-01-21 18:08:53 218

原创 Java8新特性-TocalDate,LocalTime,LocalDateTime API

/*** TocalDate,LocalTime,LocalDateTime类的实例是不可变的对象。** 分别使表示使用ISO-8601日历系统的日期,时间,日期和时间。他们提供了简单的日期或时间,*/@Test public void test1() { // 获取 LocalTime lt = LocalTime.now(); // LocalTime LocalDate ld = LocalDate.now(); // localDate LocalDateTime l.

2021-01-21 15:34:18 78

空空如也

空空如也

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

TA关注的人

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