自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通过模拟Mybatis的自动封装来理解反射

Java反射入门什么是反射用new关键字创建对象使用反射创建对象使用反射动态调用方法总结 什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制 以上就是对反射的解释,但是解释的太官方,现在我们从代码入手。先看不用反射的情况应该怎么创建对象 用new关键字创建对象 比如现在通过JDBC查询出来了一个结果集ResultSet,需要将结果集转化成对象之后

2020-07-28 14:39:24 469

原创 mybatis一对多方式批量插入

@[TOC]目录 需求 public class Order { private String orderId; private List<OrderGoods> orderGoods; } public class OrderGoods { private String goodsId; private String goodsName; private float goodsPrice; private int quantity; } 如实

2020-06-13 01:53:54 3299

原创 深入浅出Java动态代理

什么是动态代理 这里先不做解释,直接开门见山 在我们开发过程中,可能有很多重复的操作或者代码需要我们去编写,打个比如下面这样,你需要记录你的开发情况(用来举例,不要钻牛角尖),每次核心业务的进行都需要去标记开始和结束。 public class Service { public void service() { System.out.println("主要业务开始"); System.out.println("进行主要业务"); System.

2020-05-24 02:06:41 300

原创 SpringBoot统一异常处理

统一异常处理@RestControllerAdvice注解使用方式配合自定义异常使用 @RestControllerAdvice注解 这个注解可以声明一个类专门用来拦截异常并且可以进行处理 使用方式 其中 @ExceptionHandler用来声明拦截异常类型。 先把@RestControllerAdvice注释掉,在代码中加入出错的代码,在未使用统一处理的时候,如果后台出错是这样的 使用统一处理之后 可以看到,返回的信息成为了我们在统一异常处理里面的返回值。 配合自定义异常使用 我们可以根据业务需

2020-09-03 10:53:41 336 1

原创 mysql大小写敏感导致程序无法启动

将数据库转移到centos服务器上之后,项目启动一直报找不到XXX Table,但是数据库中存在这个表,对比了一下发现报错信息的表名发现是大写字母,就考虑到了可能换了环境,区分大小写了,于是更改了mysql的配置文件 先找到配置文件的位置 进入该目录,编辑该配置文件 加上这样一句话,1表示不区分,0表示区分 lower_case_table_names=1 再次启动项目,启动成功! ...

2020-08-17 14:23:53 746

原创 redis忘记关闭连接,前台请求出现pending,记一次找bug的经历

再写一个项目的时候,配置了redis作为中间缓存来减少数据库的压力,可是在测试的时候总是突然出现发送到后台的请求一直没有返回,如图所示。 而且出现的情况是随机的,排查bug就更加费劲了,在后台注释掉redis的代码后发现此问题不再出现,可以确定是后台redis的某个部分阻塞了,然后为了搞清楚bug出现的条件进行了多次测试,突然发现当需要经过redis的请求发送次数到第11次的时候,bug就出现了,并且卡住的时间是一样的,当到2000ms的时候就返回失败的消息。突然想到了redis的配置文件,发现了重要的

2020-06-08 23:54:34 803 1

原创 快速排序

快速排序写了很多次了,但一直没有理解,今天重新写了一次,记录一下自己的理解 文章目录实现原理代码实现 实现原理 快排的实现原理是给定一个基准,这个基准最好是数组里面存在的数(一般是第一个),进行如下操作。 从数组右边开始设置一个游标 j,j往左边走,每走一步与基准进行比较,如果比基准大,就继续往左边走,如果比基准小或者相等,则跟基准调换位置,调换位置之后,基准的下标就是j,原来 j下标位置的值就到了原来基准的位置。 再从数组左边设置一个游标i,i往右边走,每走一步与基准进行比较,如果比基准小,就继续往右边

2020-06-04 18:25:48 248

原创 mysql数据库事物的四个特性及含义

数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。 隔离性:隔离状态执行事务,使它们好像是系统在给

2020-05-22 12:36:29 582

原创 Redis学习

安装步骤 下载安装包 解压 编译(需要gcc支持) 修改配置文件 从解压后的文件复制一份redis.conf到编译后的文件 找到对应的配置项进行更改,比如需要更改默认端口为6377 启动 # 启动服务 ./redis-server # 使用自定义的配置文件启动 ./redis-server ../redis.conf # 启动客户端 ./redis-server # 指定ip端口启动 ./redis-cli -h 127.0.0.1 -p 6377 设置key的过期时间 # 设置name这个ke

2020-05-22 12:34:04 194

原创 Springboot整合Jedis工具操作redis数据库

准备工作 让redis可以被远程连接,关闭保护模式,添加密码。 # Warning: since Redis is pretty fast an outside user can try up to # 150k passwords per second against a good box. This means that you should # use a very strong password otherwise it will be very easy to break. # require

2020-05-21 23:26:26 283

原创 DbUtil

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetE...

2019-12-04 23:59:08 249

原创 hive数据库操作

库操作 建库 create database if not exists [dbname] 切换库 use [dbname] 查询正在使用的库 select current_database(); 查询库列表 show databases; 查询库信息 desc database [dbname] 删除库 drop database [dbname] — 只能删除空库 drop database...

2019-10-20 18:32:08 260

原创 springmvc入门配置

1.导入jar包 将这些jar包导入到 WebContent----WEB-INF-----lib文件夹下,项目会自动编译 2.配置 WebContent----WEB-INF下的web.xml文件 3.在工程下新建Source Folder文件夹,命名为config,在config文件夹里新建xml文件,文件名必须和上图中的classpath:springMVC.xml,文件名一致,我...

2019-09-07 23:09:35 261

原创 Java IO

抽象类 字节处理流:OutputStream(输出字节流)、InputStream(输入字节流); 字符处理流:Writer(输出字符流)、Reader(输入字符流) 通过字节流或字符流的子类为父类对象实例化 利用字节流或字符流中的方法实现数据的输入与输出操作; 流的操作属于资源操作,资源操作必须及逆行管不处理。 字节输出流:OutputStream 字节的数据是以byte类型为主的实现操...

2019-08-12 15:23:39 182

原创 LinkedList

在学习LinkedList之前应该先了解ArrayList

2019-07-23 21:14:31 216

原创 java继承

为什么要用继承 代码复用 当我们在创建多个类似的类时,经常会用到相同的属性或者方法,比如我们创建了一个医生类,医生的常用属性有哪些:姓名、性别、年龄、科室等等,然后我们再创建一个教师类,教师的属性有:姓名,性别,年龄,科目等等。那么问题来了,这样写的话我们发现医生和教师都有姓名、性别、年龄,写一个两个类还好,如果有其他职业,要写十个类,二十个类,不停的重复定义姓名、性别、年龄,那就太麻烦了,所以我...

2019-07-20 15:04:07 253

原创 arraycopy方法

System.arraycopy 用于数组的拷贝 用法 System.arraycopy(src, srcPos, dest, destPos, length) 参数1 需要拷贝的对象 参数2 从几号下标(索引)开始拷贝 参数3 拷贝到哪里 参数4 拷贝多长 public static void main(String[] args) { int[] i1=new int[]{1,...

2019-07-12 16:33:53 463

原创 ArrayList

ArrayList 是List的子接口,里面的元素无序,允许元素重复 创建方法 ArrayList<String> arry=new ArrayList<String>(); 这里需要引入包 import java.util.ArrayList; 常用方法 1.arry.add(); case1:一个参数,那么这个参数为添加的元素,索引从0开始 case2:两个...

2019-07-10 15:43:31 1370 2

原创 java多线程

多线程的概念 打开一个应用程序,就是打开了一个进程,进程是线程的集合,为了让程序的执行更加高效,所以一个进程可以创建多个线程来"同时"执行互不干扰的方法。 创建多线程的两种常见方法 通过继承Thread类! public class MyThread1 extends Thread { @Override //重写Theard的run方法 public void run() { ...

2019-07-07 15:47:54 195 1

空空如也

空空如也

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

TA关注的人

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