Java技术栈
文章平均质量分 74
OYBox
五邑大学NLP协会
从事Java开发多年
软考中级软件设计师
展开
-
Spring Boot_4
Spring Boot 整合 Spring Data JPA Spring Data JPA 是 Spring Data ⼤家族的⼀员 JPA 和 Spring Data JPA 的关系 JPA (Java Persistence API)Java 持久层规范,定义了⼀系列 ORM 接⼝,它本身是不能直接使⽤,接 ⼝必须实现才能使⽤,Hibernate 框架就是⼀个实现了 JPA 规范的框架。 Spring Data JPA 是 Spring 框架提供的对 JPA 规范的抽象,通过约定的命名规范完成持久层接原创 2021-10-11 23:40:15 · 105 阅读 · 0 评论 -
Spring Boot_3
Thymeleaf 对象 Thymeleaf ⽀持直接访问 Servlet Web 原⽣资源,HttpServletRequest、HttpServletResponse、 HttpSession、ServletContext。 #request: 获取 HttpServletRequest 对象 #response: 获取 HttpServletResponse 对象 #session: 获取 HttpSession 对象 #servletContext: 获取 ServletContext 对象 @G原创 2021-10-11 23:11:28 · 106 阅读 · 0 评论 -
Spring Boot_2
实际应⽤ JSTL pom.xml <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifac原创 2021-10-08 18:05:53 · 79 阅读 · 0 评论 -
Spring MVC_5
⽂件下载 JSP ⻚⾯中添加超链接,进⾏下载。 <%-- Created by IntelliJ IDEA. User: southwind Date: 2020-02-13 Time: 14:01 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <原创 2021-09-28 21:48:23 · 164 阅读 · 0 评论 -
Spring MVC_4
传统的 Web 开发中,from 只⽀持 GET 和 POST,不⽀持 DELETE 和 PUT,如何解决?通过添加HiddenHttpMethodFilter 过滤器,可以将 POST 请求转为 PUT 或者 DELETE。 HiddenHttpMethodFilter 的实现原理 HiddenHttpMethodFilter 检测请求参数重是否包含 _method 参数,如果包含则取出它的值,并且判断请求类型之后完成请求类型的转换,然后继续传递。 实现步骤 在 form 表单中添加隐藏域标签,name原创 2021-09-24 16:04:35 · 83 阅读 · 0 评论 -
Spring MVC_3
HttpServletRequest Spring MVC 可以在业务⽅法中直接获取 Servlet 原⽣ Web 资源,只需要在⽅法定义时添加 HttpServletRequest ⼊参即可,在⽅法体中直接使⽤ request 对象。 @RequestMapping("/request") public String request(HttpServletRequest request){ User user = new User(); user.setId(1); user.setName("张三原创 2021-09-17 16:54:17 · 114 阅读 · 0 评论 -
Spring MVC_2
JSP页面的转发和重定向 Spring MVC 默认以转发的形式响应 JSP,可以⼿动进⾏修改。 ⭐重定向 @RequestMapping("/restful/{id}/{name}") public String restful(@PathVariable("id") Integer id,@PathVariable("name") String name){ System.out.println(id+"-"+name); return "redirect:/index.jsp"; } 设置重定原创 2021-09-16 15:48:48 · 75 阅读 · 0 评论 -
Spring AOP
Spring AOP AOP(Aspect Oriented Programming)面向切面编程。 OOP(Object Oriented Programming)面向对象编程,用对象化的思想来完成程序。 AOP是对OOP的一个补充,是在另外一个维度上抽象出对象。 ⭐具体是指程序运行时动态地将非业务代码切入到业务代码中,从而实现程序的解耦合,将非业务代码抽象成一个对象,对对象编程就是面向切面编程。 上述形式的代码维护性差,没有代码复用性。,使用AOP进行优化,结果如下图所示 AOP的优点 可以降低模原创 2021-08-30 19:02:14 · 97 阅读 · 0 评论 -
Spring IoC基于注解的开发
Spring IoC基于注解的开发 Spring IoC的作用是帮助开发者创建项目中所需要的bean,同时完成bean之间的依赖注入关系,DI。 ⭐实现该功能有两种方式: 基于XML配置 基于注解 ⭐基于注解有两步操作,缺一不可: 配置自动扫包。 <!-- 配置自动扫包 --> <context:component-scan base-package="com.oyrf.entity"></context:component-scan> 添加注解@Compon原创 2021-08-28 14:57:23 · 101 阅读 · 0 评论 -
Spring IoC自动装载autowire
Spring IoC自动装载autowire 自动装载是Spring提供的一种更加简便的方式来完成DI(依赖注入),不需要手动配置property,IoC容器会自动选择bean完成注入。 ⭐自动装载有两种方式: byName,通过属性名完成自动装载 byType,通过属性对应的数据类型完成自动装载 ⭐byName的方式 创建Person实体类 package com.oyrf.entity; import lombok.Data; @Data public class Person {原创 2021-08-28 14:56:38 · 447 阅读 · 0 评论 -
Spring工厂方法
Spring工厂方法 IoC通过工厂模式创建bean有两种方式: ⭐静态工厂方法 ⭐实例工厂方法 静态工厂方法不需要实例化,而实例化工厂需要实例化。 静态工厂方法 创建Car类 package com.oyrf.entity; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor public class Car { private Integer num; private原创 2021-08-24 17:57:27 · 190 阅读 · 0 评论 -
Spring 进阶
Spring 进阶 Spring中的bean bean是根据scope来生成,表示bean的作用域,scope有四种类型: ⭐singleton:单例,表示通过Spring容器获取的对象是唯一的,默认值。 ⭐prototype:原型,表示通过Spring容器获取的对象是不同的。 ⭐request:请求,表示在一次HTTP请求内有效。 ⭐session:会话,表示在一个用户会话内有效。 request、session适用于web项目。 ⭐singleton模式下,只要加载IoC容器,无论是否从IoC中取出b原创 2021-08-23 21:05:16 · 130 阅读 · 0 评论 -
Spring DI
Spring DI DI指的是bean之间的依赖注入,设置对象之间的级联关系。 ⭐Classes package com.oyrf.entity; import lombok.Data; import java.util.List; @Data public class Classes { private Integer id; private String name; private List<Student> students; } ⭐Student pac原创 2021-08-23 21:03:53 · 64 阅读 · 0 评论 -
Spring快速入门
Spring快速入门 Spring两大核心机制 ⭐IoC:工厂模式 ⭐AOP:代理模式 IoC Ioc是Spring框架的灵魂,控制反转 lombok可以邦之开发者自动生成实体类相关的方法。 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> &l原创 2021-08-23 21:01:43 · 52 阅读 · 0 评论 -
MyBatis动态SQL
MyBatis动态SQL 使用动态SQL可简化代码开发,减少开发者工作量,程序可以自动根据业务参数来决定SQL的组成。 ⭐if标签 <select id="findByAccount" parameterType="com.oyrf.frist.Account" resultType="com.oyrf.frist.Account"> select * from t_account where <if test="id!=0">id = #{id原创 2021-08-20 23:06:00 · 52 阅读 · 0 评论 -
MyBatis缓存
MyBatis缓存 MyBatis缓存的定义 使用缓存可以减少Java应用与数据库的交互次数,从而提升程序的运行效率。比如查询出id=1,第一次查询出之后会自动将该对象保存到缓存中,当下一次查询时,直接从缓存中取出对象即可,无需再次访问数据库。 MyBatis缓存分类 一级缓存:SqlSession级别,默认开启,且不能关闭 操作数据库是需要创建SqlSession对象,在对象中有一个HashMap用于存储缓存数据,不同的SqlSession之间缓存数据区域是互不影响的。 一级缓存的作用域是SqlSess原创 2021-08-20 23:05:09 · 54 阅读 · 0 评论 -
MyBatis延迟加载
MyBatis延迟加载 延迟加载的定义: 延迟加载也叫懒加载、惰性加载,使用延迟加载可以提高程序的运行效率,针对于数据持久层的操作,在某些特定的情况下去访问特定的数据库,在其他情况下可以不访问某些表,从一定程度上减少了java应用与数据库的交互次数。 例如: 查询学生和班级时,学生和班级是两张不同的表,如果当前需求只需要获取学生的信息,那么查询学生单表即可,如果需要同学生获取对应的班级信息,则必须查询两张表。 不同的业务需求,需要查询不同的表,根据具体的业务需求来动态减少数据表查询的工作就是延迟加载。 在c原创 2021-08-20 23:04:14 · 53 阅读 · 0 评论 -
MyBatis逆向工程
逆向工程 MyBatis框架需要:实体类、自定义Mapper接口、Mapper.xml 传统的开发中上述的三个组件需要开发者手动创建,逆向工程可以帮助开发者来自动创建三个组件,减轻开发者的工作量,提高工作效率。 如何使用 MyBatis Generator,简称MBG,是一个专门为MyBatis框架开发者定制的代码生成器,可自动生成MyBatis框架所需的实体类、Mapper接口,Mapper.xml,支持基本的CRUD操作,但是一些相对复杂的SQL需要开发者自己来完成。 ⭐新建Maven工程,pom.x原创 2021-08-20 23:02:39 · 40 阅读 · 0 评论 -
MyBatis级联查询
MyBatis级联查询 ⭐一对多 Student package com.oyrf.frist; import lombok.Data; @Data public class Student { private long id; private String name; private Classes classes; } Classes package com.oyrf.frist; import lombok.Data; import java.util.Lis原创 2021-08-15 23:11:12 · 74 阅读 · 0 评论 -
MyBatis Mapper详解
MyBatis Mapper详解 Mapper.xml ⭐statement标签:select、update、delete、insert分别对应查询、更新、删除、插入操作 ⭐parameterType:参数数据类型 基本数据类型,通过id查询Account <select id="findById" parameterType="long" resultType="com.oyrf.frist.Account"> select * from t_account w原创 2021-08-15 16:18:58 · 305 阅读 · 0 评论 -
通过Mapper代理实现自定义接口
通过Mapper代理实现自定义接口 只需要干以下两件事情 ⭐自定义接口,定义相关业务方法。 ⭐编写与方法相对应的Mapper.xml。 步骤 自定义接口 package com.oyrf.repository; import com.oyrf.frist.Account; import java.util.List; public interface AccountRepository { //增 int save(Account account); //删 int原创 2021-08-14 15:29:00 · 356 阅读 · 0 评论 -
MyBatis快速入门
title: MyBatis快速入门 categories: JAVA技术栈 tags: 笔记 MyBatis快速入门 MyBatis概述 MyBatis是Apache的一个开源项目iBatis,2010年这个项目由Apache software foundation迁移到了google code,并且改名为MyBatis,2013年11月迁移到github。 MyBatis是一个实现了数据持久化的开源框架,简单理解就是对JDBC进行封装。 ORMapping:Object Relationship Ma.原创 2021-08-13 00:44:48 · 96 阅读 · 0 评论 -
整理一下javaSE笔记
title: 整理一下javaSE笔记 1.面向过程和面向对象的比较 1.1面向过程:侧重的是过程 优点:简单 缺点:代码量大了以后维护性很差 1.2面向对象:侧重的是对象 优点:可扩展性非常强,维护成本低 缺点:新手上手难 1.3造车 画图纸 定义车的属性信息:color、speed、seat… 定义车的动作:跑 拿着图纸找工厂生产车 1.4总结 面向对象的世界里,类就是图纸,属性就是这一类事物拥有的共同属性,动作就是这一类事物共同执行的功能。而对象就是使用类创建的具体某一个东西。对象能干什.原创 2021-08-11 23:03:19 · 98 阅读 · 0 评论