- 博客(32)
- 收藏
- 关注
原创 数据结构(一)
一、什么是数据结构?数据结构,直白的讲,就是研究数据的存储方式。我们常用的数据存储方式就是数组,但遇到一些复杂的数据关系时,比如,一组数据之间有相互的继承关系(父子),只用数组是无法详细描述的。针对此类数据,数据结构中提供有专门的树结构来存储这类数据。还有一些导航数据,导航功能的实现都需要大量地图数据的支持。针对此类数据,数据结构提供了图存储结构,专门用于存储这类数据。二、常用的数据结构详解数据结构大致包含以下几种存储结构:线性表,可细分为顺序表,链表,栈和存储队列树结构,普通树,
2021-12-19 21:13:16
134
原创 SpringBoot定时任务
在日常工作中还是有很多定时任务需要处理的,这次就来了解一下SpringBoot的定时任务。SpringBoot给我们提供了两个注解来帮我们处理定时任务:@EnableScheduling 开启基于注解的定时任务,用在主启动类上@Scheduled 用在需要使用定时任务的方法上,需要配合cron表达式使用接下来就测试一下:@Servicepublic class ScheduledService { /* 秒 分 时 日 月 周几
2021-11-21 17:36:52
656
原创 SpringBoot邮件发送
使用SpringBoot实现邮件发送的准备工作:1、导入maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>2、在配置文件中加入以下内容#邮箱地址spring.mail.username=1323750824@qq.com
2021-11-21 13:57:10
425
原创 SpringBoot异步任务
异步任务异步任务在日常中还是很常见的。比如发送一封邮件,当我们点击发送时,后台会执行发送的过程,此时前台会进入响应等待状态,直到邮件发送成功,才会响应成功,这样就会大大降低用户体验。因此我们需要处理这个状态,让前台页面立即响应。在service层新建AsyncService类,编写一个方法,使用线程设置一个延时,模拟正在处理数据,同步等待的情况。@Servicepublic class AsyncService { public void test(){ try{
2021-11-20 21:42:44
286
原创 java.util.Date和java.sql.Date区别及互相转换
参考链接区别:java.sql.Date:是针对SQL语句使用的,它只包含日期而没有时间部分,一般在读写数据库的时候用,PreparedStament的setDate()的参数和ResultSet的getDate()方法的都是java.sql.Datejava.util.Date:是在除了SQL语句的情况下面使用,一般是日常日期字段java.util.Date 是 java.sql.Date 的父类,即:继承关系:java.lang.Object --》 java.util.Date --》 ja
2021-11-17 20:48:10
1360
原创 JPA之Specification复杂条件查询
在日常工作的过程中,难免会遇到条件查询,接下来就来了解一下Specification条件查询。要使用Specification条件查询,我们需要继承JpaSpecificationExecutor这个接口。public interface PetDao extends JpaRepository<Pet,Integer>, JpaSpecificationExecutor<Pet>{}实体类我们依然使用Pet测试:查询所有名字为pp的Pet。由于Spec
2021-11-14 17:47:59
15162
2
原创 初步认识Jpa+SpringBoot
一、什么是JPAJPA就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。二、SpringBoot整合JPAmaven依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactI
2021-11-13 21:46:43
1075
原创 SpringBoot整合MyBatis
之前我们已经整合了JDBC和Druid,今天我们来整合MyBatis首先要导入所需依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version></dependency>然后
2021-06-10 16:44:52
146
原创 SpringBoot整合Druid
Druid简介Druid 是阿里巴巴开源平台上一个数据库连接池实现,结合了 C3P0、DBCP 等 DB 池的优点,同时加入了日志监控。Druid 可以很好的监控 DB 池连接和 SQL 的执行情况,天生就是针对监控而生的 DB 连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。配置数据源由于druid用到log4j,所以我们一块导入<dependency> <groupId>com.alibaba</gro
2021-06-10 16:26:28
226
1
原创 springBoot整合jdbc
在整合之前,我们先了解一下什么是SpringData:对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 底层都是采用 Spring Data 的方式进行统一处理。Spring Boot 底层都是采用 Spring Data 的方式进行统一处理各种数据库,Spring Data 也是 Spring 中与 Spring Boot、Spring Cloud 等齐名的知名项目。接下来开始我们的整合工作。工具及环境:IDEA,mysql5.7,ja
2021-06-10 15:55:37
71
原创 IDEA使用tomcat控制台乱码问题解决
在使用IDEA运行tomcat的时候,发现Tomcat Localhost Log和Tomcat Catalina Log处于乱码状态,在网上搜寻了很多方法,最终找到了解决方案。只需要找到tomcat根目录下的con文件夹中的logging.properties,把所有图中圈起来的位置改为GBK即可。大概是因为IDEA使用的默认编码是GBK。...
2021-06-06 19:08:28
119
原创 maven静态资源过滤
在使用maven的过程中,经常会遇到静态资源无法导出的问题,可以在pom.xml中加入以下内容来防止静态资源导出失败。<build> <resources> <resource> <directory>src/main/java</directory> <includes> <inclu
2021-06-06 09:05:37
212
原创 代理模式之静态代理和动态代理
为什么要学习代理模式?因为这是SpringAOP的底层原理!代理模式分类静态代理动态代理1、静态代理以租房为例角色分析:抽象角色:一般会使用接口或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作客户:访问代理对象的人代码步骤:1、接口// 租房public interface Rent { void rent();}2、真实角色//房东public class Host implements Ren
2021-06-03 10:58:05
237
原创 依赖注入之set注入
本文主要介绍依赖注入中的set注入方式,直接通过实例演示一共用到两个实体类:Address 作为Student类的引用类型package com.study.pojo;public class Address { private String address; public String getAddress() { return address; } public void setAddress(String address) {
2021-06-03 10:10:24
840
原创 mybatis一对多
案例一个老师对应多个学生TeacherMapperimport com.study.pojo.Teacher;import org.apache.ibatis.annotations.Param;public interface TeacherMapper { //获取指定老师下的所有学生及老师的信息 Teacher getTeacher(@Param("tid") int id); Teacher getTeacher2(@Param("tid") int id);
2021-06-02 15:00:42
99
原创 mybatis多对一
1、什么是多对一顾名思义,多对一即多个对象对应一个对象,这里我们用多个学生对应一个老师来举例2、实际操作2.1、创建学生表 student,和老师表 teacher学生表CREATE TABLE `student` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, `tid` INT(10) DEFAULT NULL, PRIMARY KEY (`id`), KEY `fktid` (`tid`), CONS
2021-06-02 14:08:23
1927
原创 Mysql(zip版)安装步骤
1.官网下载https://downloads.mysql.com/archives/community/2.解压缩解压到你想存放的目录(我存放在E:\Environment\mysql-5.7.19),然后打开mysql文件夹,新建my.ini文件,把以下内容添加进去[mysql]# 设置mysql客户端默认字符集default-character-set=gbk [mysqld]# 设置3306端口port = 3306 # 设置mysql的安装目录basedir=E:\Envir
2021-04-01 13:53:19
242
原创 数据库的数据类型
数据库的数据类型数值tinyint 十分小的数据 1个字节smallint 较小的数据 2个字节mediumint 中等大小的数据 3个字节int 标准的整数 4个字节bigint 较大的数据 8个字节float 浮点数 4个字节double 浮点数 8个字节(精度问题!)decimal 字符串型浮点数,金融计算的时候,一般使用decimal字符串char 字符串固定大小 0~255varhcar 可
2021-03-11 22:56:50
207
原创 MVC框架简介
MVC框架简介前言一、MVC是什么?二、框架内容1.模型2.视图3.控制器总结前言 本篇文章主要简单介绍一下MVC框架,适合初学者,参考自百度百科。一、MVC是什么? MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范。 Model(模型)表示应用程序核心(比如数据库记录字段)。 View(视图)显示数据(数据库记录)。 Controller(控制器)处理输入(写入数据库
2020-11-04 10:12:03
2003
原创 HashMap和HashSet的区别
HashMap和HashSet区别HashMapHashSetHashMap实现了Map接口HashSet实现了Set接口HashMap存储键值对HashSet只存储对象使用put()方法将元素放入map中使用add()方法将元素放入set中HashMap中使用键对象来计算hashcode值HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcod可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回fa
2020-07-18 19:48:10
98
原创 方法重载
方法重载overload重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回值类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。重载规则方法名必须相同方法的参数个数或参数类型必须不同方法的返回值类型可以不同方法的修饰符可以不同被重载的方法可以声明新的或更广的检查异常方法能够在同一个类中或者在一个子类中被重载无法以返回值类型作为重载函数的区分标准方法重写override重写是子类对父类
2020-07-16 06:52:44
538
转载 String和StringBuffer的区别
String和StringBuffer的区别String:是对象不是原始类型。是不可变对象,一旦被创建,就不能修改它的值。对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去。String类是final类型,不能被继承。public class TestString { public static void main(String[] args) { String str = "123"; str += "abc";
2020-06-06 17:25:10
96
原创 Arrays类中的常用方法
Arrays类中的常用方法Arrays类的定义Arrays类位于java.util 包中,主要包含了操纵数组的各种方法Arrays类常用的方法1.toString() 返回指定数组内容的字符串表示形式2.sort() 对指定的类型数组按数字升序进行排序3.binarysearch() 使用二分搜索法来搜索指定类型数组,以获取指定值(要求数组中元素已经按照升序排序)4.fill() 将指定值分配给指定数组的每个元素import java.util.Arrays;public cla
2020-06-06 17:00:03
1436
原创 String类常用的方法
String类常用的方法charAt() 获取指定索引位置的字符length() 获取指定字符串的长度public class Demo { public static void main(String[] args){ String name = "胡歌"; char ming = name.charAt(1); System.out.println(ming); String str = "我是中国人";
2020-06-06 14:27:07
85
原创 连接查询
连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据。 用到的表: t_book t_bookTypeselect*from t_book,t_bookType;1.内连接查询 内连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表select*from t_book,t_bookType where t_book.bookTypeId=t_book.id; 使用缩写,t_book缩写为tb,t_boo...
2020-06-05 23:10:03
145
原创 “equals”和“==”的区别
“==”比较的是引用地址具体用实例说明:public class Demo1 { public static void main(String[] args){ String name1 = "胡歌"; String name2 = new String("胡歌"); String name3 = name2; Sy...
2020-03-10 11:47:26
71
原创 Java中的内部类
内部类:在类的内部定义的类优点:可以方便的使用外部类的属性缺点:破坏类的结构实列:public class Outer { private int a = 9; class Inner{ public void show(){ System.out.println(a); //内部类可以方便的使用外部类的属性 ...
2020-03-09 12:24:40
92
原创 Java中next()和nextLine()的区别
Java中Scanner类中的方法next()和nextLine()都是吸收键盘输入的字符,区别:next()不会吸取字符前后的空格、Tab键,只吸收字符,开始吸收字符(字符前后不算)直到遇到空格/Tab键/回车键执行结束;nextLine()吸收字符前后的空格/Tab键盘,回车键截至。import java.util.Scanner;import java.util.Vector;...
2020-03-08 23:30:46
259
原创 学习Java中的一些小细节
1.++i和i++的区别int x = 1;int y = 9;y = x++;System.out.println(y); //y = 1y = ++x;System.out.println(y); //y = 22.异或“ ^ ”,前后两个结果不一致,结果为真true ^ false --> ture3.短路与&&,当左侧为false时,不再考虑右侧...
2020-03-05 21:48:46
110
原创 Mysql的常用命令
MySql基本使用方法一,基本概念 a,数据库-database 保存有组织的数据的容器(通常是一个文件或一组文件) b,表-table 某种特定类型数据的结构化清单 c,模式-schema 关于数据库和表的布局及特性的信息 d,列-column 表中的一个字段,所有表都是由一个或多个列组成的 e,...
2020-03-04 16:52:27
99
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人