
SSM
文章平均质量分 86
Spring、SpringMVC、Mybatiis框架的学习笔记
猿灰灰
It's now!
始终相信一句话:知道的越多,不知道的越多!!!
即使再小的帆也能远航!
展开
-
SSM项目初始环境的搭建模板
环境的搭建创建maven项目创建Maven的Java Web项目导入所需要的jar包的依赖<dependencies> <!--引入pageHelper分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <原创 2021-05-17 11:04:19 · 166 阅读 · 1 评论 -
MyBatis-Plus篇-(六)自定义全局操作&(七)公共字段自动填充
六、自定义全局操作AutoSqlInjector根据 MybatisPlus 的 AutoSqlInjector 可以自定义各种你想要的 sql ,注入到全局中,相当于自 定义 Mybatisplus 自动注入的方法之前需要在 xml 中进行配置的 SQL 语句,现在通过扩展 AutoSqlInjector 在加载 mybatis 环境 时就注入使用步骤在 Mapper 接口中定义相关的 CRUD 方法public interface EmployeeMapper extends B原创 2021-05-11 23:43:34 · 602 阅读 · 8 评论 -
MyBatis-Plus篇-(五)插件扩展
五、插件扩展Mybatis 插件机制简介 Mybatis 插件机制简介分页插件com.baomidou.mybatisplus.plugins.PaginationInterceptor说明:此分页不同于之前的分页查询,之气的分页查询是基于内存的分页,这个是基于数据库的,sql中带有limit字段在配置文件中注册分页插件<bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.spring.MybatisSq原创 2021-05-11 23:41:04 · 634 阅读 · 4 评论 -
MyBatis-Plus篇-(四)代码生成器
四、代码生成器MP 提供了大量的自定义设置,生成的代码完全能够满足各类型的需求MP 的代码生成器 和 Mybatis MBG 代码生成器MP 的代码生成器都是基于 java 代码来生成。MBG 基于 xml 文件进行代码生成MyBatis 的代码生成器可生成: 实体类、Mapper 接口、Mapper 映射文件MP 的代码生成器可生成: 实体类(可以选择是否支持 AR)、Mapper 接口、Mapper 映射 文件、 Service 层、Controller 层表及字段命名策略选择在 MP原创 2021-05-11 23:38:55 · 573 阅读 · 8 评论 -
MyBatis-Plus篇-(三)条件构造器 EntityWrapper & ActiveRecord(活动记录)
三、条件构造器 EntityWrapper & ActiveRecord(活动记录)条件构造器 EntityWrapperMybatis-Plus 通过 EntityWrapper(简称 EW,MP 封装的一个查询条件构造器)或者 Condition(与 EW 类似) 来让用户自由的构建查询条件,简单便捷,没有额外的负担, 能够有效提高开发效率实体包装器,主要用于处理 sql 拼接,排序,实体参数查询等注意: 使用的是数据库字段,不是 Java 属性条件参数说明带条原创 2021-05-11 23:37:27 · 712 阅读 · 2 评论 -
MyBatis-Plus篇-(二)通用CRUD(HelloWorld)
通用CRUD实现方式:基于 Mybatis :需要编写 EmployeeMapper 接口,并手动编写 CRUD 方法 提供 EmployeeMapper.xml 映射文件,并手动编写每个方法对应的 SQL 语句.基于 MP :只需要创建 EmployeeMapper 接口, 并继承 BaseMapper 接口.这就是使用 MP 需要完成的所有操作,甚至不需要创建 SQL 映射文件创建EmployeeMapper 接口public interface EmployeeMapper extend原创 2021-05-11 00:16:48 · 370 阅读 · 2 评论 -
MyBatis-Plus篇-(一)简介&集成MP环境
简介&集成MP环境简介MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 C原创 2021-05-11 00:08:20 · 386 阅读 · 4 评论 -
SpringMVC篇-拦截器
拦截器Spring MVC也可以使用拦截器对请求进行拦截处理,用户 可以自定义拦截器来实现特定的功能,自定义的拦截器必 须实现HandlerInterceptor接口preHandle():这个方法在业务处理器处理请求之前被调用,在该 方法中对用户请求 request 进行处理。如果程序员决定该拦截器对 请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去 进行处理,则返回true;如果程序员决定不需要再调用其他的组件 去处理请求,则返回falsepostHandle():这个方法在业务处理原创 2021-05-10 14:51:05 · 171 阅读 · 0 评论 -
Mybatis篇-(十)插件开发与扩展(MyBatis实用场景)
十、Mybatis-插件开发与扩展(MyBatis实用场景)插件开发MyBatis在四大对象的创建过程中,都会有插件进行 介入。插件可以利用动态代理机制一层层的包装目标 对象,而实现在目标对象执行目标方法之前进行拦截 的效果MyBatis 允许在已映射语句执行过程中的某一点进行 拦截调用默认情况下,MyBatis 允许使用插件来拦截的方法调 用包括:Executor (update, query, flushStatements, commit, rollback, getTransactio原创 2021-05-09 16:08:58 · 1348 阅读 · 0 评论 -
Mybatis篇-(九)Mybatis工作原理的初理解(图解)
九、Mybatis-工作原理mybatis层级图sqlSessionFactory对象解析文件的每一个信息保存在Configuration中,返回包含Configuration的DefaultSqlSession;注意:【MappedStatement】:代表一个增删改查的详细信息获取sqlSession对象返回一个DefaultSQlSession对象,包含Executor和Configuration;这一步会创建Executor对象获取接口的代理对象(MapperProx原创 2021-05-09 10:40:47 · 345 阅读 · 1 评论 -
Mybatis篇-(八)逆向工程(MBG)
八、Mybatis-逆向工程MyBatis Generator: 简称MBG,是一个专门为MyBatis框架使用者定 制的代码生成器,可以快速的根据表生成对应的 映射文件,接口,以及bean类。支持基本的增删 改查,以及QBC风格的条件查询。但是表连接、 存储过程等这些复杂sql的定义需要我们手工编写mbg下载地址mbg的使用导入jar包配置文件的编写<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generato原创 2021-05-08 16:41:26 · 275 阅读 · 0 评论 -
Mybatis篇-(七)Mybatis-Spring整合
七、Mybatis-Spring整合Spring-SpringMVC-Mybatis初整合Mybatis-Spring整合适配包的下载点击下载创建一个动态web工程点击查看创建过程导入相应的jar包引入mybatis的配置mybatis-config.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Con原创 2021-05-08 12:21:06 · 151 阅读 · 0 评论 -
Mybatis篇-(六)缓存机制
六、Mybatis-缓存机制MyBatis 包含一个非常强大的查询缓存特性,它可以非 常方便地配置和定制。缓存可以极大的提升查询效率。MyBatis系统中默认定义了两级缓存一级缓存和二级缓存默认情况下,只有一级缓存(SqlSession级别的缓存, 也称为本地缓存)开启二级缓存需要手动开启和配置,他是基于namespace级 别的缓存为了提高扩展性。MyBatis定义了缓存接口Cache。我们 可以通过实现Cache接口来自定义二级缓存一级缓存一级缓存(local cach原创 2021-05-07 19:16:10 · 180 阅读 · 0 评论 -
Mybatis篇-(五)动态SQL
五、Mybatis-动态SQLif(判断)&OGNLEmployeeMapperDynamicSQL.xml <!-- 查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 --> <!-- public List<Employee> getEmpsByConditionIf(Employee employee); --> <select id="getEmpsByConditionIf" resultType="com.cvzha原创 2021-05-07 15:23:44 · 191 阅读 · 1 评论 -
Mybatis篇-(四)映射文件
四、Mybatis-映射文件增删改查mapper.xml<mapper namespace="com.cvzhanshi.mybatis.dao.EmployeeMapper"> <select id="getEmpById" resultType="com.cvzhanshi.mybatis.entity.Employee"> select id,last_name lastName,email,gender from employee where id = #{id原创 2021-05-07 00:20:03 · 255 阅读 · 0 评论 -
Mybatis篇-(三)全局配置文件
Mybatis下载地址Mybatis官方文档地址原创 2021-05-06 16:27:03 · 193 阅读 · 0 评论 -
Mybatis篇-(一)简介&(二)HelloWorld
一、Mybatis简介概述MyBatis 是支持定制化 SQL、存储过程以及高级 映射的优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设 置参数以及获取结果集MyBatis可以使用简单的XML或注解用于配置和原 始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记 录Mybatis的优势MyBatis是一个半自动化的持久化层框架JDBCSQL夹在Java代码块里,耦合度高导致硬编码内伤维护原创 2021-05-06 16:21:25 · 188 阅读 · 0 评论 -
SpringMVC篇-SpringMVC的运行流程&在Spring 的环境下使用 SpringMVC&SpringMVC 对比 Struts2
SpringMVC的运行流程在 Spring 的环境下使用 SpringMVCSpring 的 IOC 容器不应该扫描 SpringMVC 中的 bean, 对应的 SpringMVC 的 IOC 容器不应该扫描 Spring 中的 bean示例:bean.xml(Spting)<context:component-scan base-package="com.atguigu.springmvc"> <context:exclude-filter type="annot原创 2021-04-24 22:16:01 · 120 阅读 · 0 评论 -
SpringMVC篇-异常处理
异常处理概述Spring MVC 通过 HandlerExceptionResolver 处理程序 的异常,包括 Handler 映射、数据绑定以及目标方法执行 时发生的异常SpringMVC 提供的 HandlerExceptionResolver 的实现类DispatcherServlet 默认装配的 HandlerExceptionResolver :没有使用 <mvc:annotation-driven/>配置:使用了 <mvc:annotation原创 2021-04-24 21:29:04 · 169 阅读 · 0 评论 -
SpringMVC篇-国际化与文件上传
国际化默认情况下,SpringMVC 根据 Accept-Language 参数 判断客户端的本地化类型当接受到请求时,SpringMVC 会在上下文中查找一个本 地化解析器(LocalResolver),找到后使用它获取请求 所对应的本地化类型信息SpringMVC 还允许装配一个动态更改本地化类型的拦截 器,这样通过指定一个请求参数就可以控制单个请求的本 地化类型SessionLocaleResolver & LocaleChangeInterceptor 工作原理其中:Se原创 2021-04-24 13:54:08 · 183 阅读 · 0 评论 -
SpringMVC篇-处理 JSON:使用HttpMessageConverter
处理 JSON:使用HttpMessageConverter使用示例:加入 jar 包其中。spring版本越高需要配置的json jar包的版本号就越高,否则会报错编写目标方法,使其返回 JSON 对应的对象或集合在方法上添加 @ResponseBody 注解@ResponseBody @RequestMapping("/testJson") public Collection<Employee> testJson(){ return原创 2021-04-24 00:22:50 · 520 阅读 · 1 评论 -
SpringMVC篇-数据转换&数据格式化&数据校验
数据转换&数据格式化&数据校验数据转换数据绑定流程Spring MVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象DataBinder 调用装配在 Spring MVC 上下文中的 ConversionService 组件进行数据类型转换、数据格式化工作。将 Servlet 中的请求信息填充到入参对象中调用 Validator 组件对已经绑定了请求消息的入参对象 进原创 2021-04-24 00:20:36 · 267 阅读 · 0 评论 -
SpringMVC篇-RESTful CRUD
RESTful CRUDRESTful CRUD显示所有员工需求具体实现index.jsp<a href="emps">List All Employees</a>handler.java @RequestMapping("/emps") public String list(Map<String,Object> map){ map.put("employees",employeeDao.getAll()); re原创 2021-04-24 00:17:27 · 146 阅读 · 0 评论 -
SpringMVC篇-视图和视图解析器
视图和视图解析器图解SpringMVC解析视图(简图):说明:请求处理方法执行完成后,最终返回一个 ModelAndView 对象。对于那些返回 String,View 或 ModeMap 等类型的 处理方法,Spring MVC 也会在内部将它们装配成一个 ModelAndView 对象,它包含了逻辑名和模型对象的视图Spring MVC 借助视图解析器(ViewResolver)得到最终 的视图对象(View),最终的视图可以是 JSP ,也可能是 Excel、JFreeChart 等各种表原创 2021-04-21 15:51:20 · 227 阅读 · 0 评论 -
SpringMVC篇-处理模型数据
处理模型数据ModelAndView控制器处理方法的返回值如果为 ModelAndView, 则其既 包含视图信息,也包含模型数据信息添加模型数据 :MoelAndView addObject(String attributeName, Object attributeValue)ModelAndView addAllObject(Map modelMap)设置视图 :void setView(View view )void setViewName(String viewName原创 2021-04-21 11:57:34 · 249 阅读 · 0 评论 -
SpringMVC篇-@RequestMapping注解
@RequestMapping(1)Spring MVC 使用 @RequestMapping 注解为控制器指定可以处理哪些 URL 请求(2)DispatcherServlet 截获请求后,就通过控制器上 @RequestMapping 提供的映射信息确定请求所对应的处理方法使用@RequestMapping映射请求@RequestMapping 除了修饰方法, 还可来修饰类类定义处:提供初步的请求映射信息。相对于 WEB 应用的根目录方法处: 提供进一步的细分映射信息。 相对于类定义处的原创 2021-04-21 09:42:55 · 221 阅读 · 0 评论 -
SpringMVC篇-SpringMVC概述及Helloworld
SpringMVC概述及Helloworld概述Spring 为展现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的 MVC 框架之一Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请 求的控制器,而无须实现任何接口支持 REST 风格的 URL 请求采用了松散耦合可插拔组件结构,比其他 MVC 框架更具 扩展性和灵活性HelloWorld建动态web工程,导入jar包原创 2021-04-20 23:26:48 · 265 阅读 · 1 评论 -
Spring篇-Spring5框架新功能-WebFlux
SpringWebfluxSpringWebflux 介绍(1)是 Spring5 添加新的模块,用于 web 开发的,功能和 SpringMVC 类似的,Webflux 使用当前一种比较流行的响应式编程的框架(2) 使用传统 web 框架,比如 SpringMVC,这些基于 Servlet 容器,Webflux 是一种异步非阻 塞的框架,异步非阻塞的框架在 Servlet3.1 以后才支持,核心是基于 Reactor的相关 API实现的异步和同步异步和同步针对调用者,调用者发送请求,如果等着原创 2021-04-19 20:13:01 · 296 阅读 · 2 评论 -
Spring篇-Spring5框架新功能
Spring框架新功能整个 Spring5 框架的代码基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方 法在代码库中删除整合日志框架Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2Spring5 框架整合 Log4j2引入 jar 包创建 log4j2.xml 配置文件<?xml version="1.0" encoding="UTF-8"?><!--日志级别以及优先级排序: OFF > FA原创 2021-04-19 09:38:06 · 200 阅读 · 0 评论 -
Spring篇-事务操作
事务操作事务的概念事务的概念请查看另一篇博客【MySQL基础篇-(五)TCL语言(事务)】事务操作(搭建事务操作环境)原创 2021-04-18 20:20:17 · 133 阅读 · 0 评论 -
Spring篇-JdbcTemplate
JdbcTemplateSpring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作使用前的准备引入相关 jar 包在 spring 配置文件配置数据库连接池<!-- 数据库连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <p原创 2021-04-16 23:54:36 · 470 阅读 · 4 评论 -
Spring篇-AOP
AOPAOP概念面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得 业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率通俗描述:不通过修改源代码方式,在主干功能里面添加新功能例子图解:AOP底层原理AOP 底层原理使用动态代理动态代理有两种:有接口情况,使用 JDK 动态代理没有接口情况,使用 CGLIB 动态代理AOP底层原理(JDK动态代理代码实现)说明使用 JDK 动态代理,使用 Proxy 类里面的方法原创 2021-04-16 20:07:49 · 169 阅读 · 0 评论 -
Spring篇-IOC容器
IOC容器概念控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理使用 IOC 目的:为了耦合度降低做入门案例就是 IOC 实现IOC底层原理xml解析、工厂模式、反射图解:IOC(BeanFactory接口)IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂Spring提供IOC容器的两种实现方式:(两个接口) (1) BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用 特点:原创 2021-04-16 12:12:09 · 243 阅读 · 0 评论 -
Spring篇-Spring5框架的概述与入门案例
Spring5框架的概述与入门案例概述Spring 是轻量级的开源的 JavaEE 框架Spring 可以解决企业应用开发的复杂性Spring 有两个核心部分:IOC 和 AopIOC:控制反转,把创建对象过程交给 Spring 进行管理Aop:面向切面,不修改源代码进行功能增强Spring 特点方便解耦,简化开发Aop 编程支持方便程序测试方便和其他框架进行整合方便进行事务操作降低 API 开发难度入门案例spring5的下载下载地址:https://rep原创 2021-04-14 23:10:26 · 204 阅读 · 0 评论