自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 前后端传输文件

前后端传输文件

2022-11-21 17:20:38 360 1

原创 Vue入门

第一个Vue程序:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <!--导入vue的cdn--> <script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script></h

2021-09-07 21:41:17 129

原创 PriorityQueue

简要介绍Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。优先队列的作用是能保证每次取出的元素都是队列中权值最小的。牵涉到的大小关系,元素大小的评判可以通过元素本身的自然顺序,也可以通过构造时传入的比较器(Comparator,实现的比较接口)。Java中PriorityQueue实现了Queue接口,不允许放入null元素。PriorityQueue的peek()和element()操作是常数时间,add(), offer(), 无参数的remove()以及poll

2021-08-27 15:51:14 142

原创 注解与反射

注解入门注解是从JDK5.0开始引入的新技术。注解的作用:(1)不是程序本身,可以对程序做出解释(2)可以被其他程序(如编译器)读取注解的格式:注解以"@注释名"在代码中存在,还可以添加一些参数值注解在哪里使用:可以附加在package,class,method,field上面,给他们添加了额外的信息,我们可以通过反射机制编程实现对这些元数据的访问。内置注解1.@Override定义在java.lang.Override中,此注释只适用于修辞方法,表示一个方法声明打算重写超类中另一个方法声

2021-08-24 21:48:45 142 1

原创 Ajax入门

Ajax, Asynchronous JavaScript and XML(异步JS和XML)。Ajax是一种无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。使用jQuery编写一个简易的联想器:<html> <head> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></sc

2021-08-21 17:07:57 350 2

原创 JSON入门

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使其成为理想的数据交换语言。易于人阅读和编写,也易于机器解析和生成,并有效提高网络传输效率。JSON是JS对象的字符串表示法,使用文本表示一个JS对象的信息,本质是一个字符串。var obj={a:'hello',b:'world'};var json='{"a":"hello","b":"world"}';从JSON转

2021-08-20 17:17:38 46

原创 JavaScript入门

1.什么是JavaScriptJavaScript是一门世界上最流行的脚本语言ECMAScript是JavaScript的一个标准,最新版本已经到es6版本,但是大部分浏览器还只支持es5版本。2.快速入门2.1 引入JavaScript:1.直接在body里面使用<body> <script> alert("hello,world"); </script></body>2.写成文件在head中引用<head> &lt

2021-08-19 16:07:01 174

原创 CSS入门

什么是CSSCascading Style Sheet,层叠级联样式表CSS 表现(美化网页)字体、颜色、边距、高度、宽度、背景图片、网页定位、网页浮动…CSS优势:(1)内容和表现分离(2)网页结构表现统一,可以实现复用(3)样式十分丰富(4)建议使用独立于html的css文件(5)利于SEO,容易被搜索引擎收录CSS作用:(1)有效传递页面信息(2)美化网页,吸引用户(3)凸显页面主题(4)提高用户体验CSS的导入方式1.行内样式<h1 style="color:

2021-08-13 22:13:59 57

原创 HTML入门

初识HTMLHyper Text Markup Language(超文本标记语言)超文本包括:文字、图片、音频、视频、动画等W3C标准包括:(1)结构化标准语言(HTML、XML)(2)表现标准语言(CSS)(3)行为标准(DOM、ECMAscript)...

2021-08-08 23:17:04 108

原创 Jsoup爬虫

导入依赖<dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.13.1</version></dependency>代码使用String url="此处填入网址";Document document=Jsoup.parse(new URL(url),10000);接下来就可以对d

2021-08-06 11:17:19 139

原创 springboot实现异步任务、邮件发送、定时任务

异步任务@RestControllerpublic class HelloController { @Autowired HelloService helloService; @GetMapping("/hello") String hello(){ helloService.Hello(); return "Hello"; }}@Servicepublic class HelloService { public

2021-08-05 09:02:10 69

原创 多线程入门

线程与进程进程是执行程序的一次执行过程,是系统分配资源的单位。一个进程中可以包含若干个线程,线程是CPU调度和执行的单位。如果是模拟出来的多线程,同一个CPU在同一个时间只能执行一个代码,但因为切换地很快,所以让人看上去像是同时进行的。(1)线程就是独立的执行路径(2)在程序执行的时候,即使没有自己创建线程,后台也会有多个线程(主线程,gc线程)(3)main是主线程,是系统的入口,用于执行整个程序(4)在一个进程中,如果有多个线程,线程的运行由调度器安排调度,调度器与操作系统紧密相关,先后

2021-08-03 21:00:18 54

原创 静态代理模式

静态代理模式先用一个例子来说明何为静态代理模式。假如你需要结婚,你可以委托婚庆公司进行代理。结婚本身这件事是你来做,但是其他布置任务都是婚庆公司来做。我们可以用如下的代码实现。1.先定义一个Marry接口。public interface Marry { void marry();}2.然后你实现Marry接口。public class You implements Marry { @Override public void marry() { Sys

2021-08-01 10:25:24 41

原创 lambda表达式

Lambda表达式属于函数式编程,避免了匿名内部类定义过多,让代码看上去更为简洁,去掉了一堆没有逻辑的代码,只留下核心的逻辑。函数式接口的定义:任何接口如果只包含一个抽象方法,那它就是一个函数式接口。对于函数式接口,我们可以通过lambda表达式来创建该接口的对象。简化过程首先,我们定义一个函数式接口。public interface ILike { void lambda(int a);}接下来有如下方法实现接口:1.编写一个实现类public class Like impl

2021-08-01 09:32:26 41

原创 springsecurity简易搭建

1.spring security是什么?是一个能够代替大量过滤器、拦截器源代码的框架。有了它,我们可以轻易实现页面跳转的逻辑。它主要由认证和授权构成。2.简易搭建(1)导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </depende

2021-07-29 22:38:45 68

原创 springboot简易拦截器

拦截器的用处譬如我们有一个页面/user/service,必须要登陆之后才能访问,这时候就需要token和拦截器了。基本过程是这样的:首次登陆,后端不仅返回登陆成功信号,而且返回一个临时的token(String)。之后再进入任何一个页面需要带上这个token,如果token没有传入或者已经过期,则会被退回到登陆页面。拦截器的实现1.在Config包下新建一个MyInterceptor实现HandlerInterceptor并且重写preHandle方法。@Configurationpublic

2021-07-24 18:45:00 305 1

原创 springboot处理静态资源与简易thymeleaf

处理静态资源我们一般将静态资源放在项目的如下三个位置:1.resources文件夹下新建一个resources文件夹(classpath:/resources)2.resources文件夹下新建一个static文件夹(classpath:/static)3.resources文件夹下新建一个public文件夹(classpath:/public)优先级:1>2>3...

2021-05-18 16:56:57 156

原创 yml配置详解

新建springboot的时候我们发现resources文件夹下带了一个application的properties文件,但是事实上yml文件更方便,也更强大。可以用application.yml来代替它。简单语法properties的语法:key=valueyml的语法:key:空格value空格不能删去。譬如:properties:server.port=8080yml:server: port: 8080配置对象yml还可以配置对象,并且通过一些注解来注入到bea

2021-05-14 10:51:25 8497

原创 springboot启动时选项

1.修改yml文件:spring: datasource: url: jdbc:mysql://localhost:3306/mydatabase?characterEncoding=UTF-8&&serverTimezone=GMT username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver initialization-mode: alwaysmy

2021-05-10 23:32:54 178

原创 springboot项目快速搭建

我们拿到上次刚刚搭好的springboot环境,并且可以发现在最主要的包下面仅有一个DemoApplication.java文件用来启动项目。此时,我们需要在这个包下面再新建若干的包。我们假设有一个user,它有属于自己的name和email。我们的任务是将其成功存入数据库。Controller这个包名为controller,位于控制层,作用是获取前端传来的参数,并且分配任务给业务层。创建一个类名为UserController.java,并在其中写入如下代码:@RestController@Re

2021-05-04 13:24:23 147

原创 mybatis之session管理

SqlSessionFactoryBuilder一旦使用SqlSessionFactoryBuilder对象创建SqlSessionFactory后,SqlSessionFactoryBuilder类就不需要存在了,也就是,不需要保持对象的状态,可以随意的由jvm销毁。SqlSessionFactorySqlSessionFactory对象是由SqlSessionFactoryBuilder创建。一旦创建SqlSessionFactory类的实例,该实例应该在应用程序执行期间都存在,不需要每一次操作数

2021-04-18 23:10:55 827

原创 mybatis动态sql

ifif标签能够有条件地包含 where 子句的一部分。<select id="findActiveBlogWithTitleLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{title} </if></select>如果传入的title参数不是

2021-04-15 23:10:32 311

原创 mybatis其他基础用法

include标签在我们使用查找的时候,经常会使用这样的语句:select * from mytable;但是这不好,会对效率产生影响,因为有的时候我们只是需要获取某些字段而已。select id,age,name from mytable;但是这样写很繁琐。可以进行如下的修改:<sql id="example"> id,age </sql><select id="selectBlog" resultMap="mymap"> select

2021-04-09 23:20:51 88

原创 Mybatis映射文件

查找这是一个select的例子:<select id="selectPerson" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id}</select> 其中,id是方法名,parameterType是参数类型,resultType是返回类型,#{id}是传入的值。增删改<insert id="insertAuthor"> insert i

2021-03-28 23:11:29 131

原创 详解mybatis中conf.xml的结构

在上一次的mybatis项目中,conf.xml起到了关键的配置作用。propertiesproperties的实质是一些键值对。我们有一些办法来加载这些键值对。(1)在properties 元素体内指定。 <properties> <property name="username" value="root"/> <property name="password" value="123456"/> </proper

2021-03-19 21:22:01 127

原创 简易Mybatis

简单介绍MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。一个简单的项目例子首先,在idea中新建一个maven项目。在pom.xml中添加如下代码: <build> &

2021-03-17 23:10:33 98 1

原创 mysql表分区

简单介绍mysql数据库中的数据是以文件的形式存在磁盘上的,默认放在/mysql/data下面,一张表主要对应着三个文件:(1)frm存放表结构(2)myd存放表数据(3)一个是myi存表索引如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数据就会变的很慢。这个时候我们可以利用mysql的分区功能,在物理上将这一张表对应的三个文件,分割成许多个小块,查找则可以分块查找。如果表的数据太大,可能一个磁盘放不下,这个时候,我们可以把数据分配到不同的磁盘里面去。表分区,是指根据一定规则,

2021-03-15 20:18:43 149

原创 mysql高级技术

聚集索引和主键索引mysql数据库默认使用InnoDB引擎。下面介绍一下聚集索引和主键索引。聚集索引基于数据行的键值在表内排序和存储这些数据行。每个表只能有一个聚集索引,因为数据行本身只能按一个顺序存储。表通常具有包含唯一标识表中每一行的值的一列或一组列。这样的一列或多列称为表的主键 ,用于强制表的实体完整性。每个表只能有一个主键。聚集索引决定了数据库的物理存储结构,而主键只是确定表格逻辑组织方式。在InnoDB引擎中,主键索引就是聚集索引,但是myisam引擎里面主键却不一定是聚集索引。my

2021-03-09 14:12:27 123 2

原创 mysql索引

在字典中找一个字,我们会先使用首字母或偏旁笔画得到字的页码,然后再通过页码找到这个字,而不是直接在字典中大海捞针地寻找。这个过程被称为“索引”。对mysql数据库也可以使用索引来大幅提高其查找速度,代价是更新、插入、删除将变得缓慢。mysql的索引通过b+树这个数据结构来完成。使用b+树的原因和磁盘分块有关,这样便于磁盘把一块数据放进内存进行操作,而不是全部在磁盘中进行,这样会很慢。查询的速度和树高有关。下面介绍索引的最左匹配特性。如果数据项是复合的数据结构,比如(name,age,sex)的时候,

2021-03-08 23:03:46 68 2

原创 简易JDBC

所谓JDBC就是Java数据库连接,我们可以通过Java来进行对数据库的操作。首先我们去官网下载mysql的Java驱动。mysql的java驱动把下载下来的zip文件解压,在java工程中添加lib文件夹,并将解压包其中的jar文件放入lib文件件。在idea中右击jar包并选择“Add as Library…”。然后编写简易的Java-mysql代码。String driver="com.mysql.jdbc.Driver";String url="jdbc:mysql://loc

2021-03-05 23:04:44 92

原创 mysql基本用法

就像安装一样,使用管理员身份打开cmd,切换到数据库bin文件夹下使用如下命令并键入密码即可登陆:mysql -u root -p登陆进mysql之后,使用:show databases;就能看见所有的库。随便选择其中一个数据库进行切换(比如mysql数据库):use mysql;这样就切换到了mysql数据库,之后就能对此数据库进行操作。想看到该数据库的所有表格,只需要:show tables;要查看其中任何一个表格的话(比如user表格),只要使用:show colu

2021-02-24 22:11:05 77

原创 mysql安装踩坑记录

首先到如下网站下载mysql:mysql下载网站下载完后,把压缩包解压到相应位置,我最终解压的文件夹为D:\mysql-8.0.23-winx64。然后在该文件夹下创建文件my.ini,在其中配置如下信息:[client]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]# 设置3306端口port = 3306# 设置mysql的安装目录basedir=D:\\mysql-8.0.23-winx64# 允许最大连接数ma

2021-02-24 11:11:19 120

原创 C++string类和标准模板库

string类string类包含大量的方法,包括了若干构造函数,用于将字符串赋给变量、合并字符串、比较字符串和访问各个元素的重载运算符以及在字符串中查找字符和子字符串的工具。首先指出:NBTS为以空字符结束的字符串。构造函数描述string(const char *s)将string对象初始化为s指向的NBTSstring(size_type n,char c)创建一个包含n个元素的string对象,其中每个元素都被初始化为字符cstring(const strin

2021-02-23 20:54:35 199

原创 C++友元、异常和其他

友元可以将类作为友元。这种情况下,友元类的所有方法都可以访问原始类的私有成员和保护成员。现在有一个tv类和一个remote类(遥控器),我们就可以把remote作为tv的友元。friend class Remote;友元声明可以位于公有、私有或保护部分,位置无关紧要。由于remote类提到了tv类,所以编译器必须了解tv类后才能处理remote类。为此,我们需要首先定义tv类。所有的remote方法都将一个tv对象引用作为引用,因此可以对任何一个tv对象进行操作。class Tv{ pub

2021-02-21 11:29:41 132 1

原创 C++代码重用

包含对象成员的类先介绍一个模板类valarray:valarray类由头文件valarray支持。模板特性意味着声明对象时,必须指定具体的数据类型。valarray<int> q_values;valarray<double> weights;以下是几个使用其构造函数的例子:double gpa[5]={3.1,3.5,3.8,2.9,3.3};valarray<double> v1;//size=0valarray<int> v2(8);

2021-02-19 19:45:10 177 1

原创 C++类继承

一个简单的继承例子从一个类派生出另一个类时,原始类称为基类,继承类称为派生类。先编写一个简单的基类:#ifdef TABTENN0_H_#define TABTENN0_H_#include <string>using std::string;class TableTennisPlayer{ private: string firstname; string lastname; bool hasTable; public: TableTenn

2021-02-16 16:25:13 111 1

原创 C++类和动态内存分配

动态内存和类如果有这样的strbad类:#include<iosream>#ifdef STRBAD_H_#define SREBAD_H_class strbad{ private: char * str; int len; static int num; public: strbad(const char *s); strbad(); ~strbad(); friend std::ostream & opera

2021-02-10 15:51:46 256

原创 C++类特性

运算符重载C++根据操作数的数目和类型决定使用哪种定义。运算符的定义和方法的定义类似。类的定义:class Time{ private: int hours; int minutes; public: Time(); Time(int h,int m=0); void AddMin(int m); void AddHr(int h); void Reset(int h=0,int m=0); Time operator+(con

2021-02-08 22:11:41 190

原创 C++对象和类

抽象和类定义类:(1)类声明:以数据成员的方式描述数据部分,以成员函数(方法)的方式描述公有接口。(2)类方法定义:描述如何实现类成员函数。通常,我们把接口(类定义)放在头文件中,并将实现放在源代码中。我们一般将类名首字母大写。#ifndef STOCK_H_#define STOCK_H_#include<string>class Stock{ private: std::string company; long shares; double s

2021-02-07 15:30:44 70

原创 Java正则表达式

正则表达式介绍正则表达式通常被用来检索、替换那些符合某个模式的文本。正则表达式在主流的操作系统、主流的开发语言、各种应用软件中都有使用。正则表达式特点:(1)灵活性、逻辑性和功能性都很强(2)可以迅速用简单的方式对字符串复杂控制(3)对刚接触的人来说,难接受常用元字符正则表达式由一些普通字符和元字符组成。普通字符包括大小写的字母和数字,而元字符具有特殊的含义。最简单的情况下,一个正则表达式看上去就是一个普通的查找串。比如,正则表达式"testing"中没有包含任何元字符,它可以匹配"test

2021-02-05 22:02:03 66

空空如也

空空如也

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

TA关注的人

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