IDEA 在远程 Tomcat 上运行项目(亲身避坑版) 服务器:CentOS 7 + Tomcat 8.5.83 + JDK 1.8.0_321开发环境:IDEA 2022.1.4注意:在配置远程运行项目之前,必须确保服务器上 Tomcat 能正常运行,开发环境项目能够正常在本地 Tomcat 调试运行。
Gitlab 数据备份和还原(填坑版) 此文章适用于因更换服务器或者 gitlab 安装方式变更(普通方式 docker)进行数据迁移,或者日常备份还原。前提条件:备份和还原的 gitlab 版本一致!
Docker 搭建 Gitlab(新手村试炼版) 搭建 gitlab 环境除了 gitlab 本身镜像外,还需要 redis 和 postgresql 镜像,docker 命令如下:注意:此处拉取的 13.6.7-ce.0 版本,如果需要进行数据还原,需要确保 gitlab 版本和备份版本一致。
Mybatis Generator 之分页查询 通过之前的基础篇、注释篇和 Lombok 篇,生成的实体类和 Mapper 基本上可以满足大部分常见的业务,但这其中并不包括分页查询。不能分页的查询是没有灵魂的,小编能力有限,只实现了 mysql 的 limit 功能。
Mybatis Generator 之整合 Lombok 继的大胆想法实现后,小编已经开始膨胀,以至于暗中馋上了 Lombok 的身子。别怪小编太下贱,怎奈 Lombok 链式编程等一系列丝滑操作太诱人。要实现这个伟大的目标,需经历以下几个步骤。
Mybatis Generator 之自定义注释 在基础篇中可以看到,生成的 Mapper 和持久化类(实体)中包含了大量的无意义的英文注释,对于实体外的其他类,当然要去掉那些无用的注释。而对于实体类,则有一个大胆的想法——根据 DDL 里面的列注释内容来生成注释。user 表 DDL理想中的实体 User.java要想达到这个目的,需要经历以下两个步骤。
Mybatis Generator 之基础篇 想必经常写业务并且是使用 Mybatis 数据库映射框架的同学都知道,在设计好数据库表结构后要做的就是写出对应的实体和具备基本增删改查功能的 Mapper,这是一个繁琐且枯燥的过程,最让人头痛的是还容易出错,费时费力。而 Mybatis Generator 是一款可以根据数据库表结构自动生成实体和 Mapper 的框架,只需要一定的配置,就可以自动生成满足要求的实体和 Mapper。
EL 获取 cookie 中的中文值乱码问题 1、问题由来众所知周,因为编码问题,如果向 Cookie 中放入中文字符串,将会引发java.lang.IllegalArgumentException: Control character in cookie value or attribute异常。要解决这个问题,需要对中文字符串进行 base64 或者 URLEncoder 编码。而这样又引发新的问题:如果用 EL 表达式获取 Co...
Java 之多线程 1 概述进程进程就是正在运行的程序。进程是系统进行资源分配和调度的独立单位,每个进程都有自己的内存空间和系统资源。多进程的意义:可以在一个时间段内执行多个任务,提高CPU的使用率。线程在同一个进程内可以执行多个任务,而每一个任务都可以看做是一个线程。线程是程序的执行单元(执行路径),是程序使用CPU的最基本单元多线程的意义:提高程序的使用率。因为多个线程共享一个进程的资...
Java 之异常 1 概述Java程序在运行过程中出现的错误,如除数为零、空指针、数组越界等2 分类Throwable:异常类的父类Error:极其严重的问题,如内存溢出,我们不作处理Exception RuntimeException:运行时异常,一般是代码不够严谨导致,需要修改代码,所以也不处理 编译是异常:Exception 中除去 RuntimeException...
Java 集合框架之 Map 1 概述存储的元素以键-值的方式存在2 特点将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射一个值(可以为null)。Map结合的数据结构只针对键有效,与值无关3 Map<K, V> 功能概述添加功能V put(K key, V value):添加元素,若添加的键不存在,则直接保存并返回null。若添加的键已存在,覆盖该键对应的值,并返回原来的值。...
Java 之常见数据结构 (1) 栈 先进后出 举例:子弹夹 (2) 队列 先进先出 举例:火车车厢进出火车站(3) 数组 存储同一种类型的多个元素的容器,可以通过索引访问元素 查询快,增删慢(4) 链表 由一些列的节点组成 节点:由数据域和地址域组成,其中地址域存放的是...
Java 集合框架之 ConcurrentModificationException 1、迭代器原理 java 中提供了很多的集合类,不同集合类的数据结构不同,所以这些集合类的数据存储方式和遍历方式也应该不同,所以无法为所有集合类提供统一迭代器,只能提供一个接口。 通过源码分析可以得知,集合对接口的实现在他们的具体实现类中,并且以私有内部类的方式体现。2、ConcurrentModificationExceptionpublic clas...
Java 集合框架之 Set 1、特点 元素无序(元素的存储顺序和取出顺序不一致)且具有唯一性2、遍历方式 (1) 迭代器(继承自 Collection)public class SetDemo{ public static void main(String[] args) { Set<String> set = new HashSet<String>();...
Java 集合框架之 List 1、特点 元素有序(元素的存储和取出顺序一致)可重复2、List<E> 特有功能 void add(int index, E e):在列表指定位置插入指定元素 void addAll(int index, Collection<? extends E> c):将 c 中所有元素插入到集合的指定位置 E get(...
Java 集合框架之 Collection 1、概述 (1) 集合的由来 为了方便对多个对象进行操作和存储,又因为对象数组的长度和是固定的,且只能存储同一种类型的元素 (2) 集合与数组的区别 数组长度固定,集合长度可变; 数组存储的是同一种类型的元素,而集合可以存储不同类型的元素; 数组元素既可以是基本数据类型,也可以是引用数据类型,集合元素只能是引用类型...
Java 之泛型 1、概述 (1) 泛型的引入 早期使用 Object 类型接收任意的对象类型,但是在实际使用中,会有类型转换问题,存在安全隐患,于是在 JDK5 后引入泛型来解决这个安全问题。class Person{ private String name; private int age; public Person() { ...
STM32 USART DMA 多次发送数据 最近因为公司项目需要,希望使用 USART 通过 DMA 多次发送数据,因为每次发送数据的内容都不一样,所以不能采用 DMA 的循环模式,只能通过 DMA 正常模式、USART 多次请求的方式来实现,下面附上 DMA 的配置代码#define USART USART3 #define DMA_CLK RCC_AHB1Periph_DMA1#define DMA_STR...
STM32 USART 接收任意长度字符 近段时间学习到 STM32 USART 部分,基本上在接收数据的时候都是采用定长,所以一直想实现接收任意长度的字符串。这里的任意长度不是指的无限长,而是在自己定义的缓冲区范围之类。比如说缓冲区的大小是 1024 Byte,那么就能接收不大于 1024 个字符串。当时有两个思路:1、使用结尾标志,如 "\r" 什么的2、定时判断接收数据的长度,如果在规定的时间内长度没有发生变化,证明已经接...