- 博客(232)
- 收藏
- 关注
原创 MybatisPlus
pom.xmlapplication.ymlBaseMapper通用Service说明: 通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行 remove 删 除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆,泛型 T 为任意实体对象建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService 继承 Mybatis-Plus 提供的基类常用注解@TableId:设置属性对
2022-06-30 09:44:13 23155 1
原创 SSM整合项目
SSM整合项目项目简介主要实现的功能涉及的技术最终效果图一、搭建环境1. 添加依赖,打包方式为 war2. 创建webapp目录,添加web.xml3. 配置tomcat服务器4. 引入 BootStrap 前端框架5. 引入jquery二、整合SSM1. 配置web.xml2. 配置application.xml3. 配置spring-mvc.xml4. 配置mybatis-config.xml5. 创建数据库表6. Mybatis 逆向工程7. 项目完整的结构8. Spring 整合 Junit
2022-05-04 17:29:28 2929
原创 SSM整合
SSM整合一、各框架所需要的属性1. web.xml2. Spring3. SpringMVC4. MyBatis二、对应配置文件1. web.xml2. application.xml3. spring-mvc.xml4. mybatis-config.xml 一、各框架所需要的属性 1. web.xml启动Spring容器:<context-param><param-name>contextConfigLocation</param-name&
2022-05-04 17:12:07 1662
原创 Mybatis总结
Mybatis总结搭建Mybatis环境一、搭建步骤二、注意事项1、创建MyBatis的核心配置文件2、创建mapper接口3、创建MyBatis的映射文件4、测试三、查询的注意事项四、核心配置文件详解1、properties2、settings3、typeAliases4、environments5、mappers五、MyBatis获取参数值1、实体类型的参数2、使用@Param标识参数六、MyBatis的各种查询功能1、查询数据只有一条a>查询一个实体类对象b>查询一个List集合c>
2022-04-30 11:10:56 182
原创 Mybatis分页插件
Mybatis分页插件分页插件使用步骤添加依赖配置分页插件分页插件的使用常用数据 分页插件使用步骤添加依赖<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</art
2022-04-30 08:09:12 291
原创 MyBatis的逆向工程
MyBatis的逆向工程创建逆向工程的步骤添加依赖和插件创建MyBatis的核心配置文件创建逆向工程的配置文件执行MBG插件的generate目标QBCMyBatis3自动生成的方法使用条件进行操作根据条件查询查询所有选择性修改与其他修改 正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源:Java实体类Mapper接口Mapper映射文件创建逆向工程的步骤
2022-04-29 21:03:30 3576 1
原创 MyBatis的缓存
MyBatis的缓存MyBatis的一级缓存MyBatis的二级缓存二级缓存的相关配置MyBatis缓存查询的顺序整合第三方缓存EHCachea>添加依赖各个jar包的功能b>创建EHCache的配置文件ehcache.xmlc>设置二级缓存的类型d>加入logback日志EHCache配置文件说明 MyBatis的一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库
2022-04-29 13:21:53 137
原创 动态SQL
动态SQLifwheretrim Mybatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题ifif标签可通过test属性(即传递过来的数据)的表达式进行判断,若表达式的结果为true,则标签中的内容会执行;反之标签中的内容不会执行在where后面添加一个恒成立条件1=1这个恒成立条件并不会影响查询的结果这个1=1可以用来拼接and语句,例如:当empName为null时如果不加上恒成立条件,则SQ
2022-04-28 22:02:42 190
原创 自定义映射resultMap
自定义映射resultMap实现准备1、resultMap处理字段和属性的映射关系2、多对一映射处理1、级联赋值2、使用association处理映射关系3、分步查询1. 查询员工信息2. 查询部门信息延迟加载3、一对多映射处理1、collection2、分步查询1、查询部门信息2、查询员工信息 resultType:默认使用的映射关系。表的字段和实体类对象的名称相同才会自动建立映射关系,然后把查询出来的字段名与对应的属性赋值resultMap:专门解决某一个类型与查询结果的映射关系但是
2022-04-27 20:11:26 800
原创 特殊SQL的执行
特殊SQL的执行模糊查询批量删除动态设置表名添加功能获取自增的主键 模糊查询/** * 根据用户名进行模糊查询 */List<User> getUserToLike(@Param("username") String username);<!--List<User> getUserToLike(@Param("username") String username);--><select id="getUserToLike" result
2022-04-27 10:53:32 127
原创 MyBatis的各种查询功能
MyBatis的各种查询功能查询一个实体类对象查询一个List集合查询单个数据查询一条数据为map集合查询多条数据为map集合 1.如果查询出的数据只有一条,可以通过:实体类对象接收List集合接收Map集合接收,结果{password=123456, sex=男, id=1, age=23, username=admin} 2.如果查询出的数据有多条,一定不能用实体类对象接收,会抛异常TooManyResultsException,可以通过:实体类类型的List集合接收
2022-04-26 21:45:11 531
原创 MyBatis获取参数值
MyBatis获取参数值MyBatis获取参数值的两种方式单个字面量类型的参数多个字面量类型的参数map集合类型的参数实体类类型的参数使用@Param标识参数总结 MyBatis获取参数值的两种方式MyBatis获取参数值的两种方式:${}的本质就是字符串拼接#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单
2022-04-26 10:44:50 388
原创 MyBatis介绍
MyBatis介绍1、MyBatis特性MyBatis下载2、和其它持久化层技术对比3、搭建MyBatis1、创建Maven工程2、创建MyBatis的核心配置文件3、创建mapper接口4、创建MyBatis的映射文件5、通过junit测试功能6、加入log4j日志功能4、MyBatis的增删改查5、核心配置文件详解environmentspropertiestypeAliasesmappers6、在idea中设置核心配置文件模板7、在idea中设置映射文件的模板8、封装SqlSessionUtils工具
2022-04-25 21:36:12 289
原创 SpringMVC总结
SpringMVC总结什么是MVC@RequestMapping注解SpringMVC获取请求参数解决获取请求参数的乱码问题SpringMVC域对象共享数据视图1、ThymeleafView2、转发视图3、重定向视图4、视图控制器view-controllerHiddenHttpMethodFilter拦截器异常处理器模板SpringMVC配置文件SpringMVC所需依赖 什么是MVC@RequestMapping注解 @RequestMapping注解的功能将请求和处理请求的控制
2022-04-21 19:53:21 1519
原创 注解配置SpringMVC
注解配置SpringMVC1、创建初始化类,代替web.xml2、创建SpringConfig配置类,代替spring的配置文件3、创建WebConfig配置类,代替SpringMVC的配置文件1、配置视图解析器2、配置view-controller3、配置default-servlet-handLer4、配置拦截器5、配置文件上传解析器6、配置异常处理器 1、创建初始化类,代替web.xml在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletC
2022-04-21 16:37:32 139
原创 异常处理器
异常处理器异常处理器1、基于配置的异常处理2、基于注解的异常处理 异常处理器1、基于配置的异常处理SpringMVC提供了一个处理控制器方法执行过程中所出现的异常的接口:HandlerExceptionResolverHandlerExceptionResolver接口的实现类有:DefaultHandlerExceptionResolver和SimpleMappingExceptionResolverDefaultHandlerExceptionResolver:SpringMV
2022-04-21 14:08:41 1462
原创 SpringMVC-拦截器
SpringMVC-拦截器1、拦截器的配置2、拦截器的三个抽象方法3、拦截器三个抽象方法执行顺序4、多个拦截器的执行顺序演示源码分析 1、拦截器的配置SpringMVC中的拦截器用于拦截控制器方法的执行SpringMVC中的拦截器需要实现HandlerInterceptor@Componentpublic class FirstInterceptor implements HandlerInterceptor { //控制器方法之前执行 @Override p
2022-04-21 12:44:02 1753
原创 HttpMessageConverter
HttpMessageConverterHttpMessageConverter1、@RequestBody2、RequestEntity3、@ResponseBody4、SpringMVC处理json5、SpringMVC处理ajax6、@RestController注解7、ResponseEntity九、文件上传和下载1、文件下载2、文件上传 HttpMessageConverterHttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象
2022-04-20 21:15:48 130
原创 RESTful
RESTful1、RESTful简介a>资源b>资源的表述c>状态转移2、RESTful的实现3、HiddenHttpMethodFilterHiddenHttpMethodFilter源码分析RESTful实例1、功能清单2、具体功能:访问首页a>配置view-controllerb>创建页面2、具体功能:查询所有员工数据a>控制器方法b>创建employee_list.html3、具体功能:删除a>创建处理delete请求方式的表单b>删除超链接绑定
2022-04-20 12:32:34 278
原创 SpringMVC视图
SpringMVC视图1、ThymeleafView2、转发视图3、重定向视图4、视图控制器view-controller5.JSP视图控制器 1、ThymeleafView当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文件中所配置的视图解析器解析,视图名称拼接视图前缀和视图后缀所得到的最终路径,会通过转发的方式实现跳转@Controllerpublic class ViewController { @RequestMapping("/testT
2022-04-18 21:53:39 467
原创 SpringMVC域对象共享数据
域对象共享数据1、使用ServletAPI向request域对象共享数据2、使用ModelAndView向request域对象共享数据3、使用Model向request域对象共享数据4、使用map向request域对象共享数据5、使用ModelMap向request域对象共享数据6、Model、ModelMap、Map的关系7、控制器方法执行之后都会返回统一的ModelAndView对象8、向session域共享数据9、向application域共享数据 1、使用ServletAPI向req
2022-04-18 16:19:59 92
原创 SSM注解
SSM注解SpringSpringMVCSpring注解作用@Component普通组件@Service一般用于业务逻辑层或service层上@Controller一般用于web层@Repository一般用于dao层@Autowired根据属性类型进行自动装配@Qualifier根据名称进行注入一般与@Autowired配合使用@Resource可以根据类型注入,可以根据名称注入@Value注入普通类型属性@Compo
2022-04-17 23:00:21 629
原创 SpringMVC获取请求参数
SpringMVC获取请求参数1、通过ServletAPI获取2、通过控制器方法的形参获取请求参数3、@RequestParam4、@RequestHeader5、@CookieValue6、通过POJO获取请求参数7、解决获取请求参数的乱码问题 1、通过ServletAPI获取将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象@Controllerpublic class ParamControll
2022-04-17 19:21:14 104
原创 认识@RequestMapping注解
认识@RequestMapping注解1、@RequestMapping注解的功能2、@RequestMapping注解的位置3、@RequestMapping注解的value属性4、@RequestMapping注解的method属性5、@RequestMapping注解的params属性(了解)6、@RequestMapping注解的headers属性(了解)7、SpringMVC支持ant风格的路径(模糊匹配)8、SpringMVC支持路径中的占位符(重点) 1、@RequestMapping
2022-04-17 16:19:24 322
原创 SpringMVC介绍
SpringMVC介绍什么是MVC什么是SpringMVCSpringMVC的特点第一个hello world1、创建maven工程2、创建web.xml3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建springMVC的配置文件6、测试HelloWorlda>实现对首页的访问b>通过超链接跳转到指定页面7、总结什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理
2022-04-17 10:49:57 130
原创 vue基础
vue基础第一个vue程序el挂载点data:数据对象本地应用v指令v-textv-htmlv-onv-showv-ifv-bindv-forv-on补充v-model案例-计数器案例-图片切换案例-小黑记事本网络应用axios案例天知道音乐播放器 第一个vue程序<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equi
2022-04-16 21:22:41 973
原创 Spring总结
Spring总结IOC创建对象 (XML)创建对象 (注解)基于注解方式实现属性注入完全注解开发AOPAOP术语切入点表达式注解实现AOP操作不同类型注解完全注解开发事务配置Spring事务Spring声明式事务管理(注解方式)Spring声明式事务管理(事务参数)事务传播行为隔离级别完全注解开发 IOC创建对象 (XML)p名称空间:属性注入xmlns:p=“http://www.springframework.org/schema/p”创建对象是在spring配置文件中的<be
2022-04-14 21:26:57 1150
原创 整合JUnit5单元测试框架
整合JUnit5单元测试框架1、整合 JUnit42、Spring5 整合 JUnit53、使用复合注解 1、整合 JUnit4第一步 引入 Spring 相关针对测试依赖第二步 创建测试类,使用注解方式完成package com.study.spring5.test;import com.study.spring5.service.UserService;import org.junit.Test;import org.junit.runner.RunWith;import o
2022-04-14 13:16:24 1382
原创 Nullable注解和函数式注册对象
Nullable注解@Nullable 注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以为空,参数值可以为空1、注解用在方法上面,方法返回值可以为空2、注解使用在方法参数里面,方法参数可以为空3、注解使用在属性上面,属性值可以为空 函数式注册对象将 new 出来的对象交给 IOC 管理 @Test public void testGenericApplicationContext() { //1. 创建GenericAppl
2022-04-14 09:25:57 186
原创 整合日志框架
日志框架使用整个 Spring5 框架的代码基于 Java8,运行时兼容 JDK9,许多不建议使用的类和方法在代码库中删除 Spring 5.0 框架自带了通用的日志封装Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j2Spring5 框架整合 Log4j2 第一步 引入 jar 包第二步 创建 log4j2.xml 配置文件<?xml version="1.0" encoding="UTF-8"?><!--日志级别以及优
2022-04-14 09:03:55 142
原创 Spring事务
Spring事务事务的概念事务的ACID特性搭建事务操作环境事务场景引入Spring事务管理介绍Spring声明式事务管理(注解方式)Spring声明式事务管理(事务参数)事务传播行为隔离级别Spring声明式事务管理(xml方式)完全注解开发 事务的概念事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败 事务的ACID特性① 原子性事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现两种状态之
2022-04-13 21:14:55 1052 1
原创 JdbcTemplate介绍
JdbcTemplate介绍JdbcTemplate概念使用JdbcTemplate的准备工作操作数据库(增)操作数据库 (修改和删除)操作数据库 (查询)查询返回某个值查询返回对象查询返回集合操作数据库 (批量添加)操作数据库 (批量修改和删除) 操作数据库增//创建sql语句String sql = "insert into t_book values(?,?,?)";Object[] args = {book.getUserid(), book.getUsername(), book.
2022-04-13 13:19:19 1368
原创 AOP介绍
AOP介绍AOP介绍AOP底层原理JDK动态代理AOP术语操作AOP准备工作AOP 操作(AspectJ 注解)AspectJ 注解 实现步骤配置不同类型的通知AOP 操作(AspectJ 注解)细节相同切入点进行抽取有多个增强类多同一个方法进行增强,设置增强类优先级AOP操作(完全注解开发)AOP 操作(AspectJ 配置文件) AOP介绍(1)面向切面编程(方面),利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率
2022-04-12 20:51:59 662
原创 IOC介绍
认识 SpringSpring框架概述Spring入门案例下载SpringSpring入门案例1、创建一个idea工程2、导入spring相关的jar包使用Spring的方式创建对象3、创建一个普通的类,写一个普通的方法4、创建 Spring 配置文件,在配置文件配置创建的对象5、进行测试代码编写IOC容器底层原理IOC接口IOC操作Bean管理IOC 操作 Bean 管理(基于 xml 方式)第一种注入方式:使用 set 方法进行注入第二种注入方式:使用 有参构造 进行注入第三种注入方式:使用 p名称空间
2022-04-11 14:37:13 1070
原创 Spring介绍
Spring介绍Spring框架概述Spring入门案例下载SpringSpring入门案例1、创建一个idea工程2、导入spring相关的jar包使用Spring的方式创建对象3、创建一个普通的类,写一个普通的方法4、创建 Spring 配置文件,在配置文件配置创建的对象5、进行测试代码编写 Spring框架概述Spring 是轻量级的开源的 JavaEE 框架Spring 可以解决企业应用开发的复杂性Spring 有两个核心部分:IOC 和 AOP(1)IOC:控制反转,把创建对象过程
2022-04-11 13:01:44 93
原创 Maven基本使用
Maven基本使用Maven命令Maven中的坐标pom.xml文件解读Maven约定的目录结构依赖的范围依赖的传递依赖的排除继承聚合Idea环境创建父工程创建Java模块项目创建web模块项目在Idea中执行maven命令直接执行手动输入在终端中打开在IDEA中查看某个模块的依赖信息工程导入模块导入导入 Java 类型模块导入web module工程Maven命令运行 Maven 中和构建操作相关的命令时,必须进入到 pom.xml 所在的目录。而构建相关的命令要在 pom.xml 所在目录下运行——
2022-04-09 16:31:05 548
原创 文件上传下载
文件上传下载文件上传介绍文件上传基本原理文件上传应用案例走通servletFileitem表单项区别处理创建目录保存文件文件上传编码问题 文件上传介绍文件上传基本原理Content-type:multipart/from-data;后面的boundary的作用:可以在请求体中指定二进制文件类型以及对二进制文件进行分割请求体中会出现很多乱码,这些都是二进制数据并且请求体中还会指定文件的类型判断是不是文件表单,由我们指定的enctype来决定判断表单项是什么类型如 typ
2022-04-03 16:48:06 1224
原创 ThreadLoad
ThreadLoadThreadLoad介绍ThreadLoad 环境搭建ThreadLoad使用ThreadLoad源码分析ThreadLoad类图分析Thread属性 threadLocals分析Dbug查看set方法set方法源码分析get方法源码分析 ThreadLoad介绍例子tomcat每接收一个请求,都会开启一个线程,该线程完成的任务可能是一个事务控制操作,在一次请求中会调用多个service,多个DAO,我们希望在当中有个数据是共享的并且是线程安全的。当把所有事情做完后,
2022-04-02 15:53:24 993
原创 异步请求-Ajax
异步请求-AjaxAjax基本介绍Ajax基本应用场景Ajax原理示意图Ajax使用Ajax应用应用升级-接入数据库JQuery操作Ajax原生Ajax请求问题分折$.ajax Ajax基本介绍前端访问后端携带的某些数据,可能后端是不需要的,但前端还是是会一股脑的发送过来的后端因为某些原因没有给前端响应的话,那么前端是会一直处于等待状态,直到超时Ajax基本应用场景Ajax原理示意图传统的WEB数据通信方式Ajax数据通信方式1.在前端创建XMLHttpRequest
2022-04-01 20:41:00 864
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人