Java后台
文章平均质量分 52
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程
Keson Z
生活本是泥潭,不想跌底就请保持步伐
展开
-
解决Spring JPA自动更新数据库的问题
解决Spring JPA自动更新数据库的问题转载 2022-10-23 17:50:10 · 3224 阅读 · 3 评论 -
使用liquibase进行数据库迁移(Postgresql/Mysql)——springboot整合Liquibase以及使用maven命令执行Liquibase同步更新数据
文章目录一。什么是Liquibase?1.liquibase的优点2.liquibase的基本概念3.官网地址二。SpringBoot整合Liquibase1.简介2.项目结构3.测试结果4.特别注意5.扩展6.项目地址三。使用Maven命令来执行Liquibase同步更新数据1.简介2.项目结构3.测试结果4.项目地址:一。什么是Liquibase?liquibase是一个数据库变更的版本控制工具。项目中通过liquibase解析用户编写的liquibase的配置文件,生成sql语句,并执行和记录。原创 2022-05-05 22:55:29 · 3952 阅读 · 0 评论 -
使用指定jdk运行java -jar命令
将指定的jdk路径替换“java”即可:E:\jdk-11.0.1\bin\java.exe -jar demo-0.0.1-SNAPSHOT.jar原创 2022-04-21 21:21:53 · 10993 阅读 · 0 评论 -
DB2 SQL Error: SQLCODE=-407,SQLSTATE=23502,SQLERRMC=TBSPACED=2,TABLEID=-16895,COLNO=7,DRIVER=4.26.14
解决思路:首先出现SQLCODE=-407,SQLSTATE=23502应该是更新Table的时候某个字段为NULL,但是Table那个表字段约束是不为NULL,导致出现的问题。步骤:1.通过错误信息的“TBSPACED=2,TABLEID=-16895”,你可以通过查询SYSCAT.TABLES获取Table的信息:SELECT * FROM SYSCAT.TABLES WHERE TBSPACED = 2 AND TABLEID = -16895;2.然后再根据刚刚查出来的TABNAME和错原创 2022-03-09 17:52:40 · 6129 阅读 · 0 评论 -
四种方式--解决org.hibernate.lazyInitializationException: could not initalize proxy [XXX] - no session的问题
造成的原因:其实这个是JPA Session的问题,说白了就是有一些程序使用了JPA懒加载机制,也就是说某些ASSOCIATION,是GET方法被调用才会把数据加载回来。但问题是当那个GET METHOD被调用时,对应的JPA Session就已经关闭了,所以根本没有办法加载。解决办法有四种:在报错信息里面的实体类(也就是中括号[]里面的实体类)中加上@Proxy(lazy=false)。取消LAZY LOAD,可以通过将@OneToMany,@ManyToOne,@OneToOne注解中的属性f原创 2022-03-04 18:46:52 · 1991 阅读 · 0 评论 -
Spring JPA中实体类使用@EmbeddedId注解之后,如何根据主键进行条件查询?
1.Student实体类如下:@Builder@NoArgsConstructor@AllArgsConstructor@Data@Entity@Table(name = "student", schema = "FOS")public class Student implements Serializable { @EmbeddedId private StudentKey id; @Column(name = "SEX") private String原创 2021-11-17 19:36:20 · 1292 阅读 · 2 评论 -
SpringBoot项目将数据源变成Json文件(Jackson2RepositoryPopulatorFactoryBean实现)
一。项目情景有时在我们项目当中需要存储一些固定值时,会使用一些配置文件来存储,例如最常见的.json文件。它可以用来存储相应的属性以及属性值,当你需要的时候进行提取,甚至还可以基于这个.json文件写一些条件查询的语句来获得自己需要的值。本篇博客的示例项目就是将角色权限控制的信息存入到.json文件中,再使用Jackson2RepositoryPopulatorFactoryBean更换.json文件为数据源,在根据需求条件查询获取某个特定用户角色的权限控制关系。二。项目搭建说明:该项目角色有三种原创 2021-09-15 17:38:03 · 1492 阅读 · 0 评论 -
解决Error running ‘XXX‘:command line is too long.Shorten command line for ‘XXX‘ or also for Junit
一。问题描述:打开Idea运行java项目时出现以下错误:Error running ‘XXX’:command line is too long.Shorten command line for ‘XXX’ or also for Junit default configuration二。解决办法:1.打开Idea,在右上角项目启动栏找到Edit Configuration:2.点击Modify options:3.再点击Shorten command line:4.更换Short原创 2021-07-13 18:14:40 · 11185 阅读 · 5 评论 -
java中的.builder()方法实现详解
文章目录一。简介二。场景模拟三。java实现四。使用lombok插件进行优化一。简介1.我们在构建对象的时候,如果对象属性比较多,我们可以使用一个构造器;一个空的构造器,然后使用setter方法进行设置。使用这些方法时会有冗长的构造函数或者setter方法,有不同参数默认值的构造函数需要多次定义,因此我们可以使用builder来简化代码的简介性。2.那么什么是Builder呢?它其实是一种设计模式,叫做建造者模式,它的含义是将一个复杂的对象的构建与它的表示分离,同样的构建过程可以创建不同转载 2021-07-06 18:39:26 · 40843 阅读 · 8 评论 -
Java中为什么double 1/2=0?
问题示例:解析:两个int类型做除法,结果也是int类型,0.5转成int类型变0解决方式:double d=(double)1/2;原创 2021-05-11 15:12:49 · 3184 阅读 · 0 评论 -
使用PageHelper插件实现Service层分页
使用场景:平时分页我们可以直接使用mybatis-plus中内置的IPage进行分页,一般是在mapper中写好接口,在执行sql时就将其进行分页操作,但是有些复杂的查询或者是需要拼接返回格式的数据就难以操作了,所以我们使用PageHelper插件来实现Service分页功能。1.在pom.xml文件中导入PageHelper插件依赖<!--pagehelper分页插件--><dependency> <groupId>com.github.pagehelp原创 2021-04-23 16:04:36 · 1435 阅读 · 0 评论 -
一份超详细的IBM公司JAVA基础面试题附答案以及解析(题库)
第一章 Java概述笔试题一、填空题1.【基础题】Java是一种先 编译 后 解释 运行的语言。二、选择题三、名词解释1.【基础题】J2SE:Java 2 Standard Edition Java标准版2.【基础题】J2EE:Java 2 Enterprise Edition Java企业版3.【基础题】J2ME:Java 2 Micro Edition Java微型版4.【基础题】JDK:Java Development Kit Java开发工具包原创 2021-03-02 17:33:51 · 9648 阅读 · 0 评论 -
一份超详细的IBM公司JAVA基础面试题附答案以及解析(知识点)
1、面向对象的特征有哪些方面(1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。(2)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里原创 2021-03-02 17:27:38 · 1460 阅读 · 0 评论 -
如何将本地ip映射到公网上
1.下载安装windows版本的ngrok工具官网地址为:https://dashboard.ngrok.com/get-started/setup2.下载完成后解压缩得到一个ngrok.exe程序3.点击运行ngrok.exe4.输入命令行将本地9011端口映射到外网中#可以根据自己的需求修改映射端口号ngrok http 90115.本地8080端口运行界面如下:6.使用ngrok工具生成的地址访问界面如下:...原创 2021-02-23 16:58:12 · 4169 阅读 · 0 评论 -
解决mysql中数据库连接connection holder is null的问题
一。问题频繁查询或者更新数据库时,出现以下问题报错:Cause: java.sql.SQLException: connection holder is null二。解决方法在application.xml配置文件中加入以下配置:spring: datasource: # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 #是否自动回收超时连接 removeAbandone原创 2021-01-30 10:40:00 · 4578 阅读 · 0 评论 -
Java获取Liunx服务器的cpu使用率、内存使用率以及磁盘使用率
前言:本篇博客主要说明使用java程序如何获取liunx系统中的cpu使用率、内存使用率以及磁盘使用率,效果图如下:1.创建三个实体类,分别为cpu、内存以及磁盘相关信息:cpu相关信息实体package com.gdhengdian.monitorservice.domain.server;import org.springframework.stereotype.Component;import java.io.Serializable;/** * CPU相关信息 * *原创 2021-01-25 15:00:35 · 2918 阅读 · 2 评论 -
超级详细且实用的日期处理工具类(包含常用的24个方法)
超级详细的日期处理工具类(包含常用的24个方法):package com.hdyanfa.interact.util;import java.sql.Timestamp;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.apache.co原创 2021-01-18 16:30:22 · 231 阅读 · 0 评论 -
使用LayUI中Upload模块上传图片示例(包含前后端代码)
lauyi 文件上传的详细用法:layui.upload一。前台代码块:<!--图片上传控件 --><div class="layui-upload"> <button type="button" class="layui-btn" name="payment_url" id="alipay_btn">上传截图</button> <div class="layui-upload-list layui-upload-list-plus" id原创 2020-06-22 22:07:25 · 2622 阅读 · 0 评论 -
项目中关于Entiy、Vo、Dto的区别
1、entity 里的每一个字段,与数据库相对应2、vo 里的每一个字段,是和你前台 html 页面相对应3、dto 这是用来转换从 entity 到 vo,或者从 vo 到 entity 的中间的东西 。(DTO中拥有的字段应该是entity中或者是vo中的一个子集)举个例子:你的html页面上有三个字段,name,pass,age你的数据库表里,有两个字段,name,pass , 注意没有 age。而你的 vo 里,就应该有下面三个成员变量 ,因为对应 html 页面上三个字段 。priv转载 2021-01-18 11:49:04 · 287 阅读 · 0 评论 -
使用@Value注解获取yml配置文件中的自定义属性(三种不同环境下详细获取方式:变量+静态变量+静态代码块)
文章目录一。配置文件说明二。常量属性获取三。静态变量获取四。静态代码块获取一。配置文件说明1.application.yml配置:(这里使用的是application-local.yml配置文件)2.application-local.yml自定义属性配置:二。常量属性获取 @Value("${fastdfs_config.path}") private String path;三。静态变量获取1.第一种方式: //fastdfs配置文件所在路径 private原创 2020-12-08 17:47:10 · 10862 阅读 · 1 评论 -
解决org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: 的问题
一。问题描述SpringBoot项目上传较大文件时出现以下报错:org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (159612974) exceeds the configured maximum (10485760)二。解决办法在application.yml文件中添加以下配置:spring:原创 2020-12-02 10:06:27 · 3664 阅读 · 0 评论 -
SpringCloud微服务中Eureka集群与服务提供者集群的实现(图文详解+简单易懂)
文章目录一。为什么需要集群?1.单体服务注册与发现2.Eureka集群3.服务提供者集群二。示例项目构成三。Eureka集群的实现1.创建eureka-server2.Eureka集群结构图3.配置本地映射4.构建eureka-server-70015.构建eureka-server-70026.构建eureka-server-70037.依次启动8.访问网址四。服务提供集群1.创建三个provider2.服务提供集群结构图3.构建provider-80014.构建provider-80025.构建prov原创 2020-09-29 09:37:18 · 1377 阅读 · 0 评论 -
Mybatis分页插件PageHelper结合前端Element中el-pagination标签实现前后台分页
前言:本篇博客主要是说明如何在后台使用Mybatis分页插件PageHelper进行数据分页,结合Element中el-pagination标签实现前台数据动态分页显示。一。后台PageHelper使用1.实现思路:首先在pom.xml文件导入相关依赖,然后在application.yml文件中进行相关参数配置,最后在service层调用startPage()方法进行分页处理。该PageHelper分页插件实际是一个物理分页的功能,是放在对数据库进行操作之前操作的,属于先分页再查询。2.pom.xm原创 2020-09-24 08:16:56 · 607 阅读 · 0 评论 -
SpringBoot实现QQ邮件的发送
前言:本篇博客主要讲了用SpringBoot如何实现一个简单的QQ邮件发送功能。其实现思路是:首先我们需要在pom.xml文件中引入java为了整合邮箱发送功能的mail依赖,之后再获取QQ邮箱的SMTP服务授权码,然后根据授权码去配置application.yml文件,通过Java封装的SimpleMailMessage(邮件类)封装需要发送的邮件信息,再调用JavaMailSender(邮件发送类)中的send方法来实现邮件发送功能。一。获取QQ邮箱的SMTP服务授权码1.打开邮箱设置,选择账户:原创 2020-09-16 19:46:46 · 367 阅读 · 0 评论 -
SpringBoot整合Swagger2生成接口API文档
前言:Swagger2是一个能够帮助我们快速生成RESTful接口API文档的一个工具,你可以在控制器上写上接口描述,参数描述等等,在生成的Swagger2接口文档中都有体现,而且还可以在该文档上进行对接口的调用测试,能看见接口参数,头信息,返回值等等。给我们开发人员开发提供了便捷。1.导入依赖: <!---Swagger2 在线文档配置--> <!--swagger本身不支持spring mvc的,springfox把swagger包装了一下,让他可以支原创 2020-09-15 17:29:47 · 246 阅读 · 0 评论 -
SpringCloud微服务项目跨模块接口调用中,将接口返回数据转换封装成实体类的实现
1.跨模块接口调用返回示例:{ "status": 200, "message": "ok", "data": { "id": 1, "username": null, "password": null, "code": null, "name": "周同学", "classesId": null, "classesName": null, "major"原创 2020-09-11 17:50:49 · 2311 阅读 · 0 评论 -
前后端分离项目中,后台常用的返回json格式封装类
说明:在前后端分离的项目中,我们可以专注于后台代码的开发,前台拿数据只需要调用相应的接口即可,常用的后台返回的json串一般包含以下三种:status:状态码,message:提示信息,data:接口返回数据。后台接口返回json格式封装类代码示例如下:/** * @Description:后台接口返回json格式封装类 * @Author :zks * @Date :11:58 2020/9/8 */public class Result<T> implements S原创 2020-09-08 15:26:05 · 1796 阅读 · 0 评论 -
最常见的几种List、Map类型以及对象对应的Json格式
1.实体类:public class CourseInfo { //课程id private Integer courseId; //课程名称 private String courseName; //课程描述 private String courseDesc; //课程图片 private String image; public Integer getCourseId() { return course原创 2020-08-19 17:06:41 · 2728 阅读 · 2 评论 -
Spring中常用开启事务的两种方式
前言:什么是事务呢?事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务中最重要的一个特性就是原子性,它指的是在程序执行过程中,要么全部执行,要么都不执行,不存在执行其中的一部分,剩下的不执行的情况。文章目录一。没有开启事务的例子一。没有开启事务的例子1.我在这里举一个例子说明,假设第一次操作与第二次操作有关联性,我们需要把第一次操作和第二次操作都完成,在第一次操作与第二次操作中间模拟出错,在不开启事原创 2020-08-17 18:01:57 · 9173 阅读 · 0 评论 -
解决java.util.LinkedHashMap cannot be cast to xxx(domain实体类)的问题
一。问题描述1.最近在做分布式项目,需要用到其他子模块接口方法返回数据,同时这个项目也是前后端分离项目,后台接口返回的格式都是封装好了的json格式,我想拿到其中的data数据,如下图所示:2.我调用接口返回数据的getData()得到其中的data数据,再用list去接收它: @ApiOperation(value = "得到该用户的所有选修课程") @GetMapping("/getUserCourseList") @PreAuthorize("hasAnyAuthority原创 2020-08-11 16:43:41 · 37599 阅读 · 2 评论 -
@RequestMapping、@PostMapping以及@GetMapping的联系与区别
一。源码分析1.@RequestMapping:2.@GetMapping:3.@GetMapping:二。区别与联系:@RequestMapping默认是支持Post请求和Get请求的,根据请求的不同来执行对应的请求方式,可以更改它的method属性来修改改接口支持的请求。@PostMapping与@GetMapping是RequestMapping的轻量级实现,相当于@RequestMapping的一个封装,其源码中就规定了其请求方式,@PostMapping只能支持Post请求,@G原创 2020-08-06 17:29:40 · 1602 阅读 · 0 评论 -
Java中使用DigestUtils工具类对数据进行MD5加密
引言:MD5算法的全称是“消息摘要算法”(Message-Digest Algorithm version.5),它是当前公认的强度最高的加密算法。出现在MD5之前的是MD2和MD4,间隔分别只有一年。虽然三者的算法结构多少有点相似,但是由于MD2诞生于8位计算机的时代,因此它的设计与后来出现的MD4、MD5完全不同,因此不能进行简单的替代。然而,无论是MD2、MD4还是MD5,它们都是在获得一个随机长度信息的基础上产生一个128位信息摘要的算法。MD5将任意长度的"字节串"变换成一个128bit的大整数,原创 2020-06-02 17:23:16 · 13904 阅读 · 0 评论 -
java实现弹出搜索提示框,点击提示自动填充到搜索框
一。实现效果图如下:二。实现原理该功能主要实现了根据用户在搜索框输入的设备名称来进行一个动态的提示,点击下面的提示会自动填充到搜索框中。实现原理是给搜索框input绑定一个onkeyup事件,在该事件中用Ajax调用后台接口来返回模糊查询的数据。三。前台代码1.前台搜索框以及搜索提示框代码: <!-- 搜索 --> <div class="searchBox">原创 2020-05-21 21:51:04 · 3441 阅读 · 1 评论 -
java调用第三方接口示例
引言:在我们开发的过程中,常常会听到或者接触到第三方接口,那么这个第三方接口到底是什么呢?简单来说就是一个远程接口,不是在你本机上的,你需要通过远程url去访问调用该接口。许多项目中有明确的要求需要调用第三方接口,因为两边处理的业务可能不太一样,但是要做到数据能够同步。打个比方,你在本地删除了一些数据,但是第三方数据库中却还存在该数据,这时候那就需要调用第三方的接口来进行一个数据删除,到达数据同步的目的。项目中有明确要求需要调用第三方接口的,一般都会有规范的接口调用文档,调用第三方接口时,你只需要根据该接原创 2020-05-20 17:48:30 · 2992 阅读 · 1 评论 -
获取图片的base64编码以及根据base64编码生成图片
说明:什么是base64编码呢?百度百科上面给出的解释是这样的:Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。了解了base64编码是什么,下面我们就来说说图片与base64编码之间该如何相互转换。一。工具类代码如下:原创 2020-05-18 09:36:12 · 2123 阅读 · 0 评论 -
使用shiro权限验证框架,request一直为null,获取项目根路径的解决办法
问题说明:项目使用shiro权限验证框架后,request.getSession().getServletContext().getRealPath("/")就一直都得不到项目的根路径,debug之后,显示request为null,如下图所示:解决办法一:1.在web.xml配置中找到shiro配置加入如下配置:<init-param> <param-name>targetFilterLifecycle</param-name> <param-value原创 2020-05-09 11:33:03 · 787 阅读 · 0 评论 -
使用Apache POI导出echarts图表到Excel表格
引言:在实际项目统计报表模块中,报表的内容不单单只有数据,用户为了更能直观的观察数据,往往还提出将数据图表导出到excel的需求,比如数据柱状图、饼状图以及折线图等等。这些数据图形可以用echarts来进行动态实现,那么我们如何将echarts构建的图表导出到excel文件中呢?本篇文章主要说明如何使用Apache POI导出echarts图表到Excel表格,详细导出数据步骤在我的另一篇博文中...原创 2020-04-27 17:54:11 · 1719 阅读 · 3 评论 -
利用IO流进行图片的上传、下载以及显示
分享一个在学校时写的利用IO流进行图片上传、下载以及显示的案例代码:1.前端代码如下图所示: <body> <form action="image/imageUpload" method="POST" enctype="multipart/form-data"> File: <input type="file" name="file"/><!-...原创 2020-04-11 09:59:09 · 1360 阅读 · 0 评论 -
Java中获得当前系统时间年、月、日的方法
1.日期测试类代码如下package test;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;public class...原创 2020-04-22 12:28:33 · 1790 阅读 · 0 评论 -
Java动态验证码生成
说明:验证码的出现有效防止了灌水注入、盗取密码等恶意操作,提高了系统的安全性和流畅性,那么今天给大家分享一个动态验证码的生成方法。1.首先,验证码生成工具类代码如下:package com.ordering.util;import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt....原创 2020-04-21 21:26:57 · 830 阅读 · 0 评论