![](https://img-blog.csdnimg.cn/5b0fea10764b476f98b0e718f165e8af.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Ping说SSM
文章平均质量分 81
SSM框架是走向企业开发的第一步,这里包含了MyBatis、Spring、SpringMVC,并且最后进行整合讲解。
Ping开源
这个作者很懒,什么都没留下…
展开
-
SpringMVC之文件上传和下载
十一、文件上传和下载目录:准备工作、文件上传、文件下载1.准备工作文件上传是项目开发中最常见的功能之一,SpringMVC可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要在上下文中配置MultipartResolver。前端表单要求:为了能上传文件,必须将表单的method设置为POST,并将enctype设置为multipart/form-data。只有在这样的原创 2022-10-18 09:30:00 · 227 阅读 · 0 评论 -
SpringMVC之拦截器
十、拦截器目录:简述、自定义拦截器、认证用户1.简述SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理,开发者可以自己定义一些拦截器来实现特定的功能。过滤器与拦截器的区别:拦截器是AOP思想的具体应用过滤器:servlet规范中的一部分,任何Java Web工程都可以使用。在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截。拦截器:拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用。拦截原创 2022-10-18 09:29:21 · 191 阅读 · 0 评论 -
SpringMVC之AJAX
九、AJAX目录:简介、伪造Ajax、jQuery.ajax、注册提示效果、获取Baidu接口1.简介AJAX( Asynchronous JavaScript and XML(异步的 JavaScript 和 XML))是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。在 2005 年,Google通过其Google Suggest使AJAX变得流行起来,Google Suggest能够自动完原创 2022-10-18 09:28:01 · 86 阅读 · 0 评论 -
SpringMVC之JSON
八、JSON目录:JSON简介、Controller返回JSON数据、FastJson1.JSON简介1)简介JSON(JavaScript Object Notation,JS 对象标记)是一种轻量级的数据交换格式,目前使用特别广 泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在JavaScript语言中,一切都是对象。因此,任何JavaScript原创 2022-10-18 09:27:47 · 251 阅读 · 0 评论 -
SpringMVC之整合SSM
七、整合SSM目录:环境要求、基本环境搭建、代码编写1.环境要求IDEAMySQL 5.7.34Tomcat 9.0.48Maven 3.8.1数据库环境:以书籍管理为例:创建一个存放书籍数据的数据库表。测试表的创建及添加数据的代码,可下载使用:https://share.weiyun.com/QNwrCNrs,也可以直接复制下方。原创 2022-10-17 12:40:23 · 352 阅读 · 0 评论 -
SpringMVC之数据处理
六、数据处理目录:处理提交数据、数据显示到前端、乱码问题1.处理提交数据1)提交的域名称和处理方法的参数名一致。提交数据:http://localhost:8080/hello?name=ping处理方法:@RequestMapping("/hello") public String hello(String name){ System.out.println(name); return "hello"; }后台输出:ping2)提交的域名称和处理方法的参数名不一致。提原创 2022-10-17 12:39:20 · 75 阅读 · 0 评论 -
SpringMVC之结果跳转方式
五、结果跳转方式目录:ModelAndView、ServletAPI、SpringMVC1.ModelAndView设置ModelAndView对象,根据view的名称和视图解析器跳到指定的页。页面:{视图解析器前缀} + viewName +{视图解析器后缀}原创 2022-10-17 12:38:23 · 90 阅读 · 0 评论 -
SpringMVC之Controller及RestFul
四、Controller及RestFul目录:控制器Controller、实现Controller接口、注解@Controller、RequestMapping、RestFul风格1.通过配置实现控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在Spring MVC中一个控制器类可以包含多个方法。在Spring MVC中,对于Controller的配置方式有很多种。原创 2022-10-17 12:37:37 · 92 阅读 · 0 评论 -
SpringMVC之HelloSpringMVC
三、HelloSpringMVC目录:通过配置实现、使用注解实现1.通过配置实现1)新建一个Moudle,添加web app的支持。2)确定导入了SpringMVC 的依赖。3)配置web.xml,并且注册DispatcherServlet。原创 2022-10-17 12:36:47 · 99 阅读 · 0 评论 -
SpringMVC之简介
二、简介目录:简述、中心控制器、SpringMVC执行原理1.简述Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。SpringMVC官方文档:https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#spring-webSpring MVC的特点:①轻量级,简单易学。②高效,基于请求响应的MVC框架。③与Spring兼容性好,无缝结合。原创 2022-10-17 12:12:44 · 77 阅读 · 0 评论 -
SpringMVC之MVC与Servlet
一、MVC与Servlet目录:MVC、Model时代、Servlet1.MVCMVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都原创 2022-10-17 10:35:31 · 444 阅读 · 0 评论 -
Spring之声明式事务
十二、声明式事务目录:事务、代码实现、Spring中的事务管理1.事务事务在项目开发过程非常重要,涉及到数据的一致性的问题。事务管理是企业级应用程序开发中必备技术,用来确保数据的完整性和一致性。事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用。事务四个属性ACID:Ⅰ原子性(atomicity):事务是原子性操作,由一系列动作组成,事务的原子性确保动作要么全部完成,要么完全不起作用。Ⅱ 一致性(consistency):一旦所有事务动作完成,事务就要被提原创 2022-10-17 10:33:30 · 76 阅读 · 0 评论 -
Spring之整合MyBatis
十一、整合MyBatis目录: 导入相关jar包、MyBatis代码编写、MyBatis-Spring1.导入相关jar包1)junit junit junit 4.122)mybatis org.mybatis原创 2022-10-17 10:31:42 · 101 阅读 · 0 评论 -
OOP七大原则
1.开闭原则开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶提出,他在1988年的著作《面向对象软件构造》中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modifcation),这就是开闭原则的经典定义。这里的软件实体包括以下部分:项目中划分出的模块类与接口方法开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,原创 2022-10-17 10:28:52 · 260 阅读 · 0 评论 -
Spring之AOP面向切面编程
十、AOP面向切面编程目录:什么是AOP、AOP在Spring中的作用、Spring实现AOP1.什么是AOP?AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2021-07-09 00:08:18 · 85 阅读 · 0 评论 -
Spring之代理模式
九、代理模式目录:静态代理、动态代理AOP的底层机制就是动态代理。代理模式分为静态代理和动态代理。接触aop之前,首先要了解一下代理模式。1.静态代理1)静态代理角色分析①抽象角色:一般使用接口或者抽象类来实现。②真实角色:被代理的角色。③代理角色:代理真实角色。代理真实角色后 , 一般会做一些附属的操作。④客户:使用代理角色来进行一些操作。2)代码实现以租房服务为例Rent.java即抽象角色。//抽象角色:租房 public interface Rent { pub原创 2021-07-09 00:07:25 · 121 阅读 · 0 评论 -
Spring之注解开发
八、注解开发目录:准备说明、Bean的实现、属性注入、衍生注解、自动装配注解、作用域、基于Java类进行配置1.准备说明在spring4之后,想要使用注解形式,必须得要引入aop的包。在配置文件当中还要引入的context约束。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http原创 2021-07-09 00:06:51 · 76 阅读 · 0 评论 -
Spring之Bean的自动装配
七、Bean的自动装配目录:测试环境搭建、byName、byType、注解开发自动装配是使用Spring满足bean依赖的一种方法,Spring会在应用上下文中为某个bean寻找其依赖的bean。Spring中bean有三种装配机制:在xml中显式配置、在java中显式配置、隐式的bean发现机制和自动装配Spring的自动装配需要从两个角度来实现,或者说是两个操作:①组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。②自动装配(autowir原创 2021-07-09 00:06:13 · 103 阅读 · 0 评论 -
Spring之依赖注入
六、依赖注入目录:构造器注入、set注入、拓展注入实现、Bean的作用域依赖注入(Dependency Injection,DI)依赖:指Bean对象的创建依赖于容器,Bean对象的依赖资源。注入:指Bean对象所依赖的资源,由容器来设置和装配。1.构造器注入在之前IoC创建对象方式中已详细给出。2.set注入(重点)要求被注入的属性必须有set方法,set方法的方法名由set+属性首字母大写。如果属性是boolean类型,没有get方法,使用is方法。测试pojo类:Address.j原创 2021-07-09 00:05:29 · 106 阅读 · 0 评论 -
Spring之Spring配置
五、Spring配置目录:别名、Bean的配置、import1.别名使用alias为bean设置别名,可以设置多个别名。<!--设置别名:在获取Bean的时候可以使用别名获取--><alias name="user2" alias="userNew"/>2.Bean的配置<!--bean就是java对象,由Spring创建和管理。--><!--id是bean的标识符,是唯一的,如果没有配置id,name就是默认标识符。如果配置id,又配置了name原创 2021-07-09 00:04:54 · 161 阅读 · 0 评论 -
Spring之IoC创建对象方式
四、IoC创建对象方式目录:通过无参构造方法来创建、通过有参构造方法来创建1.通过无参构造方法来创建1)User.javapublic class User { private String name; public User() { System.out.println("user无参构造方法"); } public void setName(String name) { this.name = name; } public void show(原创 2021-07-09 00:04:20 · 58 阅读 · 0 评论 -
Spring之HelloSpring
三、HelloSpring目录:导入jar包、代码编写、修改案例1.导入jar包注:Spring需要导入commons-logging进行日志记录,可以利用maven,它会自动下载对应的依赖项。<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.8</ver原创 2021-07-09 00:03:41 · 390 阅读 · 0 评论 -
Spring之IoC理论推导
二、IoC理论推导目录:分析实现、IoC本质1.分析实现1)先用原来的方式进行实现。①先编写一个UserDao接口。public interface UserDao { public void getUser(); }②再编写Dao的实现类。public class UserDaoImpl implements UserDao { @Override public void getUser() { System.out.println("获取用户数据");原创 2021-07-09 00:02:54 · 82 阅读 · 0 评论 -
Spring之简介
一、简介目录:简介、优点、组成、扩展1. 简介Spring的推出推动了软件行业的发展。2002年,Rod Jahnson首次推出了Spring框架的雏形——interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。Rod Jahnson是悉尼大学的博士,然而他的专业不是计算机,是音乐学。Spring理念:使现有技术更加实用。Spring本身就像是一个大杂烩,整合了现有的框架技术。官网:http://spring.i原创 2021-06-15 16:37:58 · 57 阅读 · 0 评论 -
MyBatis之缓存
九、缓存目录:缓存简介、MyBatis缓存、一级缓存、二级缓存、自定义缓存-Encache1.缓存简介查询连接数据库时,过于耗资源。一次查询的结果,给它暂存在一个可以直接取到的地方,这就是缓存。再次查询相同数据的时候,直接使用缓存,就不用从数据库中获取了。1)什么是缓存?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。2)为什么使用缓存?减少和数据库的交互次原创 2021-03-20 16:39:40 · 81 阅读 · 0 评论 -
MyBatis之动态SQL
八、动态SQL目录:介绍及环境搭建、IF、choose (when, otherwise)、trim (where,set)、SQL片段、Foreach1.介绍及环境搭建什么是动态SQL:动态SQL就是指根据不同的条件生成不同的SQL语句。动态SQL元素和JSTL或基于类似XML的文本处理器相似。在MyBatis之前的版本中,有很多元素需要花时间了解。MyBatis3大大精简了元素种类,现在只需学习原来一半的元素便可。MyBatis采用功能强大的基于OGNL的表达式来淘汰其它大部分元素。ifc原创 2021-03-20 14:16:38 · 67 阅读 · 0 评论 -
MyBatis之多对一和一对多处理
七、多对一和一对多处理目录:复杂查询环境搭建、多对一处理、一对多处理1.复杂查询环境搭建以学生和老师的关系为例创建学生表student和老师表teacher并插入数据,可下载使用:https://share.weiyun.com/575gDFDw,也可以直接复制下方。CREATE TABLE `teacher` ( `id` INT(10) NOT NULL, `name` VARCHAR(30) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=IN原创 2021-03-19 13:49:50 · 69 阅读 · 0 评论 -
MyBatis之使用注解开发
六、使用注解开发目录:面向接口编程、使用注解开发、CRUD、Lombok1.面向接口编程之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候会选择面向接口编程。根本原因: 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 都遵守共同的标准 , 使得开发变得容易 , 规范性更好。在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了。而各个对象之间的协作关系则成为原创 2021-03-18 23:24:30 · 128 阅读 · 0 评论 -
MyBatis之分页
七、分页目录:使用Limit分页、RowBounds分页、分页插件1.使用Limit分页语法:select * from user limit startIndex,pageSize;使用MyBatis实现分页,核心是使用SQL语句。1)实现接口package com.ping.dao;import …public interface UserMapper { //分页 List<User> getUserByLimit(Map<String,Integer&g原创 2021-03-16 23:17:26 · 56 阅读 · 0 评论 -
MyBatis之日志
四、日志目录:日志工厂、STDOUT_LOGGING、LOG4J1.日志工厂如果一个数据库操作出现了异常,需要排错的时候,日志就是最好的助手。曾经使用sout和debug来排错。现在使用日志工厂。①SLF4J②LOG4J(重要)③LOG4J2④JDK_LOGGING⑤COMMONS_LOGGING⑥STDOUT_LOGGING(重要)⑦NO_LOGGING在MyBatis中具体使用哪一个日志实现,在设置中设定。2.STDOUT_LOGGING标准日志输出:在mybatis核心配原创 2021-03-16 18:39:23 · 73 阅读 · 0 评论 -
MyBatis之配置解析
三、配置解析目录:核心配置文件、环境配置(environments)、属性(properties)、类型别名(typeAliases)、设置(settings)、其它配置、映射器(mappers)、生命周期和作用域、解决解决属性名和字段名不一致的问题(ResultMap)1.核心配置文件1)mybatis-config.xml2)MyBatis 配置文件包含了会深深影响MyBatis行为的设置和属性信息。configuration(配置)properties(属性)settings(设置)原创 2021-03-16 10:52:57 · 79 阅读 · 0 评论 -
MyBatis之CRUD
二、CRUD目录:namespace、Select、Insert、Update、Delete、万能Map1.namespacenamespace中的包名要和Dao/Mapper接口的包名一致。2.Selectid:就是对应的namespace中的方法名。resultType:Sql语句执行的返回值。parameterType:参数类型。1)编写接口//根据ID查询用户User getUserById(int id);2)编写对应的mapper中的sql语句<select原创 2021-03-15 20:28:35 · 52 阅读 · 0 评论 -
MyBatis之简介
一、简介目录:什么是MyBatis、持久化和持久层、第一个MyBatis程序1.什么是MyBatis?1)MyBatis简介①MyBatis是一款优秀的持久层框架。②它支持定制化 SQL、存储过程以及高级映射。③MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。④MyBatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。⑤MyBatis本是apache原创 2021-03-07 17:25:53 · 75 阅读 · 0 评论