自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 dynamic-datasource + Greenplum + MySQL 多数据源配置

Greenplum + Mysql 对数据源配置

2022-12-26 17:12:21 325

原创 MybatisPlus 多数据源配置

MybatisPlus 多数据源配置

2022-12-26 17:06:17 2196

原创 Mybatis常用标签

trim 元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是 prefix 和 suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是 prefixOverrides 和 suffixOverrides;正因为 trim 有这样的功能,所以我们也可以非常简单的利用 trim 来代替 where 元素的功能。set 元素会动态地在行首插入 SET 关键字,并会删掉额外的逗号(这些逗号是在使用条件语句给列赋值时引入的)

2022-11-27 17:44:51 227

原创 MySQL 之 InnoDB存储引擎(二)

事务是MySQL区别于NoSQL的重要特征,是保证关系型数据库数据一致性的关键技术。事务可看作是对数据库操作的基本执行单元,可能包含一个或者多个SQL语句。这些语句在执行时,要么都执行,要么都不执行。:语句要么全执行,要么全不执行,是事务最核心的特性,事务本身就是以原子性来定义的。实现主要基于undo log日志。:保证事务提交后不会因为宕机等原因导致数据丢失。实现主要基于redo log日志。:保证事务执行尽可能不受其他事务影响。

2022-11-14 18:52:29 381

原创 MySQL 之 InnoDB存储引擎(一)

InnoDB的逻辑存储结构如下图所示: 表空间是 InnoDB存储引擎逻辑结构的最高层,如果用户开启了参数 `innodb_file_per_table`(在8.0中默认开启),则每张表都会有一个表空间(xxx.ibd),一个MySQL实例可对应多个表空间,用于存储记录、索引等数据。段,又分为数据段(Leaf node segment)、索引段(Non-leaf node segment)、回滚段(Rollback segment),InnoDB是索引组织表,数据段就是 B+ 树的叶子节点,索引段就是 B

2022-11-14 09:40:25 1291

原创 Spring 之 javax.validation

作用:对 Controller 层接口的入参做校验。

2022-11-13 09:40:08 617

原创 @RequestBody 和 @RequestParam注解使用详解

注解@RequestParam接收的参数是来自requestHeader中,即请求头。通常用于GET请求,像POST、DELETE等其它类型的请求也可以使用。注解@RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理非、等类型的数据。通常用于接收POST、DELETE等类型的请求数据,GET类型也可以适用。在GET请求中,不能使用@RequestBody。

2022-11-10 19:03:08 30551 2

原创 Spring 事件发布机制

Spring 事件发布机制使用教程

2022-09-21 19:34:35 1389

原创 Spring 之 AOP

通过方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是的延续,是软件开发中的一个热点,也是框架中的一个重要内容,是的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的降低,提高程序的可重用性,同时提高了开发的效率。AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP()针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的划分。

2022-09-20 19:25:05 362

原创 Java 8 Stream 流根据属性去重

Java 8 Stream流根据属性进行去重操作

2022-09-19 19:39:38 2916

原创 Java 泛型

Java 泛型使用教程

2022-09-15 19:31:30 217

原创 Lombok 之 @Bulider

@Builder

2022-09-14 20:10:16 2427

原创 Optional使用教程

Java 8 之 Optional 使用

2022-09-14 20:01:23 4478

原创 RabbtiMQ

RabbitMQ 入门教程

2022-09-14 19:55:48 1148

原创 MP的几种查询方式

Mybatis-plus查询方法的几种编写方式

2022-07-24 21:31:59 3880

原创 MapStruct

MapStruct的简单使用

2022-07-24 21:29:01 1833

原创 通过方法引用获取方法名

MP lambdaQuery根据方法引用获取属性名底层简单实现

2022-07-24 21:04:05 2736

原创 MP查询条件

MP常见方法

2022-07-21 20:05:47 3189

原创 Gitlib的使用教程

Git集成Gitlib使用教程

2022-07-10 21:58:33 1126

原创 Spring IOC

Spring控制反转和依赖注入

2022-06-20 21:48:15 161 1

原创 MySQL模糊查询详解

ICP

2022-06-18 15:07:56 2589

原创 @Resource遇到的一些坑

问题当我启动项目时报错:Description:The bean 'issueAttachmentDao' could not be injected as a 'com.mapper.SupportIssueAttachmentDao' because it is a JDK dynamic proxy that implements:Action:Consider injecting the bean as one of its interfaces or forcing the

2022-01-13 12:54:56 2964

原创 FormData详解

FormData 接口提供了一种表示表单数据的键值对 key/value 的构造方式,并且可以轻松的将数据通过XMLHttpRequest.send() 方法发送出去,本接口和此方法都相当简单直接。如果表单 enctype 属性设为 multipart/form-data ,则会使用表单的 submit() 方法来发送数据,从而发送数据具有同样形式。构造函数FormData()构造函数用于创建一个新的FormData对象。var formData = new FormData(form)

2022-01-08 22:22:43 55331 5

原创 MyBatis的参数映射

MyBatis的参数映射不同于字段映射,参数映射中的"参数"是指传入SQL语句的参数,而字段映射指的是将JDBC ResultSets数据映射成JavaBean。MyBatis的参数映射配置MyBatis的参数映射利用的属性是:parameterType。parameterType,将会传入这条语句的参数的类全限定名或别名。这个属性是可选的,因为 MyBatis 可以通过类型处理器(TypeHandler)推断出具体传入语句的参数,默认值为未设置(unset)基本类型只含或者.

2022-01-08 20:12:03 2125

原创 StringJoiner

StringJoiner 类,是 Java 8 新增的一个 API,它基于 StringBuilder 构建,用于实现对字符串之间通过分隔符拼接的场景。String 类也于 Java 8 新增了两个静态重载方法:join(CharSequence delimiter, CharSequence... elements) : String、join(CharSequence delimiter,Iterable<? extends CharSequence> elements) : Strin

2021-12-30 21:54:16 1047

原创 字符串拼接的几种方式

+ 号拼接通过+拼接是最常见的拼接方式,这个应该算是最简单的一种方式了,但是很遗憾得玩告诉你,阿里巴巴在他们的规范里面之处不建议在 for 循环里面使用 “+” 进行字符串的拼接。这里的不建议,其实就是不允许的意思,只是人家说的比较委婉而已。事实上,现在还在拿 “+” 来做拼接的应该是比较少了吧。阿里开发者社区的时候看到一篇文章《为什么阿里巴巴不建议在for循环中使用”+”进行字符串拼接》,里面提到这个 拼接符号 “+” 不是一个运算符重载,Java也并不支持这个所谓...

2021-12-30 21:09:36 24860

原创 根据传入的属性进行排序

实体类public class UserEntity{ /** * 用户主键 */ private Integer id; /** * 用户名 */ private String username; /** * 用户密码 */ private String password; /** * 用户地址 */ private String address;

2021-12-30 20:25:32 840

原创 @RequestMapping的参数和用法

在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置源码:// 该注解说明可以在类和方法上使用// 用于类上:表示类中的所有响应请求的方法都是以该地址作为父路径// 用于方法上: 提供进一步的细分映射信息@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Do

2021-12-25 14:07:56 3291

原创 BeanUtils.copyProperties的使用

BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。如果你有两个具有很多相同属性的JavaBean,需要对象之间的赋值,这时候就可以使用这个方法,避免代码中全是get/set之类的代码,可以让代码简洁明朗更优雅。BeanUtils是深拷贝,还是浅拷贝?是浅拷贝。浅拷贝: 只是调用子对

2021-12-21 21:35:31 1155

原创 WebSocket

WebSocket是一种在单个TCP连接上进行全双工通信的协议WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出

2021-12-20 21:14:04 1908

原创 Java枚举

为什么需要枚举?常量定义它不香吗?为啥非得用枚举?静态常量: /** * 成功 */ public static final int SUCCESS = 1; /** * 失败 */ public static final int FAILURE = 0;对于这种单值类型的静态常量定义,本身也没错,主要是在使用的地方没有一个明确性的约束而已 public void getCode(int code){...

2021-12-17 14:01:25 617

原创 MySQL之COUNT()函数

初识COUNTCOUNT(expr) ,返回SELECT语句检索的行中expr的值不为NULL的数量。结果是一个BIGINT值。如果查询结果没有命中任何记录,则返回0COUNT(常量) 和 COUNT(*) 表示的是直接查询数据库中符合条件的行数。不会忽略列值为NULL而COUNT(列名)表示的是查询数据库符合条件的列且值不为NULL(这里的空不是只空字符串或者0,而是表示null)的行数。COUNT(*)是SQL92定义的标准统计行数的语法,因为是标准语法,所以MySQL数据库进行过很多优化。

2021-12-16 18:19:39 2296 1

原创 函数式接口

jdk8 函数式接口

2021-12-13 12:01:01 692

原创 MultipartFile实现文件的上传和下载

MultipartFile是SpringMVC提供简化上传操作的工具类。在不使用框架之前,都是使用原生的HttpServletRequest来接收上传的数据,文件是以二进制流传递到后端的,然后需要我们自己转换为File类,在Spring 框架中,对于文件上传下载的支持是通过MultipartFile接口来实现的,一个MultipartFile就表示客户端传过来的一个文件,而一个MultipartFile[]数组,则表示客户端传过来的多个文件,这在实现多文件上传非常有用,当然了,通过该接口,你可以获取客户

2021-12-10 16:46:58 12887

原创 Mybatis中@Param的用法和作用详解

@Param用于dao层,是mybatis中的注解使得mapper.xml中的参数与后台的参数对应上,也增强了可读性如果两者参数名一致得话,spring会自动进行封装,不一致的时候就需要手动去使其对应上。即:用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中 。 在方法只接受一个参数的情况下,可以不使用@Param。 在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。 如果参数

2021-11-29 23:19:01 21527 5

原创 SpringMVC

目录什么是MVC回顾ServletSpringMVC执行原理SpringMVC 配置版SpringMVC 注解版小结什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向偶合。 MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。 Model(模型):数据模型,..

2021-11-29 21:54:25 169

原创 Mybatis插入时返回生成的主键

当插入数据之后,mybatis再次查询mysql数据库,获得了注解id,然后填充到person对象的id属性的。在定义xml映射器时设置属性useGeneratedKeys值为true,并分别指定属性keyProperty和keyColumn为对应的数据库记录主键字段与Java对象的主键属性。 <insert id="insertHuman" parameterType="Human" useGeneratedKeys="true" keyProperty="id" keyColumn="i

2021-11-25 14:30:24 1488

原创 Mybatis批量插入

三种批量插入的方式循环插入 foreach标签 批处理数据库和实体类package com.yang.model;/** * Mybatis批量插入测试实体类 * * @Author: chenyang * @Date: 2021/11/25 12:33 */public class Person { /** * 用户名 */ private String name; /** * 用户密码 */.

2021-11-25 14:17:52 874

原创 i++与 ++i

先看一段代码public static void main(String[] args) { int i = 10; int a = 0; int b = 0; a = i++; b = ++i; System.out.println("i= "+i+" a= "+a+" b= "+b); }结果为i= 12 a= 10 b= 12查看字节码文件 0 bipush 10..

2021-10-07 22:01:58 1454

原创 MySQL 视图

视图在数据库中的作用类似于窗户,用户可以通过这个窗口看到只对自己有用的数据。既保障了数据的安全性,又大大提高了查询效率。MySQL 视图(View)是一种虚拟存在的表,同真实表一样,视图也由列和行构成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。数据库中只存放了视图的定义,并没有存放视图中的数据,这些数据都存放在定义视图查询所引用的真实表中。使用视图查询数据时,数据库会从真实表中取出对应的数据。因此,视图中的数据是依赖于真实表中的数据的

2021-10-06 23:11:33 280

空空如也

空空如也

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

TA关注的人

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