自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wssh1854的博客

发表一些工作中遇到的问题解决方法,和部分学习心得。

  • 博客(77)
  • 资源 (7)
  • 收藏
  • 关注

原创 MySQL 排序让部分数据置顶或置底

方式:查询语句的排序里加=让STATUS = 1的数据置顶,其他数据按照STATUS倒序排列:SELECT id, STATUSFROM xm_ticket_data ORDER BY STATUS = 1 DESC让STATUS = 1的数据置底,其他数据随机排列(后面有更多的,也是如此):SELECT id, STATUSFROM xm_ticket_data ORDER BY STATUS = 1,4 DESC...

2021-08-10 10:52:09 1329

转载 Java8 中 List 转 Map(Collectors.toMap) 使用技巧

在实际项目中我们经常会用到 List 转 Map 操作,在过去我们可能使用的是 for 循环遍历的方式。举个例子:先定义类:// 简单对象 @Accessors(chain = true) // 链式方法 @lombok.Dataclass User { private String id; private String name;}然后有这样一个 List:List<User> userList = Lists.newArrayList( ne

2021-07-07 15:01:25 189

转载 php5.5的php-fpm启动、关闭、重启

启动php-fpm/usr/local/php5/sbin/php-fpm查看是否启动成功:netstat -lnt | grep 9000tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN或者使用如下命令,查看是否9000端口被php-fpm占用:netstat -tunpl | grep 9000tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN...

2021-05-27 14:50:06 297

原创 Java技术路线(2021)

1、单体应用注重熟练度,从零开始搭建项目。java基础: 基础语法、流程调度、集合、多线程、设计模式、网络通讯…前端: html、CSS、js、ajax…IDE: Eclipse、IDEA、VSCode…工具: tomcat、postman、git、maven、gradle、svn、jenkins各种博客: CSDN、github、gitee、语雀、石墨、ProcessOn开发框架:前端: Vue、React、Angular后端:SSM --> Spring、Sprinq

2021-05-16 00:41:08 1249 2

转载 Window 中杀死指定端口 cmd 命令行 taskkill

两步方法 : 1 查询端口占用,2 强行杀死进程netstat -aon|findstr "8080"taskkill /pid 4136-t -f在windows命令行窗口下执行过程1.查看指定端口的占用情况netstat -aon|findstr "8080" 协议 本地地址 外部地址 状态 ...

2021-02-27 19:36:01 223

原创 二、Spring Boot 2入门

1. 准备在开始之前,打开终端并运行以下命令,以确保安装了有效的Java和Maven版本:Java 8+:$ java -versionjava version "1.8.0_102"Java(TM) SE Runtime Environment (build 1.8.0_102-b14)Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)Maven 3.3+:.\conf\settings.xml:&l

2021-01-28 17:56:38 95 1

原创 一、Spring与SpringBoot

1. Spring能做什么1.1. Spring的能力1.2. Spring的生态https://spring.io/projects/spring-boot覆盖了:web开发数据访问安全控制分布式消息服务移动开发批处理…1.3、Spring5重大升级1.3.1、响应式编程1.3.2、内部源码设计基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。2、为什么用SpringBootSpring Boot makes it easy to create stan

2021-01-16 18:27:27 144 1

原创 《深入浅出Spring Boot 2.x》笔记

1 概述1.1 优点创建独立的Spring应用程序;嵌入的Tomcat、Jetty或者Undertow,无须部署WAR文件;允许通过Maven来根据需要获取starter;尽可能地自动配置Spring;提供生产就绪型功能,如指标、健康检查和外部配置;绝对没有代码生成,对XML没有要求配置。1.2 Spring Boot初试1.2.1 代码主程序:package com.springboot.chapter1.main;import java.util.HashMap;im

2021-01-05 18:01:49 215

转载 Windows搭建Git、TortoiseGit

1.Git简介:Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。Git与 SVN 区别GIT不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。Git与 SVN 区别点:GIT是分布式的,SVN不是...

2020-10-16 09:42:43 243

转载 IntelliJ IDEA For Mac 快捷键

Mac键盘符号和修饰键说明符号说明⌘Command⇧Shift⌥Option⌃Control↩︎Return / Enter⌫Delete⌦向前删除键(Fn + Delete)↑上箭头↓下箭头←左箭头→右箭头⇞Page Up(Fn + ↑)⇟Page Down(Fn + ↓)HomeFn + ←EndFn + →⇥右制表符(Tab)⇤左制表符(Shift +

2020-06-16 01:23:02 172

原创 七、数据类型转换

主要内容:理解数据类型的强制转换理解数据类型的自动转换Java程序要求参与计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。1 自动转换自动转换:将取值范围小的类型自动提升为取值范围大的类型。如一个 int 类型变量和一个 byte 类型变量进行加法运算,结果会是什么数据类型?答案是 int 类型,这就是出现了数据类型的自动类型转换现象:public static void main(String[] args) { int i = 1; byte .

2020-06-14 20:07:37 330

原创 五、原码、反码和补码

1 二进制表示法概念:将一个数值用二进制表示,置于最低位,按指令长度将高位补零。如 5 在二进制中表示为 101B(B为二进制单位)在32位计算机中表示为:00000000 00000000 00000000 00000101(5 二进制)但由于计算机中没有正负只有 0 和 1 ,二进制是没办法直接表示负数,为了解决这个问题原码就诞生了。2 原码2.1 原码表示法在数值前面增加了一位符号位(即最高位),正数该位为 0 ,负数该位为 1 ,其余位表示具体数值。也就是说原码中的正数与二进制表示

2020-06-14 19:19:47 1494 6

原创 六、运算符

1 算数运算符算术运算符说明 `+` 加法运算,字符串连接运算-减法运算 `*` 乘法运算/除法运算%取模运算,两个数字相除取余数++、--自增自减运算Java中,整数使用以上运算符,无论怎么计算,也不会得到小数。public static void main(String[] args) { int i = 1234; System.out.println(i/1000*1000);//计算结果是1000}1.1 ++、-- 运算++ :变量自己增长1。-- :变量自

2020-06-12 12:56:28 136

原创 四、常量、变量和数据类型

主要内容:能够定义出所有类型的常量理解Java中的基本数据类型分类能够定义8种基本数据集类型的变量理解数据类型的强制转换理解数据类型的自动转换了解ASCII编码表1 常量1.1 概述常量:是指在Java程序中固定不变的数据。1.2 分类类型含义数据举例整数常量所有的整数0,1,567,-9小数常量所有的小数0.0,-0.1,2.55字符常量单引号引起来,只能写一个字符,必须有内容‘a’,’ ',‘好’字符串常量双引号引起来.

2020-06-11 16:28:04 127

原创 三、Java简介

主要内容:能够计算二进制和十进制数之间的互转能够使用常见的DOS命令理解Java语言的跨平台实现原理理解JDK和JRE的组成和作用1 开发前言1.1 Java语言概述1.1.1 什么是Java语言Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。1.1.2 Java语言发展历史Created with Rapha.

2020-06-11 10:56:42 224

原创 七、MySQL事务操作

主要内容:能够理解事务的概念能够说出事务的特点能够在MySQL中使用事务能够理解脏读、不可重复读、幻读的概念及解决办法1 事务的基本介绍1.1 概念如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。事务执行是一个整体,所有的SQL语句都必须执行成功。如果其中有1条SQL语句出现异常,则所有的SQL语句都要回滚,整个业务执行失败。1.2 特征原子性(Atomicity):每个事务都是一个整体,不可再拆分,事务中所有的SQL语句要么同时成功,要么.

2020-06-10 22:34:05 112

原创 五、数据库的备份和还原

1 备份的应用场景在服务器进行数据传输、数据存储和数据交换,就有可能产生数据故障。比如发生意外停机或存储介质损坏。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失,造成的损失是无法弥补与估量的。2 备份与还原的语句2.1 备份格式:DOS下,未登录的时候。这是一个可执行文件exe,在bin文件夹。mysqldump -u用户名 -p密码 数据库名称 > sql文件路径操作:-- 备份day21数据库中的数据到d:\day21.sql文件中mysqldump -

2020-06-10 22:32:28 133

原创 四、数据库的设计

1 多表之间的关系1.1 一对多(多对一)举例:一个部门有多个员工,一个员工只能对应一个部门。操作:在 多方(员工副表) 创建一个字段作为外键,指向 一方(部门主表) 的主键。 案例:一个类别对应多条线路。-- 创建旅游线路分类表 tab_category-- cid 旅游线路分类主键,自动增长-- cname 旅游线路分类名称非空,唯一,字符串 100CREATE TABLE tab_category ( cid INT PRIMARY KEY AUTO_INCREMENT, c

2020-06-10 22:31:27 179

原创 九、SSM整合

1 环境准备1.1 创建数据库和表结构CREATE DATABASE ssm;CREATE TABLE account ( id INT PRIMARY KEY auto_increment, name VARCHAR (100), money DOUBLE (7, 2));1.2 创建Maven工程创建父工程:创建子模块: ssm_domainjar ssm_daojar ssm_servicejar ssm_webwar 1.3 导入坐标并建立依赖

2020-06-10 12:54:23 96

原创 八、拦截器

1 拦截器的作用Spring MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。用户可以自己定义一些拦截器来实现特定的功能。谈到拦截器,还要向大家提一个词——拦截器链(Interceptor Chain)。拦截器链就是将拦截器按一定的顺序联结成一条链。在访问被拦截的方法或字段时,拦截器链中的拦截器就会按其之前定义的顺序被调用。说到这里,可能大家脑海中有了一个疑问,这不是我们之前学的过滤器吗?是的,它和过滤器是有几分相似,但是也有区别:过滤器是Ser

2020-06-10 10:20:23 85

原创 七、异常处理

1 异常处理的思路系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:2 实现步骤2.1 编写异常类和错误页面/** * 自定义异常*/public class CustomException extends Ex

2020-06-03 16:46:35 147

原创 六、文件上传

1 文件上传的回顾1.1 文件上传的必要前提form表单的enctype是表单请求正文的类型,取值必须是 multipart/form-data(默认值是 application/x-www-form-urlencoded );method属性取值必须是 post ;提供一个文件选择域 <input type=”file” /> 。1.2 文件上传的原理分析当 enctype="application/x-www-form-urlencoded" 时:form表单的正文内容是

2020-06-03 15:23:10 192

原创 五、响应数据和结果视图

1 返回值分类1.1 字符串Controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址,如 /WEB-INF/pages/success.jsp@RequestMapping("/testReturnString")public String testReturnString() { System.out.println("AccountController的testReturnString方法执行了。。。。"); return "success";}运行结果:

2020-06-03 03:11:13 112

原创 四、常用注解

1 RequestParam1.1 使用说明作用:把请求中指定名称的参数给控制器中的形参赋值。属性:value :请求参数中的名称;required :请求参数中是否必须提供此参数。默认值为 true,表示必须提供,如果不提供将报错。1.2 使用示例jsp中的代码:<!-- requestParams注解的使用 --><a href="springmvc/useRequestParam?name=test">requestParam注解</a&g

2020-06-01 22:23:55 148

原创 三、请求参数的绑定

1 绑定说明1.1 绑定的机制我们都知道,表单中请求参数都是基于 key=value 的。Spring MVC绑定请求参数的过程是通过把表单提交请求参数,作为控制器中方法参数进行绑定的,例如:jsp代码:<a href="account/findAccount?accountId=10">查询账户</a>控制器代码:/** * 查询账户 * @return */@RequestMapping("/findAccount")public String find

2020-06-01 17:10:22 153

原创 二、Spring MVC入门

1 Spring MVC的入门案例1.1 前期准备下载开发包:https://spring.io/projects其实spring mvc的jar包就在之前我们的spring框架开发包中。创建一个java web工程:创建一个jsp用于发送请求:jsp中的内容:<a href="${pageContext.request.contextPath}/hello">Spring MVC入门案例</a><br/><a href="hello">

2020-06-01 12:16:57 386

原创 一、Spring MVC概述

1 三层架构和MVC模型1.1 三层架构我们的开发架构一般都是基于C/S架构(客户端/服务器)、B/S架构(浏览器/服务器)两种形式。在Java EE开发中,几乎全都是基于B/S架构的开发。在B/S架构中包括三层架构:表现层、业务层、持久层。表现层:即web层。负责接收客户端请求,向客户端响应结果。通常客户端使用http协议请求web层,web层接收http请求,完成http响应。故其可分为两层:控制层:负责接收请求;展示层:负责展示结果。表现层依赖业务层,接收到客户端请求一般会调用

2020-06-01 11:11:06 215

原创 六、Spring 5.0的新特性

1 与jdk相关的升级1.1 jdk版本要求Spring5.0在2017年9月发布了它的GA(通用)版本。该版本是基于jdk8编写的,所以jdk8以下版本将无法使用。同时,可以兼容jdk9版本。Tomcat版本要求8.5及以上。注意:我们使用jdk8构建工程,可以降版编译。但是不能使用jdk8以下版本构建工程。由于jdk和tomcat版本的更新,我们的IDE也需要同时更新。(目前使用的eclipse 4.7.2)1.2 利用jdk8版本更新的内容基于jdk8的反射增强:测试代码:

2020-05-29 17:29:06 201

原创 五、Spring中的JdbcTemplate和事务控制

1 Spring中的JdbcTemplate1.1 JdbcTemplate概述它是Spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装。Spring框架为我们提供了很多的操作模板类。操作关系型数据的:JdbcTemplate、HibernateTemplate;操作nosql数据库的:RedisTemplate;操作消息队列的:JmsTemplate。我们今天的主角在 spring-jdbc-5.0.2.RELEASE.jar 中,我们在导包的时候,除了要导入这个jar

2020-05-29 12:15:35 189

原创 四、AOP的介绍和使用

1 AOP的相关概念【理解】1.1 AOP概述1.1.1 什么是AOPAOP:全称是Aspect Oriented Programming,即:面向切面编程。简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。1.1.2 AOP的作用及优势作用:在程序运行期间,不修改源码对已有方法进行增强;优势:减少重复代码、提高开发效率、维护方便。1.1.3 AOP的实现方式使用动态代理技术。1.2 AOP的具体应用

2020-05-25 14:32:18 344

原创 三、Spring整合Junit

1 测试类中的问题和解决思路[掌握]1.1 问题在测试类中,每个测试方法都有以下两行代码:ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");IAccountService as = ac.getBean("accountService",IAccountService.class);这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常。所以又不能轻易删掉。1.2 解决思路分析针对上述问题,我

2020-05-22 14:25:11 76

原创 十、MyBatis注解开发

这几年来注解开发越来越流行,MyBatis也可以使用注解开发方式,这样我们就可以减少编写Mapper映射文件了。本次我们先围绕一些基本的 CRUD来学习,再学习复杂映射关系及延迟加载。1 MyBatis的常用注解说明@Insert :实现新增@Update :实现更新@Delete :实现删除@Select :实现查询@Result :实现结果集封装@Results :可以与 @Result 一起使用,封装多个结果集@ResultMap :实现引用@Results定义的封装@One :实

2020-05-21 17:16:50 249

原创 九、MyBatis缓存

像大多数的持久化框架一样,MyBatis也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能。MyBatis中缓存分为一级缓存,二级缓存。1 MyBatis一级缓存1.1 证明一级缓存的存在一级缓存是SqlSession级别的缓存,只要SqlSession没有flush或close,它就存在。1.1.1 编写用户持久层Dao接口/** * <p>Title: IUserDao</p> * <p>Description: 用户的业务层接口&l

2020-05-21 15:28:10 86

原创 八、MyBatis延迟加载策略

通过前面的学习,我们已经掌握了MyBatis中一对一,一对多,多对多关系的配置及实现,可以实现对象的关联查询。实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的账户信息。此时就是我们所说的延迟加载。1 何为延迟加载?延迟加载:就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据

2020-05-21 14:01:07 137

原创 七、MyBatis多表查询

1 一对一查询(多对一)需求:查询所有账户信息,关联查询下单用户信息。注意:因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。如果从用户信息出发查询用户下的账户信息则为一对多查询,因为一个用户可以有多个账户。1.1 方式一1.1.1 定义账户信息的实体类/** * <p>Title: Account</p> * <p>Description: 账户的实体类</p> * <p>Compa

2020-05-21 10:06:55 177

原创 六、MyBatis动态SQL语句

MyBatis的映射文件中,前面我们的SQL都是比较简单的,有些时候业务逻辑复杂时,我们的SQL是动态变化的,此时在前面的学习中我们的SQL就不能满足要求了。

2020-05-19 17:13:58 104

原创 五、MyBatis连接池与事务

我们在前面的WEB课程中也学习过类似的连接池技术,而在MyBatis中也有连接池技术,但是它采用的是自己的连接池技术。在MyBatis的SqlMapConfig.xml配置文件中,通过<dataSource type=”pooled”>来实现MyBatis中连接池的配置。

2020-05-19 15:44:20 103

原创 四、MyBatis使用细节

1 参数深入1.1 parameterType配置参数1.1.1 使用说明我们在上一章节中已经介绍了SQL语句传参,使用标签的parameterType属性来设定。该属性的取值可以是基本类型,引用类型(例如:String类型),还可以是实体类类型(POJO类)。同时也可以使用实体类的包装类,本章节将介绍如何使用实体类的包装类作为参数传递。1.1.2 注意事项基本类型和String:我们可以直接写类型名称,也可以使用全限定类名方式。例如:java.lang.String。实体类类型:目前

2020-05-19 13:58:02 127

原创 二、自定义MyBatis框架

本章我们将使用前面所学的基础知识来构建一个属于自己的持久层框架,将会涉及到的一些知识点:工厂模式(Factory工厂模式)、构造者模式(Builder模式)、代理模式、反射、自定义注解、注解的反射、xml解析、数据库元数据、元数据的反射等。

2020-05-19 13:45:13 136

原创 三、MyBatis通过DAO层实现CRUD操作

第1章 MyBatis通过DAO层实现CRUD操作1.1 传统开发方式(了解)使用MyBatis开发Dao,通常有两个方法,即传统Dao开发方式和Mapper接口代理开发方式。而现在主流的开发方式是接口代理开发方式,这种方式总体上更加简便。我们的课程讲解也主要以接口代理开发方式为主。在第二章节已经给大家介绍了基于代理方式的dao开发,现在给大家介绍一下基于传统编写Dao实现类的开发方式。1....

2020-05-06 17:10:45 159

Functional Analysis Notes (2011) Mr. Andrew Pinchuck.pdf

泛函分析经典入门讲义107页,适合初学者用来学习泛函分析基础重要理论。

2019-09-27

张孝祥Java就业面试题大全

张孝祥Java就业面试题大全,对付一些普通互联网公司够了

2018-12-12

《数据结构》考研真题1800题集锦

《数据结构》考研真题1800题集锦,给同为要考研的小伙伴分享个题集

2018-12-12

区块链技术指南

资深区块链践行者联合撰写,从技术层面全面解密区块链技术。涵盖基础概念、架构、底层算法、应用开发、典型的区块链解决方案、常见问题等读者最为关心的技术与应用。

2018-06-05

React开发实战

本书将涵盖React库的各个细节,并将讨论基于组合式模型来创建Web组件接口的*佳实践。React库本身并不大,所以本书同时涵盖了React生态系统中的一些工具和库(例如React Router和Flux架构),以便为读者提供创建完整应用程序所需的足够知识。

2018-03-08

Python编程(第4版 套装上下册)

Python高手进阶宝典,包含大量实用Python编程技巧,涵盖Python编程的方方面面,涵盖Python 3.X,是Python领域经典的开发指南。

2018-02-23

C程序设计语言(第2版·新版)非扫描版&详细书签版.pdf

这个文档是C程序设计语言(第2版·新版)的非扫描版,并带有书签

2017-10-20

空空如也

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

TA关注的人

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