博客数据备份
用来备份自己博客中的文章,充当OSS,异地备份
Fortuneteller6
这个作者很懒,什么都没留下…
展开
-
MybatisPlus从入门到放弃
本文主要内容:MybatisPlus的使用MybatisPlus快速入门一、MybatisPlus简介MybatisPlus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生二、快速开始1、创建数据库 mybatis_plus2、创建User表CREATE TABLE user( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMM原创 2020-06-16 10:28:36 · 482 阅读 · 0 评论 -
手把手快速搭建个人博客
本文主要内容:使用Typecho模板系统快速搭建博客使用Typecho模板系统快速搭建博客搭建前准备工作1.购买服务器(阿里云、腾讯云等)阿里云学生机(每年114元):阿里云学生机阿里云普通机(3年367元):阿里云普通机购买后安装CentOS7.X版本以上的系统(7.X以上方便自己学习Liunx相关知识)2.修改服务器密码并配置安全组规则3.购买域名4.域名备案(只要是中国境内的服务器均需要备案,需要10天左右)5.下载Typecho博客系统和下载远程连接服务器需要的工具(我已原创 2020-06-08 10:07:32 · 525 阅读 · 0 评论 -
Docker(四):Docker部署SpringBoot项目
本文主要内容:使用Docker部署SpringBoot项目1.使用Maven构建获得jar包2.编写DockerfileFROM java:8COPY *.jar /app.jarCMD ["--server.port=8080"]EXPOSE 8080ENTRYPOINT ["java", "jar", "app.jar"]3.上传Docker与jar包到Linux服务器4.使用命令获得镜像docker build -t ideatest .5.使用命令查看构建到的镜像原创 2020-06-04 15:37:43 · 175 阅读 · 0 评论 -
Docker(三):理解Docker镜像、Docker容器数据卷和DockerFile
本文主要内容:深入理解Docker镜像、Docker容器数据卷和DockerFileDocker镜像理解Docker镜像是什么镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时库、环境变量和配置文件Docker镜像加载原理UnionFs:联合文件系统UnionFs(联合文件系统):Union文件系统(UnionFs)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,原创 2020-06-04 15:36:01 · 1237 阅读 · 0 评论 -
Docker(二):Docker常用命令和安装Nginx与Tomcat
本文主要内容:Docker常用容器、镜像命令和安装Nginx与TomcatDocker帮助命令1. docker version # 显示Docker的版本信息2. docker info # 显示Docker的系统信息(包含镜像与容器的数量)3. docker 命令 --help # 查看帮助(就是显示这个命令有什么可选项)Docker镜像命令docker images:显示本机上所有安装镜像[root@MT ~]# docker imagesREPOSI原创 2020-06-04 15:32:26 · 205 阅读 · 0 评论 -
Docker(一):Docker安装与底层原理
本文主要内容:Docker安装与底层原理Docker的组成镜像(image):Docker镜像就相当于是一个文件系统,通俗来说就是为容器用来创建容器的容器(Container):Docker 利用容器 (Container) 独立运行的一个或一组应用,容器是用镜像创建的运行实例,它可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台,可以把容器看做是一个简易版的Linux系统容器就相当于Java中的对象,镜像相当于Java中的类仓库(Repository)仓库是集中存放镜原创 2020-06-04 15:31:15 · 272 阅读 · 0 评论 -
Java多线程(三):读写锁、阻塞队列和自定义线程池
本文主要内容:读写锁、阻塞队列和自定义线程池五、读写锁ReentrantReadWriteLock:读写锁出现就是为了更加方便的操作多条线程对资源的读写readWriteLock.readLock():读锁 == 共享锁readWriteLock.writeLock():写锁 == 独占锁public class ReadWriteLockTest { public static void main(String[] args) { MyThreads myThread原创 2020-06-04 15:28:53 · 435 阅读 · 0 评论 -
Java多线程(二):集合类不安全和常用的辅助类
本文主要内容:解决多线程操作集合类不安全问题、常用的辅助类一、集合类不安全ArrayList当我们使用多线程操作同一个ArrayList时会产生以下问题:java.util.ConcurrentModificationException(并发修改异常)public class SafeArrayList { public static void main(String[] args) { List<String> list = new ArrayList原创 2020-06-04 15:27:08 · 234 阅读 · 0 评论 -
Java多线程(一):Synchronized与Lock的使用
本文主要内容:Lock锁解决卖票问题、Lock版的生产者与消费者和Synchronized与Lock区别Lock锁解决卖票问题1.Synchronized版public class SaleTicket_Synchronized { public static void main(String[] args) { Ticket_Synchronized ticket_synchronized = new Ticket_Synchronized(); new原创 2020-06-04 15:26:12 · 209 阅读 · 0 评论 -
SpringBoot之整合Shiro
本文主要内容:SpringBoot整合Shiro###Shiro基本介绍1.基本概念:Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理2.Shiro的三大核心组件:Subject, SecurityManager和Realms1. Subject:是一个安全术语,其基本意思是“当前的操作用户”,称之为“用户”并不准确,因为“用户”一词通常跟人相关,但是Subject也可以是第三方进程、后台帐户(Daemon Account)、定时作业(Corn Job)或其他类似事原创 2020-06-04 15:25:38 · 201 阅读 · 0 评论 -
SpringBoot之集成Swagger
本文主要内容:使用SpringBoot集成Swagger、Swagger中的注解SpringBoot集成Swagger首先需要引入相关依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dep原创 2020-06-04 15:23:14 · 129 阅读 · 0 评论 -
SpringMVC基础学习(二):响应数据、实现文件上传、实现异常处理、实现拦截器
本文主要内容:响应数据、SpringMVC实现文件上传、SpringMVC实现异常处理、SpringMVC实现拦截器响应数据返回值类型为String方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址返回值是void1.如果控制器的方法返回值编写成void,执行程序报404的异常,默认查找JSP页面(此方法的@RequestMapping()注解提供的页面)没有找到2.可以使用请求转发或者重定向跳转到指定的页面返回值是ModelAndView对象1.ModelAndV原创 2020-06-04 15:21:29 · 191 阅读 · 0 评论 -
SpringMVC基础学习(一):请求参数、请求注解
本文主要内容:SpringMVC执行流程、请求参数的绑定、SpringMVC常用请求注解SpringMVC的执行流程请求参数的绑定请求参数的绑定说明1.绑定机制1.表单提交的数据都是k=v格式的 username=zhangsan&password=1232.SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的3.要求:提交表单的name和参数的名称是相同的2.支持的数据类型1.基本数据类型和字符串类型2.实体类型(JavaBean)原创 2020-06-04 15:20:47 · 560 阅读 · 0 评论 -
Spring基础学习(三):基于XML和注解的AOP
本文主要内容:基于XML和注解的AOP使用AOP概念AOP:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率个人理解:就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增原创 2020-06-04 15:19:10 · 279 阅读 · 0 评论 -
Spring基础学习(二):基于注解的IOC配置
本文内容:基于注解的IOC配置一、 基于注解的配置中,我们需要查看是否存在aop的jar包二、 常用注解介绍1. @Component:作用:把资源交给Spring管理,相当于xml中的一个bean属性:①. value:相当于bean的id,如果不指定value属性,默认为当前类名的首字母小写2. @Controller @Service @Repository作用:这三个注解都是@Componet注解的衍生注解,它们的作用和属性与@Componet是一样的,只是提供了更加明确的使用位置原创 2020-06-04 15:17:23 · 207 阅读 · 0 评论 -
Spring基础学习(一):基于XML的IOC配置
本文主要内容:Spring基于XML的IOC环境搭建、依赖注入Spring基于XML的IOC环境搭建IOC:控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度个人理解:通过反射的方式来创建对象(这里我们通过Spring框架来帮我们实现通过反射获取对象)来实现降低耦合关于通过反射获取对象的XML文件的编写(就是编写要获取的具体bean对象)使用默认构造函数创建,在Spring的配置文件中(XML)使用bean标原创 2020-06-04 15:15:19 · 175 阅读 · 0 评论 -
MyBatis基础学习(四):注解
本文主要内容:使用注解完成单表CRUD操作、多表查询和缓存单表的CRUD操作定义实体类user使用注解完成增删改查方法**(只需要在方法接口上添加注解)**增加方法:@Insert(“insert into user(username, address, sex, birthday) values (#{username}, #{address}, #{sex}, #{birthday} )”)删除方法: @Delete("delete from user where id = #{id}原创 2020-06-04 15:08:45 · 125 阅读 · 0 评论 -
MyBatis基础学习(三):延时、缓存
本文主要内容:Mybatis框架中的延时加载、一二级缓存延时加载立即加载:不管用不用,只要调用方法,就立马查询延时加载:在真正使用数据时才发起查询,不用的时候不查询,按需查询延时加载实例我们假设一个人可能会有多个账户,此时数据库中含有一张user表和一张account表(account表中uid关联user表中的id主键)user表实体类account表实体类在主配置文件中开启延时加载所需要的配置在AccountDao和AccountDao.xml中定义通过id查询的接口原创 2020-06-04 15:07:32 · 154 阅读 · 0 评论 -
MyBatis基础学习(二):动态SQL语句和单、多表查询
本文主要内容:Mybatis中的动态SQL语句、单表查询、多表查询Mybatis中的动态SQL语句####动态SQL(一):where与if标签的使用首先我们在实体类中定义一个QueryVo定义我们需要使用的查询方法(即Dao中的方法)在UserDao.xml中完成sql语句的书写,这里有两种书写形式(不建议使用拼字符串where 1 = 1所以不做展示)####动态SQL(二):foreach标签的使用定义我们需要使用的查询方法在UserDao.xml中完成sql语句的书写原创 2020-06-04 15:02:56 · 327 阅读 · 0 评论 -
Mybatis基础学习(一):通过Mybatis完成对数据库的基本CRUD操作
本文主要内容:Mybatis在IDEA上基本环境配置、使用Mybatis完成对数据库的CRUD操作Mybatis在IDEA上基本环境配置使用Maven来创建一个简单的Mybatis项目在pom.xml中添加Mybatis框架所需要依赖的坐标(jar包)org.mybatismybatis3.4.5 <dependency> <groupId>mysql</groupId> <artifactId>mysql-原创 2020-06-04 15:00:21 · 298 阅读 · 0 评论 -
JDBC技术(四):阿里巴巴的Druid数据库连接池、Apache的DBUtils
本文主要内容:阿里巴巴的Druid数据库连接池、Apache的DBUtils一、使用数据库连接池连接MySQL数据库常见数据库连接池C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection和Statement池的DataSources对象DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池。DBCP可以直接的在应用程序中使用Druid:Druid不仅是一个数原创 2020-06-04 14:58:06 · 735 阅读 · 0 评论 -
JDBC技术(三):JDBC实现数据库的增删改查操作---Version2.0(事务版)
本文主要内容:JDBC实现数据库的增删改查操作—Version2.0(事务版)一、 数据库事务简要说明什么叫数据库事务?事务:一组逻辑操作单元,使数据从一种状态变换到另一种状态一组逻辑操作单元:一个或多个DML语句事务处理的原则:保证所有的事务都作为一个工作单元来执行,即使处理故障,都不能改变这种方式,要么所有的事务都被提交(commit),这些修改就会永久的保存;要么就整个事务回滚(rollback)到最初状态数据一旦提交,就不可回滚哪些操作会导致数据的自动提交?DDL原创 2020-06-04 14:56:45 · 177 阅读 · 0 评论 -
JDBC技术(二):实现对数据库中表数据的CRUD操作
本文主要内容:实现对数据库中表数据的CRUD操作1.获取数据库连接与关闭的通用方法/** * 操作数据库的工具类 */public class JDBCUtils { /** * 获取连接 * @return 返回一个连接对象 * @throws Exception 解决可能出现的错误 */ public static Connection getConnection() throws Exception{ //1. 读取配原创 2020-06-04 14:55:30 · 637 阅读 · 0 评论 -
JDBC技术(一):JDBC概念、如何通过JDBC连接MySQL数据库
本文主要内容:JDBC概念、如何通过JDBC连接MySQL数据库JDBCJava Database Connectivity,简称JDBC,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法JDBC连接MySQL数据库的几种方式方式一:创建Driver()对象 @Test public void test1() throws SQLException { Driver driver = new com.mysql.cj.jdbc.原创 2020-06-04 14:54:32 · 277 阅读 · 0 评论 -
关系型数据库学习(五):DCL
本文主要内容:DCLDCL:数据库的管理* 管理用户 1. 添加用户: * 语法: create user '用户名'@'主机名' idntified by '密码'; //主机名使用%来代替,表示在任何一台电脑上都可以登录 * 注意: 这里不使用DML中的insert语句向mysql库下的user表中直接添加数据 2. 删除用户: * 语法: drop user '用户名'@'主机名'; 3. 修改用户密码: * 语法1: update user set原创 2020-06-04 14:53:01 · 142 阅读 · 0 评论 -
关系型数据库学习(四):多表查询、事务
本文主要内容:多表查询、事务多表查询1. 最简单的多表查询: select * from 列名1, 列名2...; * 结果: 结果集为笛卡儿积: 集合A、B, 取两个集合的所有情况 * 要完成多表查询需要消除笛卡儿积产生的无用数据2. 多表查询的分类 * 内连接查询: 1. 隐式内连接: 使用where条件消除无用的数据 * 实例: select t1.name, t1.gender, t2.name from emp t1, dept t2, where t1.'dept_id'原创 2020-06-04 14:52:23 · 232 阅读 · 0 评论 -
关系型数据库学习(三):约束、数据库的备份与还原
本文主要内容:约束、数据库的备份与还原约束* 概念: 对表中的数据进行限定,保证数据的正确性、有效性和完整性* 分类: 1. 主键约束: primary key 2. 非空约束: not null 3. 唯一约束: unique 4. 外键约束: foreign key* 非空约束: not null, 值不能为空 1. 创建表时添加约束: create table student(id int, name varchar(5) not null); 2. 修改表的属性为非空:原创 2020-06-04 14:51:52 · 231 阅读 · 0 评论 -
关系型数据库学习(二):DQL
本文主要内容:DQLDQL:查询表中的记录1. 基本语法 * 格式: select * from 表名; * 说明: 1. select后面写表的列表名,如果是*表示在结果集查询表中的所有列 2. select后面的列名部分,我们可以使用as为列名起别名,这个别名显示在结果集中 3. 如果要查询多个列,之间使用逗号分隔 * 实例: 1. select * from stundet; --> 最简单的查询全部 2. select name as a, age原创 2020-06-04 14:50:49 · 160 阅读 · 0 评论 -
关系型数据库学习(一):SQL简介、DDL、DML
本文章主要内容:SQL简介、DDL、DMLSQL1. 什么是SQLStructured Query Language:结构化查询语言其实就是定义了操作所有关系型数据库的规则,每一种数据库操作的方式存在的不一样的地方,称为“方言”2. SQL通用语法1. SQL语句可以单行或多行书写,以分号结尾2. 可以使用空格和缩进来增强语句的可读性3. MySQL的数据库的SQL语句不区分大小写,关键字建议使用大写4. 三种注释写法 * 单行注释: -- 注释内容 或 # 注释内容(MySQL特有)原创 2020-06-04 14:50:01 · 510 阅读 · 0 评论