自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Aelens的博客

忠于技术,敬畏技术

  • 博客(58)
  • 收藏
  • 关注

原创 Swagger学习笔记

1、引言后端时代:前端只用管理静态html、css页面;后端使用模板引擎JSP,是主力前后端分离时代:使用Vue+Springboot的解决方案前端团队负责前端控制层、视图层;后端团队负责后端控制层、服务层和数据访问层前后端通过API进行交互,相对独立、松耦合,甚至可以部署在不同的服务器上产生问题:在前后端集成联调的时候无法做到“及时协商、尽早解决”,最终导致问题的集中爆发问题解决:早些年,使用word指定schema,实时更新最新的API,降低集成风险在前后端分离时代,前端使用pos

2020-08-17 22:39:32 172

原创 Mybatis学习 && 缓存

1、简介 什么是缓存:存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题缓存作用:减少和数据库的交互次数,减少系统开销,提高系统效率。经常查询并且不经常改变的数据可以考虑使 用缓存 2、Mybatis缓存MyBatis包含了一个非常强大的查询缓存特性,可以非常方便地定制和配置缓存,缓存可以极大地提升查询效率My

2020-08-17 22:21:14 120

原创 Mybatis学习 && 动态SQL

动态SQL:指根据不同条件生成不同SQL语句。本质还是SQL语句,知识可以在SQL层面,去执行一个逻辑代码。动态SQL就是在拼接SQL语句,只要保证SQL的正确性,按照SQL的格式,去排列组合就可以了1、搭建环境在数据库中建表CREATE TABLE `blog`( `id` VARCHAR(50) NOT NULL COMMENT '博客id', `title` VARCHAR(100) NOT NULL COMMENT '博客标题', `author` VARCHA.

2020-08-17 22:18:35 763

原创 Mybatis学习 && 一对多处理

1、按照查询嵌套处理<select id="getTeacher2" resultMap="TeacherStudent2"> select * from teacher where id=#{tid}</select><resultMap id="TeacherStudent2" type="Teacher"> <collection property="students" javaType="ArrayList" ofTy

2020-08-17 22:14:15 161

原创 Mybatis学习 && 多对一处理

1、前期环境搭建建立数据库表插入数据CREATE TABLE `teacher` (`id` INT(10) NOT NULL,`name` VARCHAR(30) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=INNODB DEFAULT CHARSET=utf8INSERT INTO teacher(`id`, `name`) VALUES (1, '秦老师');CREATE TABLE `student` (`id` INT(10) NOT

2020-08-16 19:19:37 105

原创 Mybatis学习 && Lombok

Lombok 是一个很方便的插件,本质是个 Java 库,使用它通过相关注解就可以不用再编写冗长的 getter 或者 equals 等方法常用方法:使用步骤:在IDEA中安装Lombok插件导入Lombok的依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version&.

2020-08-16 19:17:55 116

原创 Mybatis学习 && 使用注解开发

1、面向接口编程使用面向接口编程根本原因:解耦 , 可拓展 , 提高复用分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好 面向对象和面向接口区别:面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了。而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作

2020-08-16 19:17:11 259

原创 Mybatis学习 && 分页

作用:减少数据处理量数据库分页语法:SELECT * from table limit startIndex,pageSize Mybatis层面实现分页:List<User> getUserByLimit(Map<String, Integer> map);<select id="getUserByLimit" parameterType="map" resultType="com.Nana.pojo.User"> select * f

2020-08-16 19:15:43 102

原创 Mybatis学习 && 日志

1、日志工厂日志作用:在数据库操作出现异常时候,可以帮助排错曾经使用:sout、debug现在使用:日志工厂 STDOUT_LOGGING日志使用在mybatis核心配置文件中加入以下设置:<settings> <setting name="logImpl" value="STDOUT_LOGGING"/></settings>标准日志输出 2、Log4j特点:Log4j是Apache的一个开源项目,通过使用L

2020-08-16 19:14:45 62

原创 Mybatis学习 && 配置解析

1、核心配置文件configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSource(数据源)databaseIdProvider(数据库厂商标识)mappers(映射器)

2020-08-16 19:13:24 414

原创 Mybatis学习 && CRUD

重要参数:namespace:其中的包名要和Dao/mapper接口的包名一致id:对应namespace 中的方法名parameterType:传递的参数类型,在只有一个基本数据类型时候可以省略resultType:方法返回值类型 1、带一个参数的查询(接口、Mapper、测试类):User getUserById(int id);<select id="getUserById" parameterType="int" resultType="com.Nana.poj

2020-08-16 19:11:12 79

原创 Mybatis学习 && 第一个Mybatis程序

创建数据库和maven父工程CREATE DATABASE `mybatis`USE `mybatis`CREATE TABLE `user`( `id` INT(20) NOT NULL PRIMARY KEY, `name` VARCHAR(30) DEFAULT NULL, `pwd` VARCHAR(30) DEFAULT NULL)ENGINE=INNODB DEFAULT CHARSET=utf8;INSERT INTO `user`(`id`,`name`, `pwd.

2020-08-16 19:09:41 83

原创 Mybatis学习 && 简介

1、什么是MyBatisMyBatis 是一款优秀的持久层框架,支持自定义 SQL、存储过程以及高级映射。免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 2、如何获得MyBatismaven仓库:<!-- https://mvnrepository.com/artifact

2020-08-16 19:08:32 449

原创 Mybatis学习笔记

Mybatis学习环境:JDK1.8、Mysql5.7、maven3.6.1、IDEA 1、简介1.1 什么是MyBatisMyBatis 是一款优秀的持久层框架,支持自定义 SQL、存储过程以及高级映射。免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 1.2 如何获得

2020-08-16 19:06:09 163

原创 SpringMVC学习 && 文件上传和下载

在2003年,Apache Software Foundation发布了开源的Commons FileUpload组件,很快成为Servlet/JSP程序员上传文件的最佳选择。Servlet3.0规范已经提供方法来处理文件上传,但这种上传需要在Servlet中完成,SpringMVC则进行了简单的封装。SpringMVC使用FileUpload技术实现了一个MultipartResolver实现类CommonMultipartResolver进行文件上传,MultipartResolver是即插即用的.

2020-08-13 22:27:34 132

原创 SpringMVC学习 && 拦截器

作用:SpringMVC的拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能与过滤器区别:过滤器:servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用只会拦截访问的控制器方法(@Controlle注释的方法)自定义拦截器必..

2020-08-13 22:26:35 71

原创 SpringMVC学习 && Ajax

AJAX(Asynchronous JavaScript and XML,异步的JavaScript和XML)。是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术发展:在2005年,Google通过其Google Suggest使Ajax变得流行起来应用:谷歌和百度搜索框与传统网页对比:传统网页(不用Ajax技术的网页),想要更新内容或者提交一个表单,需要重新加载整个网页新型网页(使用Ajax技术.

2020-08-13 22:25:29 133

原创 SpringMVC学习 && 数据增删改查及前端页面展示

编写数据增删改查的Dao层和Service层//BookMapper.javapublic interface BookMapper { int addBook(Books book); int deleteBookById(@Param("bookId")int id); int updateBook(Books book); Books queryBookById(@Param("bookId")int id); List<Books>.

2020-08-13 22:23:42 283

原创 SpringMVC学习 && 整合SSM

建表建库CREATE DATABASE `ssmbuild`;USE `ssmbuild`;DROP TABLE IF EXISTS `books`;CREATE TABLE `books` (`bookID` INT(10) NOT NULL AUTO_INCREMENT COMMENT '书id',`bookName` VARCHAR(100) NOT NULL COMMENT '书名',`bookCounts` INT(11) NOT NULL COMMENT '数量',`d.

2020-08-13 22:20:15 92

原创 SpringMVC学习 && JSON

JSON(JavaScript Object Notation,JS对象标记)是一种轻量级的数据交换格式,目前使用特别广泛特点:采用完全独立于编程语言的文本格式来储存和表示数据简洁和清晰的层次结构使得JSON成为理想的数据交换语言易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率数据类型:在JavaScript语言中,一切都是对象。任何JavaScript支持的类型都可以通过JSON来表示字符串、数字、对象、数组等要求和语法格式:对象表示为键值对.

2020-08-13 22:10:28 107

原创 SpringMVC学习 && 乱码问题解决

测试代码:hello页面只负责取msg数据<form action="/e1" method="post"> <input type="text" name="name"> <input type="submit"></form>@Controllerpublic class EncodingController { @RequestMapping("/e1") public String test(String na

2020-08-13 22:08:04 68

原创 SpringMVC学习 && 数据显示到前端

1.通过ModelAndViewpublic ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv = new ModelAndView(); mv.addObject("msg", "HelloSpringMVC"); mv.setViewName("

2020-08-13 22:03:37 125

原创 SpringMVC学习 && 接收请求参数及数据处理

1. 提交数据和处理方法参数名一致提交数据:http://localhost:8080/test?hello=test处理方法:@Controllerpublic class UserController { @RequestMapping("/test") public void test(String hello){ System.out.println(hello); }}后台输出:test 2. 提交数据和处理方法参数名不一致提交

2020-08-12 20:17:56 110

原创 SpringMVC学习 && 重定向和转发

ModelAndView:设置ModelAndView对象,根据view的名称和视图解析器跳转到指定页面页面:{视图解析器前缀}+viewName+{视图解析器后缀}<!--视图解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver"> <property name="prefix"

2020-08-12 20:17:03 139

原创 SpringMVC学习 && RestFul风格

RestFul就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制功能:资源:互联网所有的事物都可以被抽象为资源资源操作:使用POST、DELETE、PUT、GET方法对资源进行操作与传统方式操作资源对比:传统方式:通过不同的参数来实现不同的效果,方法单一http://127.0.0.1/item/queryItem.action?id=1 查询GEThttp://127.0.0.1/item.

2020-08-12 20:15:25 67

原创 SpringMVC学习 && @Controller和@RequestMapping

@Controller作用:负责解析用户的请求并将其转换为一个模型实现:可以通过接口定义或注解定义接口中只有一个方法@RequestMapping作用:用于映射url到控制器类或一个特定的处理程序方法使用:可用于类或方法上。用于类上,表示类中所有响应请求的方法都是以该地址作为父路径...

2020-08-12 20:14:45 65

原创 SpringMVC学习 && SpringMVC执行原理

SpringMVC原理图: SpringMVC流程图:实线表示SpringMVC框架提供的技术,无须开发者实现,虚线表示需要开发者实现Dispatcher表示前端控制器,是整个SpringMVC的控制中心。用户发出请求,DispatcherServlet接受请求并拦截请求假设请求的url为http://localhost:8080/SpringMVC/hello此url可拆分为三部分:http://localhost:8080是服务器的域名SpringMVC是部署在服务器

2020-08-12 20:14:00 77

原创 SpringMVC学习 && HelloSpringMVC

配置版:理解原理使用新建Moudle,添加web支持确定导入了SpringMVC依赖配置web.xml,注册DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch

2020-08-12 20:12:54 103

原创 SpringMVC学习 && SpringMVC概述

Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架特点:轻量级、简单易学高效、是基于请求响应的MVC框架与Spring兼容性好,无缝结合约定大于配置功能强大,提供RESTful、数据验证、格式化、本地化、主题等功能简洁灵活Spring的web框架围绕DispatcherServlet[调度Servlet]设计DispacherServlet的作用是将请求分发到不同的处理器从Spring2.5开始,使用Java.

2020-08-12 20:11:25 56

原创 SpringMVC学习 && 回顾Servlet

新建一个空的Maven工程,添加Web框架支持,导入依赖<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency><dependency> <groupId>org.springframework&.

2020-08-12 20:10:16 74

原创 SpringMVC学习 && 回顾MVC

1、什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范Model:数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao)和服务层(行为Service)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务View:负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西Controller:

2020-08-12 20:08:34 146

原创 SpringMVC学习笔记

springMVC旧版文档地址:https://docs.spring.io/spring/docs/4.3.24.RELEASE/spring-framework-reference/html/overview.html#overview-distribution-zip 1、回顾MVC1.1 什么是MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范Model:数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域

2020-08-12 20:06:00 242

原创 Spring学习 && Spring事务管理

事务重要性:如果不配置事务,可能存在数据提交不一致的情况如果不在Spirng中配置声明式事务,就需要在代码中手动配置事务事务在项目的开发中十分重要,涉及到数据的一致性和完整性 事务管理分类:声明式事务:使用aop进行事务管理,无需修改业务代码编程式事务:需要在代码中进行事务的管理 声明式事务的使用:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springfra

2020-08-10 22:08:25 63

原创 Spring学习 && Spring整合Mybatis

1、测试环境搭建导入相关jar包:junit、mybatis、mysql、spring、aop、mybatis-spring<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version></dependency><dependency>

2020-08-09 15:52:45 73

原创 Spring学习 && AOP

1、什么是AOPAOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 2、AOP在Spring中的作用1. 提供声明式事务2. 允许用户自定义切

2020-08-09 15:49:35 71

原创 Spring学习 && 代理模式

使用:SpringAOP的底层分类:静态代理和动态代理 1、静态代理角色分析:抽象角色:一般会使用角色或者抽象类来解决真实角色:被代理的角色代理角色:代理真实角色后,一般会做一些附属操作客户:访问代理对象的人优点:可以使真实角色的操作更加纯粹,不用去关注一些公共的业务公共业务交给代理角色,实现了业务的分工公共业务发生扩展的时候,方便集中管理缺点:一个真实角色就会产生一个代理角色,代码量会翻倍,开发效率会变低租客、房东、中介案例://租房接口pub.

2020-08-09 15:46:09 120

原创 Spring学习 && Bean的自动装配

解释:自动装配是Spring满足bean依赖的一种方式Spring会在上下文中自动寻找,并自动给bean装配属性Spring三种装配方式:在xml中显示地配置在java中显示地配置隐式地自动装配bean 1、ByName和ByType自动装配byName:自动在容器的上下文中查找和自己对象set方法后面值对应的beanid<bean id="cat" class="com.Nana.pojo.Cat"></bean><bean id="d

2020-08-09 15:39:47 110

原创 Spring学习 && 依赖注入

本质:Set注入依赖:bean对象的创建依赖于容器注入:bean对象中的所有属性由容器来注入 1、普通方式构造器注入 详见4 普通值注入<property name="name" value="海燕酱"></property> Bean注入<bean id="address" class="com.Nana.pojo.Address"></bean><bean id="st.

2020-08-09 15:35:35 89

原创 Spring学习 && Spring配置

1、别名作用:添加了别名,可以使用别名获取到对象<alias name="user" alias="userNew"></alias> 2、Bean的配置属性:id:唯一标识符,相当于对象名class:bean对象所对应的全限定名:包名+类名name:别名,比alias更高级,可以同时取多个别名<bean id="user" class="com.Nana.pojo.User" name="u2,u3,u4"> <prope

2020-08-09 15:27:51 95

原创 Spring学习 && HelloSpring

直接给类成员变量赋值测试:导入Spring所需依赖<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.6.RELEASE</version></dependency>建立实体类,编写get、set方法public c

2020-08-09 15:24:08 119

空空如也

空空如也

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

TA关注的人

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