自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 48张帮助程序员梳理知识框架结构图谱

汇集整理泛 IT 技术领域(云计算,大数据,运维,安全,开发语言,智能硬件,前端,后端等等)学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源,方便技术人学习成长。 后续技能图谱内容将会持续更新H5技能图谱1.0.pngHadoop技能图谱.jpgiOS技能图谱.jpgJava List类图.jpgJava Map类图.jpgJava Set类图.j...

2020-01-06 14:22:12 1149

原创 for遍历Collection二种方式

源码: /** * 使用for循环遍历Collection */ @Test public void test13(){ String [] str = {"A","B","C","D","E","F"}; Collection coll = Arrays.asList(str); // 方式一: 使用迭代器...

2020-01-09 10:11:58 882

原创 Java使用For循环打印漂亮的星号图形

图形一源码: /** * 使用Java for循环打印星号图形 */ @Test public void test15(){ for (int i = 0;i<15;i++){ for (int j = i;j<15;j++){ System.out.print("*");...

2020-01-09 09:59:41 5642 1

原创 Java打印九九乘法表

/** * 嵌套循环打印九九乘法表 */ @Test public void test14(){ for (int i = 1;i<10;i++){ for (int j = 1;j<=i;j++){ System.out.print(j+" X " +i+ " = "+(i...

2020-01-09 09:43:49 711

原创 深入理解Java中的String

一、String类想要了解一个类,最好的办法就是看这个类的实现源代码,来看一下String类的源码:复制代码public final class Stringimplements java.io.Serializable, Comparable, CharSequence{/** The value is used for character storage. */private f...

2020-01-08 14:38:54 146

原创 Java基本数据类型与包装类型

基本数据类型的包装类为什么需要包装类?Java并不是纯面向对象的语言。Java语言是一个面向对象的语言,但是Java的基本数据类型却不是面向对象的。但是我们在实际使用中经常需要将基本数据转化成对象,便于操作。比如:集合的操作中,这是,我们就需要将基本类型数据转化为对象。包装类均位于java.lang包,使用时不需要导入,系统自动导入。Java中的8个包装类分别是:Byte,Short...

2020-01-07 09:20:06 170

原创 Java数据类型学习(2)

一、数据类型基本数据类型示意图1.布尔型(boolean) :true/false,不可以以0或非0的数字代替;不能进行数据之间的转换。2.整数类型** 整型默认为int型,而long类型表示的范围要超出int表数范围,所以,声明long类型时,常量后要加L(l)。如:long l1=12345678 // 数值在int范围之内,还不会出错 long l2=88888888...

2020-01-06 18:42:47 111

原创 Java基本数据类型概述

基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型。java是一种强类型语言,第一次申明变量必须说明数据类型,第一次变量赋值称为变量的初始化。一、八种基本数据类型的概述:Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型...

2020-01-06 16:05:52 258

原创 Spring Boot 对基础 Web 开发的支持(下)

2020-01-05 22:13:51 130

原创 Spring Boot 对基础 Web 开发的支持

首先让大家快速认识Spring Boot 对基础Web开发所做的优化;接下来讲解了如何在SpringBoot中使用前端技术JSP、Thymeleaf,重点介绍了Thymeleaf的各种使用场景;后面几课介绍了如何使用Spring Boot 来构建RESTful服务、RESTful APIs,利用WebSocket双向通信的特性创建聊天室。自从B/S架构(Browser/Server,浏览器/服...

2020-01-05 22:07:32 350

原创 Spring Boot的第一个程序——Hello World——Spring Boot(四)

在学习新技术的时候我们都喜欢先写一个Hello World程序,一方面可以验证基础环境的搭建是否正确,另一方面可以快速了解整个开发流程。本节课我们就来学习Spring Boot的第一个Hello World程序。什么是Spring BootSpring在官方首页这样介绍:BUILD ANYTHING.Spring Boot is designed to get you up and...

2020-01-05 00:25:42 544

原创 Spring Boot 依赖环境和项⽬目结构——Spring Boot(三)

使用Spring Boot 开发项目需要有两个基础环境和一个开发工具,这两个环境是指Java编译环境和构建工具环境,一个开发工具是指IDE开发工具。Spring Boot 2.0要求Java8作为最低版本,需要在本机安装JDK1.8并进行环境变量配置,同时需要安装构建工具编译 Spring Boot项目,最后准备一个顺手的IDE开发工具即可。构建工具是一个把源代码生成可执行应用程序的自动化...

2020-01-04 19:30:40 296

原创 Spring Boot 2.0 都更更新了什么——Spring Boot(二)

Spring Boot 2.0支持了动态Gif的启动Logo打印。在Spring Boot 1.0项目中 src/main/resources 路径下新建一个banner.txt文件,文件中写入一些字符,启动项目时就会发现默认的 Banner被替换了,到了Spring Boot2.0现在可以支持Gif文件的打印,Spring Boot2.0在项目启动的时候,会将Gif图片的每一个画面,按照顺序...

2020-01-04 17:11:41 282

原创 Spring Boot 产⽣生的背景和它的设计理理念——Spring Boot(一)

要了解 Spring Boot 产⽣生的背景,我们就必须要先了了解⼀一下 Spring 发展史,不仅因为 Spring Boot 来源于Spring 体系,而且 Spring Boot 的诞生和 Spring 框架的发展息息相关。Spring的发展史:时间回到2002年,当时正是JavaEE和EJB大行其道的时候,很多知名公司都是采用此技术方案进行项目开发。这时候有一个美国的小伙子认为E...

2020-01-04 16:21:50 342

原创 Redis面试题汇总(一)

关于的知识点总结成了思维导图1、什么是 Redis?Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:(1)Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。(2)Redis 不仅仅支持简单的 key-value 类型...

2020-01-01 19:10:38 242

原创 Mysql的隔离级别和传播机制

TRANSACTION(事务隔离级别)在说明事务隔离级别之前先说一下脏读、不可重复读、幻读这三个概念。脏读:一个事务读取到另一事务未提交的更新新据。当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据, 那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作也可能是不...

2020-01-01 18:36:30 681

原创 Mybatis--SQL语句构建器类

问题Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL语句。这么来做通常是由于SQL语句需要动态来生成-否则可以将它们放到外部文件或者存储过程中。正如你已经看到的那样,MyBatis在它的XML映射特性中有一个强大的动态SQL生成方案。但有时在Java代码内部创建SQL语句也是必要的。此时,MyBatis有另外一个特性可以帮到你,在减少典型的加号,引号,新行,格式化问题和嵌入条...

2020-01-01 16:12:24 163

原创 MyBatis--XML 映射文件

XML 映射文件MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。SQL 映射文件只有很少的几个顶级元素(按照应被定义的顺序列出):cache– 对给定命名空间的...

2020-01-01 16:05:27 169

原创 MyBatis-XML配置

配置MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 配置文档的顶层结构如下:configuration(配置)properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置...

2019-12-31 20:53:34 104

原创 Mybatis-动态SQL

动态 SQLMyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的...

2019-12-31 16:00:11 123

原创 Mybatis缓存

一、MyBatis缓存介绍  正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为Session,当Session flush或close之后,该Session中的所有 Cache 就将清空。  2.二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCa...

2019-12-31 13:19:53 352

原创 Mybatis调用存储过程

一、提出需求  查询得到男性或女性的数量, 如果传入的是0就女性否则是男性二、准备数据库表和存储过程-- 创建测试表create table p_user( id int primary key auto_increment, name varchar(10), sex char(2)); -- 插入测试数据insert into p_us...

2019-12-31 11:12:48 122

原创 MyBatis实现关联表查询

一、一对一关联1.1、提出需求  根据班级id查询班级信息(带老师的信息)1.2、创建表和数据  创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关系。CREATE TABLE teacher( t_id INT PRIMARY KEY AUTO_INCREMENT, t_name VARCHAR(20...

2019-12-30 17:01:42 295

原创 解决字段名与实体类属性名不相同的冲突

在平时的开发中,我们表中的字段名和表对应实体类的属性名称不一定都是完全相同的,下面来演示一下这种情况下的如何解决字段名与实体类属性名不相同的冲突。一、准备演示需要使用的表和数据CREATE TABLE orders( order_id INT PRIMARY KEY AUTO_INCREMENT, order_no VARCHAR(20), order_pric...

2019-12-30 14:44:02 751

原创 优化MyBatis配置文件中的配置

一、连接数据库的配置单独放在一个properties文件中  之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "ht...

2019-12-30 13:53:21 137

原创 使用MyBatis对表执行CRUD操作

上一篇博文MyBatis快速入门(一)中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对users表执行CRUD操作。本文中使用到的测试环境是上一篇博文中的测试环境。一、使用MyBatis对表执行CRUD操作——基于XML的实现1、定义sql映射xml文件  userMapper.xml文件的内容如下...

2019-12-30 12:15:25 345

原创 MyBatis快速入门(一)

一、Mybatis介绍    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。二、mybatis快速入...

2019-12-29 22:35:21 220

转载 文件上传和下载

在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。  对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。这个common-fileuplo...

2019-12-29 14:10:06 275

转载 监听器(Listener)学习

一、监听器介绍1.1、监听器的概念    监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。1.2、监听器案例——监听window窗口的事件监听...

2019-12-29 13:52:55 703

转载 监听器(Listener)学习二

一、监听域对象中属性的变更的监听器  域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。  这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletReque...

2019-12-29 13:52:37 129

转载 Filter高级开发

在filter中可以得到代表用户请求和响应的request、response对象,因此在编程中可以使用Decorator(装饰器)模式对request、response对象进行包装,再把包装对象传给目标资源,从而实现一些特殊需求。一、Decorator设计模式1.1、Decorator设计模式介绍  当某个对象的方法不适应业务需求时,通常有2种方式可以对方法进行增强:编写子类,覆盖...

2019-12-27 14:26:39 132

转载 Web应用中使用JavaMail发送邮件

现在很多的网站都提供有用户注册功能,通常我们注册成功之后就会收到一封来自注册网站的邮件。邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息。今天我们也来实现一个这样的功能,用户注册成功之后,就将用户的注册信息以Email的形式发送到用户的注册邮箱当中,实现发送邮件功能就得借助于JavaMail了。一、搭建开发环境1.1、创建Web项目  1.2、用户注...

2019-12-27 13:04:13 209

转载 使用JavaMail创建邮件和发送邮件

一、RFC882文档简单说明  RFC882文档规定了如何编写一封简单的邮件(纯文本邮件),一封简单的邮件包含邮件头和邮件体两个部分,邮件头和邮件体之间使用空行分隔。  邮件头包含的内容有:from字段  --用于指明发件人 to字段  --用于指明收件人 subject字段--用于说明邮件主题 cc字段  -- 抄送,将邮件发送给收件人的同时抄送给另一个...

2019-12-27 13:03:58 170

转载 邮件的发送与接收原理

一、邮件开发涉及到的一些基本概念1.1、邮件服务器和电子邮箱  要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器。例如现在Internet很多提供邮件服务的厂商:sina、sohu、163等等他们都有自己的邮件服务器。  这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。  电子邮箱(E-Mail地址)...

2019-12-27 13:03:46 981

转载 Filter(过滤器)学习

一、Filter简介  Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。  Servlet API中提供了一个Filter...

2019-12-27 13:03:33 125

转载 Apache的DBUtils框架学习

一、commons-dbutils简介   commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司的首选。  commons-dbutilsAPI介绍:org.apache.co...

2019-12-27 13:03:22 201

转载 编写自己的JDBC框架

一、元数据介绍  元数据指的是"数据库"、"表"、"列"的定义信息。1.1、DataBaseMetaData元数据  Connection.getDatabaseMetaData()获得代表DatabaseMetaData元数据的DatabaseMetaData对象。  DataBaseMetaData对象的常用方法:getURL():返回一个String类对象,代表数据库的UR...

2019-12-27 13:03:11 178

转载 数据库连接池

一、应用程序直接获取数据库连接的缺点  用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。如下图所示:  二、使用数据库连接池优化程序性能2.1、数据库连接池的基本概念  数据库连接是一种关键的有限的昂贵的资...

2019-12-27 13:03:00 686

转载 数据库事务

一、事务的概念  事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。  例如:A——B转帐,对应于如下两条sql语句   update from account set money=money+100 where name='B';   update from account set money=money-100 where name='A';二、M...

2019-12-27 13:02:46 136

转载 获得MySQL数据库自动生成的主键

测试脚本如下:1 create table test12 (3 id int primary key auto_increment,4 name varchar(20)5 );测试代码:package me.gacl.demo;import java.sql.Connection;import java.sql.PreparedStatement...

2019-12-27 13:02:28 469

空空如也

空空如也

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

TA关注的人

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