- 博客(86)
- 收藏
- 关注
原创 错误记录:push时出现fatal: Authentication failed
除了网上说的删除凭证之类的,还有一个就是他填的不是git的账号和密码,是填的你要push的那个平台的的注册账户和登陆密码。
2022-02-05 18:47:28
460
原创 POI及EasyExcel
用于批量数据的导入和导出。POI和EasyExcel都是可以操作excel的第三方组件。POI依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>5.2.0</version> </dependency> <!--0
2022-01-29 16:21:02
2643
原创 SpringBoot:文件上传
文件上传原理 1. 文件上传的目的是实现资源共享。 2. 把用户电脑中的资源复制到服务器的过程称之为文件上传。 3. 底层是通过IO流实现的。使用SpringBoot实现文件上传搭建一个SpringBoot工程准备一个页面文件上传的页面<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title>&l
2022-01-27 08:30:46
1010
原创 git学习笔记
准备工作1.常用的Linux命令2.配置自己的用户名和密码git config --global user.name zjqgit config --global user.email 794077528@qq.comGIT基本理论工作分区Workspace:工作区,本地存放代码的地方。Index/Stage:暂存区,用于临时存放,实际上是一个文件,保存即将提交的文件列表信息。Repository:本地仓库区,Head指向最新放入仓库的版本。工作流程把文件加入暂存区 git
2022-01-24 15:33:37
521
原创 MybatisPlus:代码生成器
首先第一步导入依赖,这是最重要的一步,依赖版本对应不上后面全白扯。这个版本的mp是不需要那个genarator的依赖的,请放心食用。 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</
2022-01-24 10:10:58
184
原创 MybatisPlus学习笔记
准备工作创建数据库导入数据idea连接数据库:导入依赖,编写配置文件,确定数据库连接正常。快速入门创建一个mapper接口,这里以UserMapper为例,继承BaseMapper 中间的泛型填要操作的实体类,我们这里就填User。然后在mapper接口上标注@Mapper并在主启动类上标注@MapperScan("cn.zjq.mapper")UserMapperimport cn.zjq.pojo.User;import com.baomidou.mybatisplus.core.m
2022-01-17 22:06:58
482
原创 项目实战:前端页面的编写与Ajax
通过调用jQuery内部封装的$.ajax()函数发送异步请求,依靠的是JavaScript提供的一个对象xhr(xmlhttpresponse)。ajax函数内部需要传递一个方法体作为方法的参数,用一对大括号来包裹,方法体内用逗号分隔多个参数,采用参数名称:参数内容 的格式。参数是给定的不可以随意定义。参数的声明顺序没有要求。语法结构:$.ajax({ url:"", type:"", data:"", success:function(){ }, error:function(){
2022-01-17 14:01:05
416
原创 SpringBoot项目实战:业务层开发
标准业务层包结构:自定义异常结构继承体系创建一个IUserService接口:public interface IUserService { //用户注册 void reg(User user);}创建实现类:注意!@Service这个注解是加在实现类上的,如果不加会导致springboot找不到实现类。md5加密算法:考虑到密码以明文显示不安全,这里多加一个md5加密。存入数据库的密码都是加过加密之后的字符串,增加了数据库的安全性。package com.zjq.s
2021-12-29 10:07:26
942
原创 SpringBoot项目实战:持久层开发
这里以UserMapper为例,首先需要创建对应的实体类User类,我们通过观察可以看出多个类拥有同一些字段,我们可以把这些字段抽取成一个公共基类这样方便我们管理。package com.zjq.store.entity;import java.io.Serializable;import java.util.Date;public class BaseEntity implements Serializable { private String createdUser; pri
2021-12-27 18:45:24
404
原创 SpringBoot项目实战:搭建环境
按常规搭建好一个项目之后选择mysql、mybatis、web支持,项目创建完成之后先加入数据库的配置文件。spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306/store?useUnicode=true&CharacterEncodeing=utf-8&serverTimezone=UTC driver-class-name: com..
2021-12-20 10:20:28
906
原创 Java基础之反射很重要
获取对象的方法只要元素类型和维度一样返回的就是同一个class对象类加载的内存分析类加载主要经历三个阶段加载:把.class文件加载到内存中,生成一个Class对象。链接:先检查代码是否符合规范确保没有安全方面的问题,然后开始为静态变量开辟内存空间,这些空间都在方法区中进行分配,把常量池中的符号指向引用地址。初始化:clinit方法把所有静态变量的赋值操作和静态代码合在一起执行一遍完成初始化。什么时候会发生类的初始化主动引用:会发生类的初始化虚拟机启动时会先加载main方法所在的类
2021-12-15 20:02:46
376
原创 SpringBoot:高级特性
Profile环境切换配置文件可以写多个通过application-xxx.yaml来区别不同的生产环境。比如这里创建了三个配置文件,不加后缀的是默认配置环境,项目启动时默认配置文件加载,根据spring.profile.active来选择不同的配置文件激活,默认配置和指定环境的配置文件都生效,如果有同名的配置则指定生产环境生效。application.yamlspring: profiles: active: dev # dev环境激活application-dev.y
2021-12-14 15:53:00
187
原创 SpringBoot:指标监控
依赖 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star
2021-12-14 10:05:08
1561
原创 SpringBoot:整合mybatis-plus
准备数据库创建表CREATE TABLE USER ( id BIGINT(20) NOT NULL COMMENT ' 主键ID' , NAME VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名' , age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR (50) NULL DEFAULT NULL COMMENT ' 邮箱' , PRIMARY KEY (id) ); 插入数据I
2021-12-06 16:53:50
963
原创 SpringBoot:mybatis数据源(注解版)
编写了Mapper接口的情况下直接在上面加上对应标签的注解即可完成sql语句的编写,@Select @Insert @Delete @Update 这样可最直接代替xml文件import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Select;@Mapperpublic interface AccountMapper { @Select("SELECT COUNT(*) FROM my
2021-12-04 11:49:21
356
原创 SpringBoot:mybatis数据源
导入starter<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --><dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId..
2021-12-04 10:33:56
452
原创 SpringBoot:Druid数据源
基本步骤导入jdbc场景<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId&g
2021-12-04 09:41:46
338
原创 原生组件的注入方式
web三大原生的组件:servlet、filter、listener启动类上加一个注解扫到我们自定义的组件的包@ServletComponentScan(basePackages = "com.example.boot2admin.servlet")方法一servlet@WebServlet(urlPatterns = "/myservlet")public class MyServlet extends HttpServlet { @Override protected v
2021-11-30 09:49:26
96
原创 springboot艰难的文件上传之路
最初尝试单文件和多文件的上传前端页面<form role="form" th:action="@{/fileinputtest}" > <div class="form-group"> <label for="exampleInputFile">单文件上传</label>
2021-11-29 15:40:01
324
原创 springboot:拦截器
自定义一个拦截器实现HandlerInterceptor接口,然后创建一个配置类实现WebMvcConfigurer接口,用配置类的addInterceptor方法向容器中添加拦截器。代码自定义拦截器package com.example.boot2admin.config;import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;import
2021-11-27 10:36:34
293
原创 Thymeleaf:数据遍历
<tr class="gradeX" th:each="user,status:${users}" > <td th:text="${status.count}"></td> <td th:text="${user.name}"></td> <td th:text="${user.password}"></td> </tr&...
2021-11-27 09:49:38
2759
原创 Thymeleaf:抽取公共页面
首先先新建一个common.html用来存放所有的公共部分方法一公共部分加上th:fragment<!-- left side start--><div class="left-side sticky-left-side" th:fragment="side">公共部分</div><!-- left side end-->使用时两种语法都可<div th:insert="common::head"></div>
2021-11-27 09:04:09
445
原创 springboot:显示用户名的方法
thymeleaf直接从session中取值session.setAttribute("LoginUser",user);两种写法都可<span th:text="${session.LoginUser.name}"></span> <span>[[${session.LoginUser.name}]]</span>实体类public class User { String name;
2021-11-26 10:50:02
2003
原创 SpringBoot笔记:注解传参
文章目录作用区别代码演示@PathVariable@RequestParam作用他们两个都可以传参区别@PathVariable是利用路径传参,这个参数是包含在路径里的例如/car/{id},你可以传/car/1,这个数据大概率是写死的,也就是你事先知道按下这个按钮会关联到哪个id上,提前把他写死。maybe…@RequestParam是请求传参,最典型的是form表单提交,他解析你表单里的内容,即请求体。但是Controller的路径里是不包含参数的,比如/car,后面的参数是表单或者你自己通过
2021-10-24 11:30:38
4196
原创 SpringBoot笔记:四种提交方式
文章目录Rest风格代码实现Rest风格rest风格就是同一路径对应不同提交方式实现不同的功能,提交方式有四种postgetputdelete代码实现源码中发现我们需要配置一个mvc: hiddenmethod: filter: enabled: true然后在表单中多提交一个隐藏项,因为表单提交只支持get和post<form action="/user" METHOD="post"> <input type="hidden" name="_metho
2021-10-24 10:35:50
3086
原创 SpringBoot2 笔记 Web开发篇
文章目录静态资源静态资源/static (or /public or /resources or /META-INF/resources)访问:当前项目根路径/ + 静态资源名如果有静态资源和请求重名了默认先走Controller静态资源路径:spring: resources: static-locations: classpath:/自定义文件夹名称/静态资源前缀:当前项目跟路径 + 访问前缀 + 静态资源名spring: mvc: static-path
2021-10-20 08:48:18
82
原创 SpringBoot2 笔记(基础部分)
依赖管理父项目做依赖管理spring-boot-starter-parent中spring-boot-dependencies的基本jar包的版本号。我们无需手动输入版本号。除非引入的jar包springboot没有。开发导入项目场景<!--所有场景启动器最底层的依赖都会依赖一个 spring-boot-starter --> <dependency> <groupId>org.springframework.boot</groupId
2021-10-16 15:35:18
100
原创 算法:堆排序
文章目录堆的概述堆的分类堆的基本操作heapInsert描述代码展示Heapify描述代码展示桶排序堆的概述堆的结构是一个满二叉树,满二叉树即从左到右依次变满的树。堆用数组表示用依次为根左子树右子树。比如下图的树用数组表示就是{9,5,7,1,2,4,6}堆的分类大根堆:即每颗子树的最大值都是该子树的根。比如下图这颗树就是一个大根堆小根堆就是每颗子树的最小值都是该子树的根。堆的基本操作heapInsert描述用户给出一个数,将他插入数组并把数组变成大根堆。首先我们需要定位某个元素的父
2021-10-11 20:29:37
76
原创 ssm项目:登录逻辑
UserController public String login(Model model, HttpSession session, @Param("username") String username, @Param("password") String password){ boolean login = userServiceImpl.Login(model, session, username, password);
2021-10-05 10:28:01
361
原创 ssm静态资源无法加载
文件目录原路径<img id="logo" src="../images/logo.png"/>不成功修改为<img id="logo" src="${request.getContextPath()}/images/logo.png"/>成功了
2021-10-04 18:41:43
91
原创 ssm整合freemaker
templateLoaderPath和freemarkerSettings爆红重新导这个包<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-suppo
2021-10-04 17:56:32
196
1
原创 SSM框架源码剖析学习笔记:Bean的创建
文章目录Bean的注册如何理解容器Bean的生命周期invokeInitMethodsBean的注册Bean的注册方式主要有两种:配置文件和注解,这两种方式的本质都是提供Bean的基本信息,最终实现BeanDefinition接口通过反射来创建Bean实例,这两种方式分别通过解析字符串和创建docment对象来提供Bean的基本信息。xml文件中的${}占位符时通过BeanFactoryProcessor的实现子类PlaceHolderConfigurationSupport来解析的,BeanDef
2021-09-30 22:05:37
162
原创 ssm问题记录:NoSuchBeanDefinitionException: No qualifying bean of type ‘xxxl‘ available
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘userController’: Unsatisfied dependency expressed through field ‘userService’; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionExcept
2021-09-29 18:28:51
217
原创 MySQL:触发器的实际应用
mysql的触发器相当于一个联动装置,当两个表有关联的时候,删除一个表的任意一个记录其他表的记录需要修改的时候我们可以使用mysql的触发器。举个????现在有三张表books表user表借书表现在的逻辑是这样的,如果借书表里多一条记录,那books表的某一本书的可借书本数量必然会减一。如果user或者books表里删除一条记录,那借书表中关于这个本书或者这个用户的所有记录都应该抹除,否则外键就不成立了。这三个语句我放在这了,还有一些需要强调的细节。如果是update 新增数据的代号是
2021-09-25 21:28:40
270
原创 算法:Hanoi塔问题
文章目录什么是汉诺塔思考代码展示参考资料什么是汉诺塔将A塔上n个金属盘片移动到C塔上,一次移动一个盘;无论何时,小盘在上,大盘在下。思考这个问题应该使用递归的方法思考,也就是说无论如何,第n个塔片最终应该放在C的最底下,所以必须保证C上没有塔片,且A上只有第n个塔片,所以第一步是把第1~(n-1)个塔片全部搬到塔B上,并且是从上到下从小到大依次排列的,先不要想怎么做。这个时候我们就可以轻松的把第n个移动到塔C的最下端了。那么接下来应该是n-1移动到塔C,也是一样的原理先把他上面那n-2个家伙
2021-09-24 10:42:36
225
原创 算法:快速排序与荷兰国旗问题
文章目录荷兰国旗算法描述荷兰国旗代码展示快排算法描述快排代码展示在聊快速排序之前,我们先解释一下荷兰国旗,即把一个数组分成三个部分,我们一般选最后一个元素作为基准值,即大于这个数的全部在左边,小于这个数的全部在右边,等于的在中间。举个例子:arr{1,5,3,7,4,2,3,4},选取4做基准值,把他排成{1,3,2,3,4,4,7,5}大于小于区域的数顺序不要求。荷兰国旗算法描述首先第一步设less指针为-1,more指针为length-1。你可以想象成less是一个小于区域的右边界而more是大
2021-09-22 21:19:52
1058
原创 算法:小和问题
文章目录问题描述算法思路代码展示问题描述把每一个数左边比当前数小的数累加起来,叫做这个数组的小和。求出指定数组的小和。算法思路和归并排序思路大致一样,只是要搞清楚return小和的值,是左侧数组求小和+右侧数组求小和+左右两侧归并在一起小和。如果任意一指针p1或p2越界,就不会再增加小和了,因为他们自身已经排好序,所以他们的小和已经累计过了。当两个指针都没过界时,小和是[最右侧指针-当前p2指针+1(加上p2当前指的这个数)]*arr[p1]代码展示 //小和问题 //每一个数左
2021-09-22 09:17:34
271
原创 springboot:shiro登录拦截
shiro的三大对象Subject:是指用户,即与application进行交互的第三方,不一定是人,也可能是另一个程序。每一个subject都要绑定一个subjectMannger。SubjectMannger:SecurityManager是Shiro体系结构的核心,并充当一种“伞”对象,该对象协调其内部安全组件,这些安全组件一起形成对象图。但是,一旦为应用程序配置了SecurityManager及其内部对象图,通常就不理会它。Realm:本质上是特定于安全性的DAO:它封装了数据源的连接详细信
2021-09-18 21:01:13
524
原创 算法:归并排序
算法描述归并排序运用了二分法和递归的原理算法整体分为两个部分递归部分:把待排序的数组等分成两份,把两份分别排好序。再合并到一起合并部分然后使用两个指针p1和p2,假设这两份为两个数组(这里只是为了好描述实际算法中并不存在这两个数组)a和b。指针p1指向a[1],p2指向b[1],两者进行比较,小的数放入一个新数组help,再把help拷贝回原数组.图解代码展示//递归 //归并排序 //利用二分法调用自身将两边排好序然后将两个数组合并 public static
2021-09-18 20:31:36
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅