- 博客(59)
- 收藏
- 关注
原创 Mybatis 无符合条件的查询结果的返回值
如果结果为集合,首先会使用 new 创建一个集合,再进行赋值,如果没有符合条件的记录,则返回空对象(注:应使用 size() 去判断结果中是否有数据,而不是判断是否为 null );如果结果为单个对象,不会执行 new 语句,直接赋值,如果没有符合条件的记录,则返回 null 。...
2022-02-23 12:37:38 835
原创 git clone 远程仓库代码失败
我们会经常从github上去clone代码,但有时会出现clone失败的问题,例如下列情况:error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054当出现该问题时,我们需要解除ssl验证后,重新clone代码,就可以成功!git config --global http.sslVerify "false"温馨提示:git bash 复制键:ctrl + insert,粘贴键:shift + inse
2021-08-30 21:33:12 709
原创 SpringMVC 简要笔记
SpringMVCSpringMVC概述SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。SpringMVC 通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。三层架构:表现层(Web 层):它负责接收客户端请求,向客户端响应结果,通常客户端使用 http 协议请
2020-08-04 15:39:04 144
原创 SSM 整合
SSM 整合1. pom.xml 文件中引入坐标依赖 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target&g
2020-08-04 15:38:49 178 1
原创 SpringMVC -- 文件上传、异常处理器和拦截器
1. SpringMVC 实现文件上传文件上传的必要前提1. form 表单的 enctype(enctype 是表单请求正文的类型)取值必须是:multipart/form-data(默认值 application/x-www-form-urlencoded)2. method 属性取值必须是 Post 3. 提供一个文件选择域 < input type=”file” />上传文件需要的 jar 包 <dependency> <groupId>
2020-08-04 15:36:42 145
原创 SpringMVC -- 数据响应和结果视图
数据响应和结果视图1. 返回字符串Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址@RequestMapping(value="/hello") public String sayHello() { System.out.println("Hello SpringMVC!!!"); // 跳转到XX页面 return "success";}2. 返回 void如果控制器的方法返回值是 void,执行程序报 404 异常(没有找到默认的 J
2020-08-04 15:36:21 125
原创 SpringMVC -- 请求参数的绑定和常用注解
常用注解1. RequestMapping 注解作用: 用于建立请求 URL 和处理请求方法之间的对应关系出现位置:类上:请求 URL 的第一级访问目录(使我们的 URL 可以按照模块化管理)方法上:请求 URL 的第二级访问目录属性:value:用于指定请求的 URL,和 path 属性的作用是一样的method:用于指定请求的方式params:用于指定限制请求参数的条件(要求请求参数的 key 和 value 必须和配置的一模一样)headers:用于指定限制请求消息
2020-08-04 15:35:11 337
原创 SpringMVC -- 概述及入门案例
SpringMVC 概述SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。SpringMVC 通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。三层架构:表现层(Web 层):它负责接收客户端请求,向客户端响应结果,通常客户端使用 http 协议请求 web 层,w
2020-08-04 15:34:46 178
原创 Mybatis 学习笔记
Mybatis 学习笔记Mybatis 概述Mybatis 是一个使用 java 编写的持久层框架。它封装了 JDBC,使开发者只需要关注 sql 语句,而无需关注注册驱动、创建连接、创建 Statement 等繁杂的过程。Mybatis 采用 ORM 思想实现结果集的封装。ORM(Object Relational Mapping)对象关系映射。简单地说,就是把数据库表和实体类及实体类的属性对应起来,让我们可以通过操作实体类来操作数据库表。Mybatis 环境搭建1. 导入相关的 ja
2020-07-28 01:01:27 69
原创 Mybatis --- 基本增删改查操作
Mybatis 的基本增删改查操作1. 导入相关的 jar 包 <dependencies> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.
2020-07-28 00:47:20 143
原创 Mybatis 主配置文件中的相关标签和动态 SQL 语句
Mybatis 主配置文件中的相关标签和动态 SQL 语句properties 标签在配置数据库连接的时候,我们可以采用以下几种方式来配置:第一种,采用全局的内部配置。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3
2020-07-28 00:43:17 179
原创 Mybatis --- 多表查询
Mybatis 多表查询一对一人和身份证就是一对一的关系一个人只能有一个身份证号,一个身份证号只能属于一个人一对多用户和账户就是一对多的关系一个用户可以有多个账户,多个账户可以属于一个用户多对多老师和学生就是多对多的关系一个学生可以被多个老师教过,一个老师可以教多个学生一对一和一对多的实现(用户和账户示例)要求:1. 一个用户可以拥有多个账户(一对多)2. 一个账户只能属于一个用户(一对一)步骤:1. 建立两张表:用户表、账户表
2020-07-28 00:37:28 74
原创 Mybatis --- 延迟加载和立即加载
Mybatis 延迟加载和立即加载延迟加载延迟加载就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据,延迟加载也称懒加载在一对多或多对多的表关系中,通常都是采用延迟加载立即加载立即加载就是不管是否需要数据,只要一进行查询,就会把相关联的数据一并查询出来在多对一或一对一的表关系中,通常都是采用立即加载一对一的延迟加载(订单与用户)在 Mybatis 的主配置文件中开启延迟加载 <!-- 开启延迟加载 --><settings> <
2020-07-28 00:26:08 232
原创 Mybatis --- 缓存
Mybatis 的缓存1. 什么是缓存? 缓存就是存在于内存中的临时数据2. 为什么要使用缓存? 为了减少和数据库交互的次数,提高执行效率3. 适用于缓存的数据 经常查询并且不经常改变的数据。数据的正确与否对最终结果影响不大的4. 不适用于缓存的数据 经常改变的数据。数据的正确与否对最终结果影响很大的。如:商品的库存、银行的汇率等一级缓存一级缓存是 SqlSession 级别的缓存,只要 SqlSession 没有 flush 或 close,它就会存在。注意:1.
2020-07-28 00:22:12 66
原创 Mybatis 基于注解的 CRUD 操作
Mybatis 基于注解的开发1. 导入相关的 jar 包 <dependencies> <!-- mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5&
2020-07-28 00:15:31 148
原创 Spring简要笔记
Spring是一个轻量级的Java开源框架,是为了解决企业应用开发的复杂性而建成的。它的主要优势之一就是分层架构:dao层–service层–controller层Spring的两大核心:控制反转(IOC)控制反转:(Inversion of Control)即把创建对象的权利交给 Spring 框架。作用: 降低程序之间的耦合性。使用IOC基本配置1. 配置 pom 文件:<!--添加依赖--><dependencies> <dependency&
2020-07-20 17:07:06 95
原创 Spring -- AOP 面向切面编程
面向切面编程(AOP)作用: 在程序运行期间,不修改源码对已有方法进行增强优势: 减少重复代码、提高开发效率、维护方便AOP 的实现方式:使用动态代理技术Spring 中 AOP 的相关术语1. JoinPoint 连接点:指那些被拦截到的点(方法)2. pointcut 切入点:指那些被增强的连接点(方法) 注:所有的切入点都是连接点,但连接点不一定是切入点3. Advice 通知:增强的方法4. Aspect 切面:由切入点和通知组成5. Weaving 织入:指把增强应用到
2020-07-20 17:00:53 92
原创 Spring -- IOC 控制反转
控制反转(IOC)控制反转:(Inversion of Control)即把创建对象的权利交给 Spring 框架。作用: 降低程序之间的耦合性。使用IOC基本配置1. 配置 pom 文件:<!--添加依赖--><dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-co
2020-07-20 16:44:28 94
原创 乘积最大子数组
问题:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,3,-2]输出: 12解释: 子数组 [-2,3,-2] 有最大乘积 12。分析:对于每个元素,我们可以找到以它结尾的子数组的最大乘积,然后将每一个子数组的乘积进行比较,得到最终结果。那么,如何求取每个元素结尾的子数组的最大乘积呢
2020-07-19 09:17:35 102
原创 字符串解码
问题:给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。(注意: k 保证为正整数)你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k 。如不会出现像 3a 或 2[4] 的输入。示例:s = " 3[a]2[bc] ",返回 " aaabcbc ".s = " 3[
2020-05-12 23:16:43 278
原创 长度最小的子数组
问题:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组。如果不存在符合条件的连续子数组,返回 0。示例:输入: s = 7, nums = [2,3,1,2,4,3]输出: 2解释: 子数组 [4,3] 是该条件下的长度最小的连续子数组。分析:暴力法:求出每个子数组的和,与目标值进行比较,找到长度最小的子数组。pub...
2020-04-15 16:32:08 311
原创 和为K的子数组
问题:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 :输入:nums = [1,1,1],k = 2输出: 2。[1,1] 与 [1,1] 为两种不同的情况。说明 :数组的长度为 [1, 20,000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。分析:对于该问题,最简单直接...
2020-04-13 09:16:01 139
原创 任务调度器
问题:给定一个用字符数组表示的 CPU 需要执行的任务列表。使用 A - Z 表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。然而,两个相同种类的任务之间必须有长度为 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有...
2020-04-11 13:56:27 149
原创 Nim 游戏
问题:你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛。 因为无论你拿走 1 块、2 块 还是 3 块石头...
2020-04-10 18:14:41 155
原创 翻转字符串里面的单词
问题:给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输...
2020-04-10 17:07:50 273
原创 不同路径
问题:一个机器人位于一个 m x n 网格的左上角。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角。问:总共有多少条不同的路径?示例 1:输入: m = 3, n = 2输出: 3解释: 从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向右 -> 向下向右 -> 向下 -> 向右向下 -> 向右 -> 向右示例...
2020-03-23 13:11:42 150
原创 接雨水
1. 问题描述:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 62. 问题分析:该问题类似木桶存水原理,取决于较短的木板,我们可以将每一个柱子看成两片木板组成的木桶。可以将每个柱子的盛水量相加,得到最终结果。关键在于如何计算每个柱子的盛水量?其实我们不难发...
2020-03-22 14:51:02 75
原创 螺旋矩阵
问题描述:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,...
2020-03-11 15:50:55 135
原创 字符串相乘
1. 问题描述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 ...
2020-03-08 13:51:07 422
原创 有效的数独
1. 问题描述:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7”,".",".",".","....
2020-02-07 13:31:03 123
原创 二分查找算法的详细讲解
二分算法是一个较高效率的查找算法,但是二分法中的细节却经常使人感到懵圈。有一次看到一位大神整理的二分算法细节分析,个人觉得挺好的,借鉴大神的讲解,我也大致整理了一些内容。二分算法常用情景大致分为三种:寻找一个数、寻找左侧边界、寻找右侧边界。情景一:寻找一个数这个场景是最常见的,是大家最熟悉的。即搜索一个数,如果存在,返回其索引,否则返回 -1。int binarySearch(int[...
2020-02-06 14:59:47 327
原创 串联所有单词的子串
1. 问题描述:给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意:子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]解释:...
2020-02-05 12:22:23 221
原创 搜索旋转排序数组
1. 问题描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 旋转变为 [4,5,6,7,0,1,2] )。搜索一个给定的目标值 target,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。示例 1:输入: nums = [4,5,6,7,0,1,2], target = 0输出: 4示例 2:输入: nu...
2020-02-03 13:12:38 106
原创 下一个排列
1. 问题描述:实现获取下一个排列的函数。算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。注:必须原地修改,只允许使用额外常数空间。例:1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,12. 问题分析:该算法实现的功能:找到给定序列按ASCII码排序的下一个序列(如:...
2020-02-02 12:57:54 112
原创 链表组件
1. 问题描述:给定一个链表(链表结点包含一个整型值)的头结点 head。同时给定列表 G,该列表是上述链表中整型值的一个子集。返回列表 G 中组件的个数。这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。示例 1:输入: head: 0->1->2->3,G = [0, 1, 3]输出: 2解释: 链表中,0 和 1 是...
2019-12-15 19:40:24 248
原创 打家劫舍
1. 问题描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = ...
2019-12-15 16:55:30 74
原创 搜索插入位置
1. 问题描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0...
2019-12-07 16:53:54 86
原创 比较版本号
1. 问题描述:比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。你可以假设版本字符串非空,并且只包含数字和字符 ‘.’。字符 ‘.’ 不代表小数点,而是用于分隔数字序列。例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个...
2019-12-07 15:46:24 802
原创 Excel表列序号
1. 问题描述:给定一个Excel表格中的列名称,返回其相应的列序号。例:A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 ...示例 1:输入: “A”输出: 1示例 2:输入: “ZY”输出: 7012. 问题分析:根据问题描述,我们很容易得到 A—Z 分别对应 1—26...
2019-12-04 20:32:54 252
原创 最大间距
1. 问题描述:给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。2. 问题分析...
2019-11-30 21:04:31 167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人