- 博客(76)
- 资源 (1)
- 收藏
- 关注
原创 MySQL 行转列与列传行的使用
文章目录一、MySQL版本二、行转列1.行转列 方法一1.1 建表语句1.2 数据展示1.3 编写SQL1.4 执行结果1.5 计算个人总分数和每门课程平均分数1.5.1 WITH ROLLUP + sum() 方法一1.5.2 UNION + sum() 方法二1.5.2 直接使用sum(),不再使用子查询 方法三2.行转列 方法二2.1 编写SQL2.2 执行结果3.行转列 方法三3.1 编写SQL3.2执行结果三、列转行3.1 建表语句3.2 数据展示3.3 编写SQL3.4 执行结果![在这里插入图
2020-08-13 17:08:16 641
原创 Java 5.原型模式学习
文章目录原型模式1.模式结构图2.模式的结构3.模式的实现3.1实现一3.2实现二原型模式可以复制已有对象,从而创建一个和原型对象相同的新对象。使用这种方式创建对象无需知道对象创建的细节,所以创建效率高效。实现原型结构条件:实现Cloneable接口;重写clone方法;1.模式结构图2.模式的结构抽象原型类:规定了具体原型对象必须实现的接口。具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。访问类:使用具体原型类中的 clone() 方法来复制新
2020-08-07 16:55:40 201
原创 Java 4.建造者模式学习
文章目录建造者模式1.模式结构图2.模式的结构3.模式的实现一4.模式的实现二5.模式的应用场景建造者模式复杂的对象通常由多个子部件按照一定的顺序组合而成。例如汽车中的发动机、方向盘、车架、轮胎;计算机中的主板、cpu、内存、硬盘等等,但是我们在购买过程中并不需要知道汽车和计算机的组装过程,而我们要做只是付钱,拿到商品而已。这些过程性的操作都是在工厂完成定义:将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示;作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象
2020-08-05 17:19:44 183
原创 Java 2.工厂模式学习
文章目录工厂模式简单工厂模式1.模式结构图2.模式的结构3.模式的实现工厂方法模式1.模式结构图:2.模式的结构3.模式的实现工厂模式作用:实现了创建者和调用者的分离(即调用只是调用,创建只是创建)详细分类:简单工厂模式工厂方法模式抽象工厂模式核心本质:实例化对象不使用new,用工厂方法代替;将选择实现类,创建对象统一管理和控制。从而将调用者跟实现类解耦合。三种模式:简单工厂模式:用来生产同一等级结构中的任意产品。(对于增加新的产品,需求扩展已有的代码)工厂方
2020-08-02 16:06:43 166
原创 设计模式
设计模式设计模式是提高代码复用性、可维护性、可读性、稳健性以及安全性的一套方案,1995年,GoF合作出版了《设计模式:可复用面向对象软件的基础》,共收录23种设计模式,也称【GoF设计模式】。优点:提高编程思维、设计等能力使程序更加标准化、代码编制更加工程化,提高软件开发效率,缩短软件开发周期提高代码可重用性、可读性强、可靠性高、灵活性好、可维护性强设计模式的基本要素模式名称问题场景解决方案效果GoF23创建型模式(5种)单例模式、工厂模式、抽象工厂模式、建造者模式、
2020-07-31 17:11:33 122
原创 Springboot 集成Thymeleaf 引入js失效 解决方法
文章目录一、问题描述二、解决办法一、问题描述今天在github上下载了一个项目,项目结构Springboot + thymeleaf,在使用过程中发现前端页面按钮点击后事件无响应,在F12调试后查看后发现问题所在:在F12调试后发现是相应的js文件全是404,为什么会找不到引入的js文件呢?以下是原HTML中js文件的引入写法 /*这里是HTML引入js文件的代码*/ <script type="text/javascript" th:src="@{~/js/aes.js}"><
2020-07-28 14:54:52 4156 1
原创 Java 1.单例模式学习(饿汉式、懒汉式、DCL双重检测锁模式、静态内部类、枚举)
文章目录1. 什么是单列模式2. 什么是单列类3. 为什么枚举的单例不能被反射破坏4. 单例模式的创建4.1 饿汉式单例4.2 懒汉式单例4.2.1 懒汉式单例一(多线程场景)4.2.2 懒汉式单例二 (DLC懒汉-双重检测锁模式)4.2.3 懒汉式单例三 (双重检测锁模式+volatile )4.2.4 懒汉式单例四 (静态内部类)4.3 反射-让单例不再单例(打破单例模式)4.3.1 破坏(双重检测锁模式+volatile)解决办法4.3.2 反射破坏升级解决办法4.3.3 反射破坏升级Plus4.3.
2020-07-17 16:12:42 619 1
原创 Java 看完别再说不会BigDecimal
目录为什么使用BigDecimalBigDecimal的构造方法BigDecimal中加减乘除运算BigDecimal比较大小BigDecimal始终返回新的BigDecimal为什么使用BigDecimal先来看一段代码: public static void main(String[] args) { System.out.println(10-9.8); }运行结果:期望返回的结果是0.2,但实际返回却是0.1999999999999993。在计算机中浮点数有可
2020-07-15 16:48:37 588
原创 Java POJO转JSON响应前端忽略部分成员变量(指定成员变量不序列化返回前端)
业务场景:数据库查询结果返回实体一共有10个属性值,但是只想把实体中的7个成员变量返回给前端,所以就需要操作忽略(隐藏)掉另外的3个成员变量目录1.@JsonIgnore注解2.代码示例3. 解决1.@JsonIgnore注解作用:在json序列化时将实体中的一些属性忽略掉,标记在属性或者方法上,返回的Json数据就不包含被@JsonIgnore标注的属性。2.代码示例以下实体中的bzrsList(编制人员列表)属性是业务属性(数据库查询得到),需要经过处理后把得到的值赋给bzrsTot.
2020-06-19 15:58:51 2478
原创 Java 时间截选工具(月开始与结束时间、年开始与结束时间)
最近项目上遇到需求,前端传过来一个时间字符,如:“2019”、“2019-01”,需要根据这个时间字符去筛选出匹配的数据,即"2019"对应了2019年的beginTime和endTime,"2019-01"对应了2019年1月的beginTime和endTime目录一、思路二、代码实现一、思路用SimpleDateFormat类将前端传过来的字符转换成Date类型,然后获取这个Date的开始时间和结束时间(年开始时间-年结束时间)二、代码实现public static String[] ge.
2020-06-13 13:57:51 547
原创 Java 边界陷阱(边界值的校验)
最近看了一篇博客,博客内容谈到了Java基本数据类型边界值的问题,细细品味后觉得值得记录一下。目录一、案列二、解决边界问题三、复习Java基本数据类型一、案列某商家生产的电子产品非常畅销,需要提前30天预订才能抢到手,同时还规定了一个会员可拥有的最多产品数量,目的是为了防止囤积压货肆意加价。会员的预订过程是这样的:先登录官方网站,选择产品型号,然后设置需要预订的数量,提交,符合规则即提示下单成功,不符合规则提示下单失败,后台的处理模拟如下:import java.util.Scanner; .
2020-06-05 16:47:40 1302
原创 @JsonFormat 和 @DateTimeFormat 时间格式化注解详解(不看血亏)
前后数据交互过程中,Date类型的数据经常会出现类型映射转换的错误,为了达到业务的目标时间格式,通常会使用@JsonFormat 和 @DateTimeFormat,但是这两者有什么区别呢?目录一、示例代码一、示例代码先准备一个简单POJO,拥有Date类型的成员变量:@Datapublic class DateEntity { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")// @DateT.
2020-06-04 14:49:40 39557 14
原创 Java Entity实体中serialVersionUID的作用
在实际项目开发中,肯定在实体类中见到过serialVersionUID所声明的常量,有没有想过这个serialVersionUID有什么作用呢?目录一、实现Serializable接口的作用二、序列化与反序列化代码示例三、生产者与消费者中实体属性不一致一、实现Serializable接口的作用类实现Serializable接口的目的是为了可持久化,比如网络传输或本地存储,为系统的分布和异构部署提供先决条件支持。若没有序列化,现在熟悉的远程调用、对象数据库都不可能存在;二、序列化与反序列化代码示例.
2020-05-28 14:04:59 2671 3
原创 Java for()循环和foreach()循环的选择使用(谁更高效?)
实际开发过程中,大家肯定都使用过for()循环与foreach()循环,但是有没有思考过什么时候选择for(),什么时候选择foreach(),两者的使用场景以及遍历效率的区别?下面就来一起揭秘两者的使用与区别。for循环和foreach循环的选择使用一、思考案例二、优化List的遍历方式三、for循环遍历LinkedList四、方法改进五、结论一、思考案例统计一个省的各科高考平均值,比如数学平均分是多少,语文平均分是多少等,这是每年招生办都会公布的数据,我们来想想看该算法应如何实现。当然使用数据.
2020-05-26 16:33:33 3121 4
原创 Java Arrays.asList()使用注意(排雷排坑!!!)
Java数组转集合?肯定想到使用Arrays.asList(),注意雷区,小心踩雷。1.雷区一先来看一个程序示例: int[] arr = {1,2,3,4,5}; List list = Arrays.asList(arr); System.out.println(list.size()); System.out.println(list); // list.size() = 1结果:按理说得到到List.size()的大小应该为5,但是.
2020-05-25 17:03:08 634
原创 MySQL 序号(排序)函数:row_number() 、rank() 、 dense_rank()、ntile()
前言:以下函数都是MySQL8.0版本才支持,使用前请确认当前MySQL版本,详情可百度MySQL8.0新特性-窗口函数-序列函数1.测试表内容MySQL版本:8.0.11示例:2.row_number()函数作用:对查询的数据进行排序(显示每条数据的行号);示例:SELECT ROW_NUMBER () OVER ( ORDER BY person.`salary` DESC) num, person.salaryFROM person结果:3.r.
2020-05-24 14:06:52 20556 1
原创 MySQL 通过rownum显示行号
MySQL中,获取行号需要通过自定义变量(select @rowNum:=0)与目标表做表关联才能得到对应的行号@rownum显示行号示例:SELECT (@rowNum := @rowNum + 1) AS rowNum, t1.*FROM room t1, (SELECT @rowNum := 0) t2 结果:...
2020-05-22 17:03:07 339
原创 Java Collections.emptyList() 方法的使用及注意事项
Java Collections.emptyList方法的使用及注意事项一、emptyList()一、emptyList()作用:返回一个空的List(使用前提是不会再对返回的list进行增加和删除操作);好处:1. new ArrayList()创建时有初始大小,占用内存,emptyList()不用创建一个新的对象,可以减少内存开销;2. 方法返回一个emptyList()时,不会报空指针异常,如果直接返回Null,没有进行非空判断就会报空指针异常;注意:此List与常用的List不同,它是
2020-05-22 12:53:18 21214 5
原创 MyBatis中特殊符号的替换(大于 小于 大于等于 小于等于)
MyBabtis中的特殊符号(大于 小于 大于等于 小于等于)1、第一种写法2、第二种写法1、第一种写法原符号替换符号<<<=<=>>>=>=&&’'""注意不要忘记加分号示例:2、第二种写法原符号替换符号<<![CDATA[<]]>
2020-05-21 14:52:04 2202
原创 MySQL IF()函数(类似三目运算符)
MySQL—IF函数—类似三目运算符一、前言二、IF()函数一、前言做项目时遇到需求,需要将车辆保险表的保险到期状态给区分显示(正常,即将到期,已过期),但是表中并没有这个状态字段,所以得根据车辆保险时间去进行动态筛选出状态信息。二、IF()函数MySQL中的IF()函数作用类似于Java中的三目运算符,个人感觉在实际开发中使用可以避免多余的查询;表达式:IF(expr,value1,value2)说明:根据expr得到的结果,true返回value1 ,false返回 value2;示例:
2020-05-20 17:49:16 2419
原创 Java String转String[]字符串数组,String[]转List集合,List集合转String,char[]字符数组转String
Java String转String[]字符串数组 String[]转集合 char[]字符数组转String 一、String转String[]字符串数组二、String[]转List集合一、String转String[]字符串数组方法:使用String的split()方法;split():根据匹配给定的正则表达式来拆分字符串,返回字符串数组(String[]);注意:特殊字符的处理需要进行转义处理,如:"." 、""、"|";示例: String str = "1,2,3,4,5";
2020-05-19 18:23:34 4071
原创 SpringMVC注解 @Requestparam 和 @PathVariable 详解
SpringMVC注解 @Requestparam 和 @PathVariable 小记一、@Requestparam功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一、@Requestparam作用:绑定前端请求参数到对应的
2020-05-14 23:06:10 1090
原创 MySQL 错误代码:1055 解决方案(推荐!!)
MySQL 错误代码:1055 解决办法一、 问题描述1. MySQL版本:8.0.112.ONLY_FULL_GROUP_BY-SQL示例二、解决办法1.方法一2.方法二一、 问题描述1. MySQL版本:8.0.11在查询时使用group by语句,出现错误代码:1055SELECT t1.id, t1.`room_name`, t2.`room_id`, t2....
2020-05-08 14:16:07 31014 20
原创 Spring RestTemplate配置拦截器打印请求URL和响应结果
Spring RestTemplate配置拦截器打印请求URL和响应结果一、前言二、RestTemplateConfig配置类三、ClientHttpRequestInterceptor拦截器四、效果展示一、前言最近项目中频繁调用第三方接口获取响应结果,请求方式post()和get(),调用过程中总是报400错误,就想到可能是提交的请求参数不对,但却没法看到RestTemplate的完整请求U...
2020-05-06 12:39:05 6746 3
原创 Vue-cli的安装与使用
Vue-cli的安装与使用一、基本环境搭建二、Vue-cli脚手架项目结构三、启动运行Vue一、基本环境搭建首先需要安装两个应用:1.NodeJS2.npm在NodeJS安装完成后,npm也就会随带这有了。可以使用cmd命令查看是否安装成功:NodeJS安装成功之后,接下来安装vue的脚手架工具:npm install -g vue-cli # 只需要第一次安装时执行vue ...
2020-05-02 17:41:18 292
原创 MySQL合并多列数据之CONCAT()函数和CONCAT_WS()函数(字符串连接函数)
MySQL合并多列数据之CONCAT函数和CONCAT_WS函数一.函数描述二、创建表和添加测试数1、创建表2、添加测试数据3、表图三、编写测试SQL语句1、函数concat()2、函数CONCAT_WS()一.函数描述菜鸟教程中的函数描述:https://www.runoob.com/mysql/mysql-functions.html函数描述CONCAT(s1,s...
2020-05-01 16:53:19 11221
原创 SpringBoot项目JUnit单元测试运行报错-java.lang.IllegalStateException: Failed to load ApplicationContext
SpringBoot项目JUnit单元测试运行报错一、问题描述二、报错信息三、报错原因四、解决办法一、问题描述问题描述:写项目接口,在Junit单元测试中测试了ServiceImpl中的方法,此时的Controller层对外接口已经完成,但是在Junit方法Debug启动时,项目报错,在这里记录一下;二、报错信息报错信息:java.lang.IllegalStateExcept...
2020-04-29 20:41:06 3417
原创 MySQL多行数据合并(单例显示多个值)之GROUP_CONCAT()函数(字符串连接函数)
MySQL多行数据合并之GROUP_CONCAT函数一、GROUP_CONCAT函数语法二、创建表和添加测试数据1、建表2、添加测试数据三、编写测试SQL语句1、人员信息表(左)和房间信息表(右)2、场景模拟3、修改GROUP_CONCAT() 函数分隔符4、GROUP_CONCAT() 函数去重5、GROUP_CONCAT() 函数排序一、GROUP_CONCAT函数语法函数语法:gr...
2020-04-27 17:34:28 19229
原创 MySQL递归查询组织机构
MySQL递归查询组织机构一、创建表和添加测试数据1.建表2.测试数据二、编写函数(根据父id递归查询所有子节点)1.创建函数2.调用函数查询一、创建表和添加测试数据1.建表建表语句:DROP TABLE IF EXISTS recursion_org;CREATE TABLE recursion_org (id BIGINT(8) NOT NULL AUTO_INCREMENT,...
2020-04-25 22:52:43 800
原创 MySQL免安装版本(解压版本)的下载与使用教程及注意事项
文章目录一.MySQL镜像国内下载地址二.安装.zip1.解压下载好的压缩包2.在解压得到到文件夹中新建一个data文件夹和my.ini3.配置环境变量4.打开cmd,输入:5.安装服务,在cmd输入:6.启动MySQL服务:7.修改初始密码:一.MySQL镜像国内下载地址ORACLE官网镜像劝放弃。推荐镜像地址:国内镜像地址一:http://mirrors.sohu.com/mysql/...
2020-04-24 15:26:58 938
原创 Spring RestTemplate调用HTTP接口上传文件
功能需求APP端上传图片到后端,后端需要调用第三方接口发送得到的图片,然后获取返回结果响应给APP;解决思路先接收到图片在服务地址临时缓存,然后把图片取出调用第三方接口发送,获取到返回结果后删除本地临时缓存的图片完成操作。实现 public Object updateUserFavicon(@RequestParam("uploadFile") MultipartFil...
2020-04-21 16:17:22 1496
原创 SpringBoot项目无法访问resources/templates下静态资源文件
问题描述:使用SpringBoot项目写一个文件上传的需求,发现在项目启动后无法直接访问resources/templates下的静态资源页面(html页面)。问题原因:SpringBoot项目中resources/templates下的静态资源是不能直接访问的,原因是没有开放访问权限的,因为templates下可能存放有后台管理的页面资源,当templates对外开放就会产生安全隐患...
2020-04-12 11:36:39 6053
原创 SpringBoot集成JPA,控制台输出SQL语句
在写项目时用到了JPA,想看SQL输出,发现使用logging.level.xxx.xxx.dao=debug 不好使,在这里记录一下:在application.yml中添加:jpa: show-sql: true properties: hibernate: format_sql: true #格式化SQL,如果不加,SQL输出不换行,不方便...
2020-02-26 21:42:53 2986
转载 @Transactional和try...catch一起使用、嵌套使用
准备建两张表,模拟两个数据操作CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) DEFAULT NULL, `age` smallint(3) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCR...
2019-10-23 16:15:31 6324 1
原创 nrm不是内部或外部命令,也不是可运行的程序
安装nrm在行执行命令:npm install -g nrm 或 cnpm install -g nrm,全局安装过nrm后。执行crm还是提示 'nrm' 不是内部或外部命令,也不是可运行的程序。如图:解决办法:1.查看nodeJS全局安装路径:npm config ls图中prefix的路径就是nodeJS全局安装路径。2.在系统环境变量中配置node...
2019-09-19 15:07:05 22093 7
转载 spring RestTemplate详解
1、什么是REST? REST(RepresentationalState Transfer)是Roy Fielding 提出的一个描述互联系统架构风格的名词。REST定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的Web 服务,包括使用不同语言编写的客户端如何通过 HTTP处理和传输资源状态。 为什么称为 REST?Web本质上由各种各样的资源组成,资源由URI 唯一...
2019-02-15 15:37:05 268
jdk1.8资源合集(windows(安装版/免安版/openjdk8)、mac、linux).zip
2021-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人