自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 幂等性解决方案

什么是幂等性幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同。在计算机中编程中,一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。什么是接口幂等性在HTTP/1.1中,对幂等性进行了定义。它描述了一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外),即第一次请求的时候

2021-09-25 13:44:24 371

原创 Java概述

Java概述Java简介什么是JavaJava是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。诞生背景任职于Sun公司(Stanford University Network斯坦福网络公司)的詹姆斯·高斯林和麦克·舍林丹等人于1990年代初开发Java语言的雏形,最初被命名为O

2020-12-11 16:43:24 685

原创 Java内存区域与内存溢出异常

概述对于从事C、C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的“皇帝”又是从事最基础工作的“劳动人民”——既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出问题,由虚拟机管理内存这一切看起来都很美好。不过,也正是因为Java程序员把内存控制的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解

2020-12-11 16:22:02 187

原创 计算机常见英文单词

cursor 光标retrieve 检索designate 特定,指定column 列execute 实行,执行parameter 参数Sets the value of the designated parameter using the given object使用给定的对象设置指定参数的值lable 标签Meta Data 元数据BLOB 二进制大对象Retrival 检索,取回mapper 映射templates 模板,范本...

2020-10-01 12:20:00 112

原创 Mybatis遇见的错误

1.org.apache.ibatis.binding.BindingExceptionException in thread "main" org.apache.ibatis.binding.BindingException: Type interface org.javaboy.dao.IUserDao is not known to the MapperRegistry.检查定义的接口和实体类映射的接口名是否一致...

2020-09-29 18:41:09 59

原创 Apache-DBUtils

文章目录Apache-DBUtils简介主要API的使用DbUtilsQueryRunner类ResultSetHandler接口及实现类Apache-DBUtils简介commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能主要API的使用DbUtilsDbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态

2020-09-29 12:14:27 94

原创 数据库连接池

文章目录数据库连接池的必要性什么是数据库连接池数据库连接池技术的优点多种开源的数据库连接池C3P0数据库连接池Druid(德鲁伊)数据库连接池参数配置数据库连接池的必要性普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间。数据库的连接资源并没有得到很好的重复利用。若同时有

2020-09-29 11:00:00 194

原创 使用PreparedStatement实现CRUD操作

文章目录操作和访问数据库使用Statement操作数据表的弊端PreparedStatement的使用PreparedStatement介绍PreparedStatement vs StatementJava与SQL对应数据类型转换表使用PreparedStatement实现增,删,改操作ResultSet和ResultSetMetaDataResultSet操作和访问数据库数据库连接被用于向数据库服务器发送命令和 SQL 语句,并接受数据库服务器返回的结果。其实一个数据库连接就是一个Socket连接。

2020-09-28 23:58:57 737

原创 获取数据库连接

文章目录Driver接口实现类Driver接口介绍加载与注册JDBC驱动URL几种常用数据库的JDBC URLMySQL连接URL编写方式Oracle 9i连接URL编写方式SQLServer连接URL编写方式用户名和密码数据库连接方式连接方式一连接方式二Driver接口实现类Driver接口介绍java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。在程序中不需要直接去访问实现了 Driver 接口的类,

2020-09-28 12:05:47 186

原创 JDBC概述

文章目录数据的持久化Java中的数据存储技术JDBC介绍JDBC体系结构JDBC程序编写步骤数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件,XML数据文件中。Java中的数据存储技术JDBC直接访问数据库JDO(Java Data Obje

2020-09-28 08:55:42 103

原创 JPA和Spring Data

文章目录JPAJPA是什么JPA和Hibernate的关系JPA的供应商JPA的优势SpringDataJPAJPA是什么Java Persistence API:用于对象持久化的 APIJava EE 5.0 平台标准的 ORM规范,使得应用程序以统一的方式访问持久层JPA和Hibernate的关系JPA是hibernate的一个抽象(就像JDBC和JDBC驱动的关系)JPA 是规范:JPA 本质上就是一种 ORM 规范,不是ORM 框架,这是因为 JPA 并未提供 ORM 实现,它

2020-09-27 20:17:21 115

原创 SpringBoot整合Mybatis多数据源

文章目录工程创建多数据源配置MyBatis配置mapper创建其实关于多数据源,复杂的就直接上分布式数据库中间件,简单的再考虑多数据源。这是项目中的建议,技术上的话,当然还是各种技术都要掌握的。工程创建首先需要创建MyBatis项目,项目创建和前文的一样,添加MyBatis、MySQL以及Web依赖:项目创建完成后,添加Druid依赖,和JdbcTemplate一样,这里添加Druid依赖也必须是专为Spring boot打造的Druid,不能使用传统的Druid。完整的依赖如下:<dep

2020-09-27 14:46:55 90

原创 SpringBoot整合MyBatis

文章目录工程创建基本用法1.直接使用注解2.使用XML映射文件原理分析工程创建首先创建一个基本的Spring Boot工程,添加Web依赖,MyBatis依赖以及MySQL驱动依赖,如下:创建成功后,添加Druid依赖,并且锁定MySQL驱动版本,完整的依赖如下:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte

2020-09-27 14:22:31 239

原创 SpringBoot多数据源配置之JdbcTemplate

文章目录创建工程配置数据源配置JdbcTemplate实例测试使用多数据源配置也算是一个常见的开发需求,Spring和SpringBoot中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件MyCat去解决相关问题,之前有小伙伴在我的知识星球上提问,他的数据根据条件的不同,可能保存在四十多个不同的数据库中,怎么办?这种场景下使用多数据源其实就有些费事了,我给的建议是使用MyCat,然后分表策略使用sharding-by-intfile。当然如果一些简单的需求,还

2020-09-27 13:30:55 307

原创 SpringBoot数据持久化之JdbcTemplate

文章目录基本配置基本用法增删改查其他原理在Java领域,数据持久化有几个常见的方案,有Spring自带的JdbcTemplate、有MyBatis,还有JPA,在这些方案中,最简单的就是Spring自带的JdbcTemplate了,这个东西虽然没有MyBatis那么方便,但是比起最开始的Jdbc已经强了很多了,它没有MyBatis功能那么强大,当然也意味着它的使用比较简单,事实上,JdbcTemplate算是最简单的数据持久化方案了。基本配置JdbcTemplate基本用法实际上很简单,开发者在创建一

2020-09-27 11:14:54 147

原创 SpringBoot自定义欢迎页,自定义favicon和除去自动化配置

文章目录自定义欢迎页自定义favicon除去自动化配置自定义欢迎页可以在static目录下自定义欢迎页面,或者在templates目录下自定义欢迎页面。定义HelloController类@RestControllerpublic class HelloController { @GetMapping("/index") public String index(){ return "index"; }}浏览器访问,默认优先访问静态页面,即static目

2020-09-26 22:58:20 146

原创 SpringBoot路径映射和类型转换器

文章目录路径映射传统的方式使用路径映射类型转换器路径映射传统的方式1.创建hello.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><h1>Hello Spring Boot!</h1></body&

2020-09-26 20:47:11 276

原创 SpringBoot整合Web基础组件

文章目录创建MyServlet类创建MyFilter类创建MyRequestListener类在ServletApplication上添加注解创建MyServlet类@WebServlet(urlPatterns = "/myservlet")public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse re

2020-09-26 17:28:27 108

原创 SpringBoot定义系统启动任务

文章目录JavaWebCommandLineRunnerApplicationRunnerJavaWeb在 Servlet/Jsp 项目中,如果涉及到系统任务,例如在项目启动阶段要做一些数据初始化操作,这些操作有一个共同的特点,只在项目启动时进行,以后都不再执行,这里,容易想到web基础中的三大组件( Servlet、Filter、Listener )之一 Listener ,这种情况下,一般定义一个 ServletContextListener,然后就可以监听到项目启动和销毁,进而做出相应的数据初始化

2020-09-26 15:21:06 109

原创 SpringBoot注册拦截器

文章目录实例创建MyInterceptor创建WebMvcConfig创建HelloController实例创建MyInterceptorpublic class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws

2020-09-26 13:39:06 242

原创 SpringBoot中通过CORS解决跨域问题

文章目录同源策略实践存在的问题同源策略很多人对跨域有一种误解,以为这是前端的事,和后端没关系,其实不是这样的,说到跨域,就不得不说说浏览器的同源策略。同源策略是由Netscape提出的一个著名的安全策略,它是浏览器最核心也最基本的安全功能,现在所有支持JavaScript的浏览器都会使用这个策略。所谓同源是指协议、域名以及端口要相同。同源策略是基于安全方面的考虑提出来的,这个策略本身没问题,但是我们在实际开发中,由于各种原因又经常有跨域的需求,传统的跨域方案是JSONP,JSONP虽然能解决跨域但是有

2020-09-26 13:05:56 2556

原创 SpringBoot中关于自定义异常处理

文章目录静态异常页面动态异常页面自定义异常数据自定义异常视图静态异常页面自定义静态异常页面,又分为两种,第一种 是使用 HTTP 响应码来命名页面,例如 404.html、405.html、500.html ….,另一种就是直接定义一个 4xx.html,表示400-499 的状态都显示这个异常页面,5xx.html 表示 500-599 的状态显示这个异常页面。默认是在 classpath:/static/error/ 路径下定义相关页面:此时,启动项目,如果项目抛出 500 请求错误,就会自动

2020-09-25 23:02:31 292

原创 SpringBoot最核心的3个注解

文章目录1. @Configuration2. @ComponentScan3. @EnableAutoConfiguration1. @Configurationorg.springframework.context.annotation.Configuration这是 Spring 3.0 添加的一个注解,用来代替 applicationContext.xml 配置文件,所有这个配置文件里面能做到的事情都可以通过这个注解所在类来进行注册@Bean用来代替 XML 配置文件里面的 <be

2020-09-25 21:20:01 1185

原创 @ControllerAdvice

文章目录全局异常处理全局数据处理全局数据预处理全局异常处理使用 @ControllerAdvice 实现全局异常处理,只需要定义类,添加该注解即可定义方式如下:@ControllerAdvicepublic class MyGlobalExceptionHandler { @ExceptionHandler(Exception.class) public ModelAndView customException(Exception e) { ModelAndView

2020-09-25 20:34:54 149

原创 SpringBoot文件上传

文章目录文件上传Ajax实现文件上传多文件上传文件上传在控制层controller创建FileUploadController类@RestControllerpublic class FileUploadController { SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/"); @PostMapping("/upload") public String upload(MultipartFile fil

2020-09-25 16:47:15 61

原创 SpringBoot属性注入

文章目录普通属性注入类型安全的属性注入数组注入普通属性注入由于Spring Boot源自Spring,所以Spring中存在的属性注入,在Spring Boot中一样也存在。由于Spring Boot中,默认会自动加载application.properties文件,所以简单的属性注入可以直接在这个配置文件中写。例如,创建Book类@Componentpublic class Book { @Value("${book.id}") private Long id; @Va

2020-09-25 10:50:14 172

原创 SpringBoot中的常用注解总结

文章目录启动注解@SpringBootApplication@SpringBootConfiguration@EnableAutoConfiguration@ComponentSanController相关注解获取请求参数值注入bean相关导入配置文件事务注解全局异常处理启动注解@SpringBootApplication@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Spring

2020-09-25 09:01:12 139

原创 SpringBoot静态资源配置

文章目录SSM中的配置SpringBoot中的配置整体规划源码解读自定义配置application.propertiesJava代码定义SSM中的配置在SSM 环境搭建中,一般来说,我们可以通过 <mvc:resources /> 节点来配置不拦截静态资源,如下:<mvc:resources mapping="/js/**" location="/js/"/><mvc:resources mapping="/css/**" location="/css/"/>&

2020-09-24 22:34:01 416

原创 SpringBoot中的JSON

文章目录JSONGSONFastjsonJSONHttpMessageConverter ,看名字就知道,这是一个消息转换工具,有两方面的功能:将服务端返回的对象序列化成 JSON 字符串将前端传来的 JSON 字符串反序列化成 Java 对象所有的 JSON 生成都离不开相关的 HttpMessageConverterSpringMVC 自动配置了 Jackson 和 Gson 的 HttpMessageConverter,Spring Boot 中又对此做了自动化配置:1.org.sp

2020-09-24 22:00:25 100

原创 JSON

文章目录JSON简介JSON语法JSON值JSON对象JSON数组JSON布尔值JSON nullJSON文件JSON使用JSON解析器JSONP教程JSON简介JSON: JavaScript Object Notation(JavaScript 对象表示法)JSON 是存储和交换文本信息的语法,类似 XML。JSON 比 XML 更小、更快,更易解析。{"employees": [{ "firstName":"John" , "lastName":"Doe" },{ "firstName

2020-09-24 10:15:28 38

原创 SpringBoot整合视图层

文章目录FreemarkerThymeleaf案例JspFreemarkerThymeleafThymeleaf 是新一代 Java 模板引擎,它类似于 Velocity、FreeMarker 等传统 Java 模板引擎,但是与传统 Java 模板引擎不同的是,Thymeleaf 支持 HTML 原型。它既可以让前端工程师在浏览器中直接打开查看样式,也可以让后端工程师结合真实数据查看显示效果,同时,SpringBoot 提供了 Thymeleaf 自动化配置解决方案,因此在 SpringBoot 中

2020-09-23 23:06:56 240

原创 Freemarker

文章目录一.Freemarker介绍Freemarker简介使用引用1.引入freemarker相关的jar2.创建freemarker变量文件3.spring-mvc配置文件中配置freemarker3.1 引入变量文件3.2 freemarker配置3.3 视图解析器配置二. ftl语法1.插值规则1.通用插值2. 数字格式化插值2.表达式直接指定值1.字符串2.数值3.布尔值4.集合5.Map对象输出变量1.顶层变量2.输出集合元素3.输出Map元素字符串操作集合连接运算符Map连接运算符算术运算符比

2020-09-23 19:58:26 114

原创 SpringBoot错误

找不到视图2020-09-23 16:01:25.852 ERROR 3580 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Circular view path [index]: would dispatch back to the curr

2020-09-23 17:58:47 327

原创 SpringBoot基础配置

文章目录Banner配置更改Banner容器相关配置Spring属性注入数组注入Banner配置更改Banner在resource下创建banner.txt,输入想要更改的内容定制网站:http://patorjk.com/software/taag容器相关配置在application.properties中配置tomcat相关的内容# 修改服务器端口号server.port=8081# 修改上下文路径server.servlet.context-path=/javaboy# 配置t

2020-09-23 12:25:52 53

原创 配置文件

文章目录配置文件application.properties位置问题文件名问题yaml配置位置生产环境和上线环境配置文件application.properties在 Spring Boot 中,配置文件有两种不同的格式,一个是 properties ,另一个是 yaml 。properties 文件比较常见,但是相对于 properties 而言,yaml 更加简洁明了,而且使用的场景也更多,很多开源项目都是使用 yaml 进行配置(例如 Hexo)。除了简洁,yaml 还有另外一个特点,就是 ya

2020-09-23 12:25:09 103

原创 SpringBoot简介

文章目录SpringBoot特性三种创建方式系统要求在线创建使用工具创建创建IntelliJ IDEASTSMaven 创建项目结构启动类上的注解SpringBoot中parent的理解基本功能源码分析不用parentSpringBoot特性更广泛的+快速的Spring开发体验一系列开箱即用的starter一系列非功能性的自动化配置没有XML配置文件生成三种创建方式系统要求Spring Boot 目前最新版本是 2.1.4,要求至少 JDK8,集成的 Spring 版本是 5.1.6构

2020-09-23 09:19:14 105

原创 桶排序

文章目录算法描述代码演示复杂度分析时间复杂度算法描述代码演示public static int[] findNearestNumber(int[] numbers){ //1.从后向前查看逆序区域,找到逆序区域的前一位,也就是数字置换的边界 int index=findTransferPoint(numbers); //如果数字置换边界是0,说明整个数组已经逆序,无法得到更大的相同数 //字组成的整数,返回null if(index==0){ return null; } //2

2020-09-22 12:32:43 69

原创 基数排序

文章目录算法描述代码演示复杂度分析时间复杂度空间复杂度算法描述代码演示class Radix{ public static void main(String[] args){ int arr[]={170,45,75,90,802,24,2,66}; int n=arr.length; radixsort(arr,n); print(arr,n); } //获取数组中的最大值 static int getMax(int arr[],int n){ int max=arr[

2020-09-22 12:00:48 59

原创 计数排序

文章目录算法描述代码演示复杂度分析时间复杂度空间复杂度稳定性分析算法描述计数排序是一种针对于特定范围之间的整数进行排序的算法。它通过统计给定数组中不同元素的数量,然后对映射后的数组进行排序输出即可。代码演示没有优化public static int[] countSort(int[] array){ //1.得到数列的最大值 int max=array[0]; for(int i=1;i<array.length;i++){ if(array[i]>max){ max=

2020-09-21 11:05:08 57

原创 堆排序

文章目录算法描述代码实现复杂度分析时间复杂度空间复杂度稳定性分析算法描述把无序数组构建成二叉堆,需要从小到大排序,则构建成最大堆;需要从大到小排序,则构建成最小堆循环删除堆顶元素,替换到二叉堆的末尾,调整堆产生新的堆顶代码实现/*** @param array 待调整的堆* @param parentIndex 要下沉的父节点* @param length 堆的有效大小*/public static void downAdjust(int[] array,int parentInd

2020-09-21 09:59:13 54

空空如也

空空如也

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

TA关注的人

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