自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(145)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringBoot--基于SpringBoot实现的简单图书管理(CRUD操作)

1. 整合Mybatis-plus1.1 基础配置手动添加依赖 数据池依赖和mybatis-plus依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3</ve...

2022-03-19 20:34:06 1243 2

原创 SpringBoot--整合Mybatis

创建项目模块,直接对mybatis和mysql进行勾选勾选后,项目已经导入了mybatis相关的坐标。编写配置文件:spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8 username: root passwor..

2022-03-18 10:34:12 605

原创 SpringBoot--请求参数处理

1、rest使用与原理1.1 Restful风格使用Rest风格支持(使用HTTP请求方式动词来表示对资源的操作)以前:**/getUser* 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户现在: /user *GET-*获取用户 *DELETE-*删除用户 *PUT-*修改用户 *POST-*保存用户核心Filter;HiddenHttpMethodFilter​ 用法:

2022-03-17 16:48:20 989

原创 SpringBoot--配置文件

1、文件类型1.1、properties同以前的properties用法1.2、yaml1.2.1、简介YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。非常适合用来做以数据为中心的配置文件1.2.2、基本语法key: value;kv之间有空格大小写敏感使用缩进表示层级关系缩进不允许使用tab,只允

2022-03-17 16:47:30 109

原创 SpringBoot--底层注解用法及原理

2.1、组件添加1、@Configuration基本使用Full模式与Lite模式示例最佳实战配置 类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断配置类组件之间有依赖关系,方法会被调用得到之前单实例组件,用Full模式#############################Configuration使用示例######################################################/** * 1、配置类里

2022-03-16 16:37:05 145

原创 SpringBoot--依赖管理和自动配置

1.1、依赖管理父项目做依赖管理几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制依赖管理 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</versio

2022-03-16 15:22:55 183

原创 SSM--整合配置模板

1. 导入Maven依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach

2022-03-08 12:13:31 247

原创 Mybatis--缓存

MyBatis的一级缓存一级缓存是SqlSession级别的,通过同一个SqlSession查询的数据会被缓存,下次查询相同的数据,就会从缓存中直接获取,不会从数据库重新访问使一级缓存失效的四种情况:不同的SqlSession对应不同的一级缓存同一个SqlSession但是查询条件不同同一个SqlSession两次查询期间执行了任何一次增删改操作同一个SqlSession两次查询期间手动清空了缓存MyBatis的二级缓存二级缓存是SqlSessionFactory级别,通过同一

2022-03-07 17:23:30 106

原创 Mybatis--解决java类属性名和数据库字段名不匹配问题

实现方法:为字段名起别名 保持和属性名一致设置全局配置,将_ 自动映射为驼峰 <setting name="mapUnderscoreToCamelCase" value="true"/>通过resultMap获取对象 设置自定义映射关系1.1 为字段名起别名保持和属性名一致<select id="selectAllE" resultType="Emp"> select eid,emp_name empName,age,sex,email from t_

2022-03-06 20:54:38 1304

原创 Mybatis--多对一查询&&一对多查询

数据表中经常存在的多对一以及一对多的情况,例如多个员工属于一个部门(多对一), 一个部门有多个员工(一对多)。在Mybatis中普通的查询返回值为实体类对象不能实现以上操作。这就有了xml文件中 自定义映射resultMap的应用。一、 resultMap处理字段和属性的映射关系resultMap:设置自定义映射属性:id:表示自定义映射的唯一标识,不能重复type:查询的数据要映射的实体类的类型子标签:id:设置主键的映射关系result:设置普通字段的映射关系子标签属性:

2022-03-06 20:48:58 2586

原创 Mybatis--查询功能

若查询出的数据只有一条 源码采用的是 by selectOne() 函数a> 可以通过实体对象进行接受b> 可以通过list集合进行接收c> 可以通过map集合来接收2.若查询的数据为多条一定不能通过实体类对象进行接收 否则会抛出异常 TooManyResultsExceptiona > 可以通过实体类的list集合进行接收b > 可以通过map类型的list集合进行接收c > 可以在mapper接口的方法上添加@MapKey("")注解可以将每条数据.

2022-03-03 22:15:38 594

原创 Mybatis--获取参数值的两种方式

MyBatis获取参数值的两种方式:${}和#{}${}的本质就是字符串拼接,#{}的本质就是占位符赋值${}使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号;但是#{}使用占位符赋值的方式拼接sql,此时为字符串类型或日期类型的字段进行赋值时,可以自动添加单引号单个字面量类型的参数若mapper接口中的方法参数为单个的字面量类型,此时可以使用${}和#{}以任意的名称(最好见名识意)获取参数的值,注意${}需要手动加单引号<!--User .

2022-03-03 22:08:10 628

原创 Java--Unknown initial character set index ‘255‘ received from server. Initial client character 解决方法

先上图:从错误的提示信息中发现字符集设置出现问题。错误原因:建数据库时使用了中文编码UTF-8,而MySQL驱动字符集不是UTF-8,字符集冲突报错。解决方法:在xml文件中,配置url需要添加后缀,使驱动识别,并转换为UTF-8。注意 & 符号需要用 &amp;进行代替才能使用,因为字符串需要使用转义字符。 <property name="driver" value="com.mysql.jdbc.Driver"/>

2022-03-03 16:00:54 884 1

转载 Java--HashTable和HashMap的区别

1.继承父类不同Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类;但二者都实现了Map接口。2.线程的安全性HashTable是同步(方法中使用了Synchronize)的;而HashMap是未同步(方法中缺省Synchronize)的。Hashtable 线程安全,因为它每个方法中都加入了Synchronize,在多线程并发的环境下,可以直接使用Hashtable,不需自己在加同步;HashMap线程不安全,因为HashMap底层是一个E

2022-03-02 23:47:33 345

原创 SpringMVC--执行流程

用户向服务器发送请求,请求被SpringMVC 前端控制器 DispatcherServlet捕获。DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI),判断请求URI对应的映射:不存在再判断是否配置了mvc:default-servlet-handler如果没配置,则控制台报映射查找不到,客户端展示404错误如果有配置,则访问目标资源(一般为静态资源,如:JS,CSS,HTML),找不到客户端也会展示404错误存在则执行下面的..

2022-03-02 21:16:07 87

原创 SpringMVC--注解配置SpringMVC

使用配置类和注解代替web.xml和SpringMVC配置文件的功能1、创建初始化类,代替web.xml在Servlet3.0环境中,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类,如果找到的话就用它来配置Servlet容器。Spring提供了这个接口的实现,名为SpringServletContainerInitializer,这个类反过来又会查找实现WebApplicationInitializer的类并将配置的任务交给它们来完成

2022-03-02 16:56:45 213

原创 Springmvc--拦截器

1、拦截器的配置SpringMVC中的拦截器用于拦截控制器方法的执行SpringMVC中的拦截器需要实现HandlerInterceptor接口 control+o 实现接口方法package com.java.mvc.Interceptor;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;import org.spring

2022-03-02 10:28:00 248

原创 SpringMVC--文件上传和下载

1、文件下载使用ResponseEntity实现下载文件的功能@RequestMapping("/testDown")public ResponseEntity<byte[]> testResponseEntity(HttpSession session) throws IOException { //获取ServletContext对象 ServletContext servletContext = session.getServletContext(); //获

2022-03-02 00:17:17 68

原创 SpringMVC--HttpMessageConverter

HttpMessageConverter,报文信息转换器,将请求报文转换为Java对象,或将Java对象转换为响应报文HttpMessageConverter提供了两个注解和两个类型:@RequestBody,@ResponseBody,RequestEntity,ResponseEntity1、@RequestBody@RequestBody可以获取请求体,需要在控制器方法设置一个形参,使用@RequestBody进行标识,当前请求的请求体就会为当前注解所标识的形参赋值<form th:a

2022-03-02 00:15:57 81

原创 SpringMVC--RESTful

1、RESTful简介REST:Representational State Transfer,表现层资源状态转移。a>资源资源是一种看待服务器的方式,即,将服务器看作是由很多离散的资源组成。每个资源是服务器上一个可命名的抽象概念。因为资源是一个抽象的概念,所以它不仅仅能代表服务器文件系统中的一个文件、数据库中的一张表等等具体的东西,可以将资源设计的要多抽象有多抽象,只要想象力允许而且客户端应用开发者能够理解。与面向对象设计类似,资源是以名词为核心来组织的,首先关注的是名词。一个资源可以由一个或

2022-02-28 23:11:21 82

原创 SpringMVC--视图

SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户SpringMVC视图的种类很多,默认有转发视图和重定向视图当工程引入jstl的依赖,转发视图会自动转换为JstlView若使用的视图技术为Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的视图解析器,由此视图解析器解析之后所得到的是ThymeleafView1、ThymeleafView当控制器方法中所设置的视图名称没有任何前缀时,此时的视图名称会被SpringMVC配置文

2022-02-28 23:10:14 125

原创 Springmvc--域对象共享数据

1、使用ServletAPI向request域对象共享数据@RequestMapping("/testServletAPI")public String testServletAPI(HttpServletRequest request){ request.setAttribute("testScope", "hello,servletAPI"); return "success";}2、使用ModelAndView向request域对象共享数据@RequestMapping("

2022-02-27 23:55:36 106

原创 SpringMVC--获取请求参数

1、通过ServletAPI获取将HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象@RequestMapping("/testParam")public String testParam(HttpServletRequest request){ String username = request.getParameter("username"); String password = reque

2022-02-27 23:54:35 61

原创 SpringMVC--@RequestMapping注解

1、@RequestMapping注解的功能从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。2、@RequestMapping注解的位置@RequestMapping标识一个类:设置映射请求的请求路径的初始信息@RequestMapping标识一个方法:设置映射请求请求路径的具体信息@Controller@RequestMappi

2022-02-26 22:33:00 144

原创 SpringMVC--简介

1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称为实体类Bean:专门存储业务数据的,如 Student、User 等一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据C:Controller,控制层,指工程中的servlet,作用

2022-02-26 22:31:15 84

原创 Spring--事务管理

事务1. 事务概念事务是数据库操作最基本单元,逻辑上是一组操作,要么成功,如果有一个失败所有的操作都失败2. 事务的四个特性(ACID)原子性 (要么都成功,要么都失败)一致性 (操作之前操作之后,总量不变)隔离性 (多事务之间进行操作,互相不影响)持久性 (提交之后,数据发生变化)3. 事务操作过程开启事务进行业务操作没有异常,提交事务出现异常,事务回滚4.声明式事务管理基于注解方式基于xml方式底层使用AOP原理5. 基于注解方式操作步

2022-02-25 21:14:22 87

原创 Spring--AOP

1. 什么是AOP面向切面编程,面向方面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高开发效率。不通过修改源代码的方式,在主干功能里面添加新的功能2. AOP底层原理2.1 AOP底层使用动态代理有两种情况动态代理有接口的情况:使用JDK动态代理创建UserDao接口实现类代理对象没有接口的情况:使用CGLIB动态代理创建当前类子类的代理对象3. AOP术语连接点:类里面的哪些方法可以被增强,

2022-02-25 21:13:48 81

原创 Spring--IOC

IOC(概念和原理)1. 什么是IOC控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理使用IOC的目的:为了降低耦合度底层原理:xml解析工厂设计模式反射2. IOC过程:xml配置文件,配置创建的对象<bean id="dao" class="类路径"></bean>有Service类和dao类 创建工厂类class UserFactory{ public static UserDao getDao(){

2022-02-25 21:13:15 80

原创 Maven--依赖管理和常用设置

一、依赖管理1.1 依赖范围依赖范围: 使用scope表示依赖的范围依赖范围表示: 这个依赖(jar和里面类)在项目构建的那个阶段起作用依赖范围scope:compile: 默认 参与构建项目的所有阶段test: 测试,在测试阶段使用,比如执行mvn test会使用junitprovided: 提供者 项目在部署到服务器时,不需要提供这个依赖的jar 而是由服务器这个依赖的jar包明显的是sevlet和jsp依赖二、常用设置2.1.<properties>&l

2022-02-13 13:40:04 349

原创 Maven--基础

官网链接: https://maven.apache.org/一. 基础1. Maven能做什么项目的自动构建,帮助开发人员做项目代码的编译、测试、打包,安装,部署等工作。管理依赖(管理项目中的jar包)依赖: 项目中需要使用的其他资源,常见的就是jar包,比如项目要使用mysql驱动,就说项目依赖MySQL驱动。2. Maven包目录bin maven可执行命令conf maven工具自己的配置文件二. 核心概念2.1 约定的目录结构Maven项目使用的

2022-02-11 23:08:36 95

原创 JDBC--DButils类QueryRunner的使用

1、简介官网包链接:https://commons.apache.org/proper/commonsdbutils/download_dbutils.cgi根据官网的介绍,DbUtils是一种 JDBC Utility Component (翻译过来大概就是:JDBC实用部件),故名思意,和数据库操作有关。官网上的简介也称之为 JDBC helper library ,由此可知,DbUtils是一个工具类库,用来进行数据库通信的。QueryRunner 中一共有6种方法:execute(执行

2022-02-11 17:09:45 2698

原创 JDBC--druid数据池连接技术

导jar包写配置文件 Properties# druid.properties文件的配置driverClassName=com.mysql.cj.jdbc.Driverurl=jdbc:mysql://localhost:3306/mytest1username=rootpassword=root# 初始化连接数量initialSize=5# 最大连接数maxActive=10# 最大超时时间maxWait=3000模板类中创建连接 /* 数据池连接 .

2022-02-11 11:50:23 803

原创 JDBC--读取Properties配置文件

1. 采用ClassLoader方式进行读取配置信息优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息。缺点:只能加载类classes下面的资源文件。//类名.class.... InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("Jdbc.properties"); Properties properties = new Properties();

2022-02-11 10:42:00 678

原创 JDBC--insert实现批量插入

使用PreparedStatement实现批量插入的普通方法:@Test public void InsertForList(){ Connection conn = null; PreparedStatement ps = null; long start = System.currentTimeMillis(); try { conn = DBUtil.connection(); .

2022-02-10 18:00:18 3565

原创 JDBC--通用查询方法的书写

想要实现通用的查询方法,重点在于 sql语句中的值的获取,以及在查询结果得到后,如何去将属性和值对应起来,并赋给对象。解决方案:获取结果集的元数据,从而得到查询数据的列数—》对应于对象的属性个数。遍历每一列可以得到每一列的列值–》对应对象的属性值。通过元数据同样可以获取到对象的属性名–》对应对象的属性名。知道对象的属性名。可以通过对象的反射机制,进而对对象进行赋值操作。生成对象,进行返回。public User Select(String sql,Object...args){

2022-02-10 16:35:51 708

原创 JavaWeb--服务器内部转发以及客户端重定向

服务器内部转发: request.getRequestDispatcher("demo3").forward(request,response);一次请求响应的过程,对于客户端而言,内部经历了多少次的转发,客户端是不知道的。客户端地址栏没有变化客户端重定向:response.sendRedirect("demo3");两次请求响应的过程。客户端肯定知道URL有变化地址栏有变化还有一个大的区别就是,重定向可以访问自己web应用以外的资源...

2022-02-10 12:14:52 785 1

原创 JavaWeb--Servlet基础

什么是ServletServlet = Server + appletServer:服务器applet:小程序Servlet 含义是服务器端的小程序Servlet 是JavaWeb三大组件,三大组件分别是 Servlet Filter ListenerServlet是运行在服务器上的一个java小程序,可以接受客户端发送过来的请求,并响应数据给客户端。生命周期执行Servlet构造方法执行init初始化 (1、2 是第一次访问的时候创建Servlet程序会调用)执行servic

2022-02-09 22:18:42 995

原创 Java--解决java.lang.ClassNotFoundException: “com.mysql.cj.jdbc.Driver“ at java.net.URLClassLoader.find

在JDBC的学习中,遇到了java.lang.ClassNotFoundException: "com.mysql.cj.jdbc.Driver"报错,这是加载JDBC的驱动问题解决方法:一、模块中导入jar包,并加上依赖。在模块中 web下的WEB-INF文件下创建lib文件夹,并导入mysql的jar包(一定注意使用的版本号是否正确)模块上右击,选择 Open Module Settings选择Dependencies ,然后点击 + 号导入依赖点击 + 选择 JARs or Di

2022-02-08 23:28:56 7650 3

原创 MySQL--数据类型

文章目录一、MySQL中的数据类型二、整数类型2.1 类型介绍2.2 可选属性2.2.1 M2.2.2 UNSIGNED2.2.3 ZEROFILL2.3 适用场景三、浮点类型3.1 类型介绍3.2 数据精度说明四、定点数4.1 类型介绍4.2 浮点数 vs 定点数五、位类型BIT六、日期与时间类型6.1 YEAR类型6.2 DATE类型6.3 TIME类型6.4 DATETIME类型6.5 TIMESTAMP类型七、文本字符串类型7.1 CHAR与VARCHAR类型7.2 TEXT类型八、ENUM类型

2022-02-07 20:38:50 972

原创 MySQL--牛客习题(二)-- 时间差问题

描述现有一张试卷作答记录表exam_record,其中包含多年来的用户作答试卷记录,结构如下表:作答记录表exam_record:start_time是试卷开始时间submit_time 是交卷,即结束时间请删除exam_record表中作答时间小于5分钟整且分数不及格(及格线为60分)的记录;后台会通过 SELECT * FROM exam_record; 语句来对比结果。#方式一delete from exam_recordwhere timediff(submit_time,sta

2022-02-07 00:12:56 630

Druid数据库连接池jar包

Druid数据库连接池jar包

2022-02-11

空空如也

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

TA关注的人

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