- 博客(40)
- 收藏
- 关注
原创 基于若依的旅游推荐管理系统(spring boot+vue+mybatis+Ajax)
在为期一周多的时间里,我通过学习和实践,成功地完成了基于springboot+vue的旅游推荐管理系统的编写。这段时间虽然紧张忙碌,但也让我收获颇丰。首先,通过这次项目,我对springboot和vue这两个技术有了更深入的了解。在项目的搭建过程中,我学会了如何使用springboot快速搭建后端服务,以及如何利用vue构建前端页面。同时,我也学会了如何将前后端进行整合,实现数据的传输和交互。这些知识的学习让我对全栈开发有了更清晰的认识。
2024-05-23 11:44:43
1248
1
原创 无效的目标发行版: 1.9(修改后仍然不行)
如果你遇到了"无效的目标发行版: 1.9"的错误,这通常是由于Java编译器版本不匹配导致的。你可以尝试将编译器版本更改为与你的目标发行版匹配的版本。如果你使用的是IDE(如IntelliJ IDEA、Eclipse等),也可以在项目设置中找到编译器选项,并将编译器版本设置为1.8。一旦你将编译器版本与目标发行版匹配,应该就能成功编译项目了。的值都设置为你希望的Java版本(这里是1.8)。文件并重新构建项目,看看是否仍然出现错误。文件中指定Java编译器版本。在Maven项目中,你可以在。
2024-04-16 09:07:43
489
原创 ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证
验证手机号(我是独立写了一个validator.js文件的,放在util目录下,然后把所有验证规则都写在这里,使用的时候导入即可)/*** 校验规则文件* 触发方式:type=['blur','change']*///定义phone验证全局变量if (!value){callback(new Error('请输入电话号码'))}else if (!callback(new Error('请输入正确的11位手机号码'))}else {callback()required:{
2024-04-08 16:21:19
922
1
原创 vue3新特征
ref 和 reactive 都用于为数据添加响应式状态,但是 reactive 只接受对象类型的参数。跟 Vue 2 中的 Provide 和Inject 功能类似,可以用于组件间通信。可以将 provide 提供的数据变为 inject 的组件只读的。这种方式存在的问题是对于对象没有办法检测到属性的添加或删除。Vue 3 的数据响应式基于 ES6 的 Proxy 实现的,和 Mobx 6 相同。这个跟 MobX 的 autorun 非常像,它会立即执行传入的函数并响应式追踪其依赖,依赖变更久重新执行。
2024-04-07 10:55:34
854
原创 Vue2+Vue3
VM-> vue实例对象(模型和视图通过它进行数据的绑定和渲染)相当于vm和所有vc共享该属性store。用于多个组件之间共享的数据store。vue本身属性,data数据。编写Vue类(ES6新特性)-# Vuex插件的使用。M->model 模型。V->view 视图。
2024-03-26 01:07:08
384
原创 SpringBoot 参数传递
漏洞,在解析XML文档时,解析器通过 ENTITY 扩展的功能,读取本地受保护的文件,并且使用扩展功能将受保护的文件发送到远程地址。传输对象有实体,有集合,有各种类型的数据,这时候最简单的方式就是传递。用一个对象来接收前台参数,一般后端有对应的实体类。,如果前台不传递此参数,后台会报错。前端代码,提交方式与登录基本保持一致。微信就喜欢用这种方式,去年还发生过。比如,后端想接收一个实体对象集合。方法转化为对应的实体或者集合。前端代码与传递数组保持一致。比如,一个用户有多个角色。当然,你也可以这么实现,
2024-03-18 10:30:35
555
原创 SpringMVC【框架】
1) 定义拦截器,实现HandlerInterceptor接口。接口中提供三个方法。a. preHandle :进入 Handler方法之前执行,用于身份认证、身份授权,比如身份认证,如果认证通过表示当前用户没有登陆,需要此方法拦截不再向下执行b. postHandle:进入Handler方法之后,返回modelAndView之前执行,应用场景从modelAndView出发:将公用的模型数据(比如菜单导航)在这里传到视图,也可以在这里统一指定视图。
2024-03-11 09:55:10
930
原创 【JavaWeb】Cookie和Session
简介: 把会话(从入馆到出馆, 你相当于浏览器, 你的这个参观行为相当于一个请求)比喻为参观一次博物馆(服务器), 游客参观信息每个人都不一样, 假设当你进入博物馆(服务器)那一刻你的身份证(Cookie)就相当于入场卷, 博物馆管理人员(服务器处理机制)会根据你对博物馆的进入收取你的身份证, 收取时你还未成为参观人员, 当他们登记好之后, 你的身份证带有参观者的身份信息返回到你手里, 身份证由你自己保管, 当管理员(服务器)需要查看你的信息时, 你只需要出示你的身份证即可, 为了你和博物馆的安全, 管理员
2024-03-04 10:51:17
1087
原创 Mybatis框架相关问题(面试)
(1)Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。(2)MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
2024-02-25 23:02:52
978
原创 SQL中实现行列转换
现在我们要根据上表,统计得到下面的内容,该如何操作呢?我们需要在这个基础上实现类似python中的unstack的功能,把gender列unstack到列中,那么SQL中怎么实现呢?
2024-01-29 11:58:22
886
原创 Servlet
换句话说,Java 可以用来开发网站后台,但是要提前定义好一套规范,并编写基础类库,这就是 Servlet 所做的事情。Java Servlet 可以使用所有的 Java API,Java 能做的事情,Servlet 都能做。Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
2024-01-23 18:47:51
875
原创 mybatis的#{}与${}区别(10分)
占位符,相当于PreparedStatement中预处理语句中设置的参数,且其SQL语句是预编译的,使用占位符规定了SQL的结构,且在设置参数时,若出现特殊字符,会自动转义,有效的防止了SQL注入。在mybatis中,#和$占位符都是实现动态SQL的一种方式,通过这两种方式把参数传递到xml文件中,在执行操作前,mybatis会对两种站位符进行解析,\#{}接收pojo对象值,通过OGNL读取对象中的属性值,通过属性.属性.属性...的方式获取对象属性值。`${}`表示一个拼接符号,会引用sql注入,
2024-01-16 10:56:56
404
原创 soso移动营业大厅(纯后端+MySQL数据库+JDBC)
1、Java基础项目中用到了java中的属性,方法,集合,接口,随机数,if语句,switch语句,while循环等,涉及到的知识面相当广泛。巩固了之前的Java基础。2、数据库其中涉及到了数据库的知识,包括基础的增删查改sql语句的编写。还有JDBC操作数据库。这其实是这个项目的重点3、项目结构•Java Dao模式的运用(将数据库操作封装):一个实体类对应一个Dao接口和Dao实现类•共同属性、方法进行封装:实体类的idDao。
2024-01-16 10:53:22
1584
1
原创 HashMap的底层原理
明白了hashcode我们再来看元素如何通过hashcode定位到要存储在数组的哪里,通过hashcode的二次hash值和数组长度取模我们可以得到元素存储的下标。Node是一个内部类,这里的key为键,value为值,next指向下一个元素,可以看出HashMap中的元素不是一个单纯的键值对,2. 已经有元素占据了索引为1的位置,这种情况下我们需要判断一下该位置的元素和当前元素是否相等,使用equals来比较。1. 数组索引为1的地方是空的,这种情况很简单,直接将元素放进去就好了。
2024-01-08 08:43:14
892
原创 delete与truncate的区别(面试)
delete删除,只是把表中数据删除,truncate删除,把表删除,再重新创建delete删除,自增列不会还原,truncate删除,自增列还原。实际开发中会给表添加一个列表示删除状态修改值表示不同状态(逻辑删除)实际开发不会使用delete进行数据删除,为硬删除物理删除。delete属于DML语句,truncate属于DDL。delete删除可以接条件,truncate不能加条件。delete删除可以回滚,truncate 不能回滚。
2023-12-24 23:38:06
436
原创 Java二分查找
二分法是非常重要的基础算法,其实主要就是对区间的定义没有理解清楚,在循环中没有始终坚持根据查找区间的定义来做边界处理。区间的定义就是不变量,那么在循环中坚持根据查找区间的定义来做边界处理,就是循环不变量规则。
2023-12-24 23:29:40
892
原创 HttpSession工作原理
实际上,在客户端浏览器第一次访问时,服务器端会创建一个会话对象(HttpSession),并为该会话生成一个唯一的Session ID(通常是一个长字符串)。需要强调的是,HttpSession对象在服务器端创建并保存,会话数据也保存在服务器端。服务器端根据Session ID识别客户端和对应的会话对象,从而实现会话跟踪和存储会话数据。服务器端接收到请求后会根据请求中的Session ID找到对应的会话对象,并从服务器端的会话管理器中获取该会话对象的数据。这样,服务器端就实现了会话的跟踪。
2023-12-19 17:05:47
449
原创 在线小说阅读系统(纯后端、网络编程、IO流)
在项目中,我们通过创建客户端和服务器端,使用Socket编程实现了客户端和服务器端之间的通信。通过IO流和字符流,实现了小说的异步传输,提高了数据传输的效率和用户的阅读体验。项目的主要功能包括登录、注册、退出、返回功能,以及小说查询、在线阅读、下载和上传功能。用户可以通过登录功能进行账号验证,并可以注册新账号。在查询功能中,用户可以根据关键字、分类等条件进行小说的查询,并以列表形式展示查询结果。在阅读功能中,用户可以在线阅读小说,并进行字体调整、自动书签等个性化设置。
2023-12-19 17:02:44
1364
原创 请问多线程的优点和缺点是什么?
多线程的优点:提高程序的效率和响应速度:使用多线程可以将程序中繁重或频繁等待的任务拆分成多个线程同时执行,从而提高程序的效率和相应时间。 适应多核处理器:现代计算机普遍采用多核处理器,使用多线程可以更好地利用这些处理器的资源。 可以轻松实现一些需要异步操作的功能:比如网络请求、IO操作等可以新开一个线程来进行这些操作,让主线程不被阻塞。 可以方便实现并发编程:多线程使得程序可以同时处理多个任务,适合解决并发编程问题。多线程的缺点:容易出现死锁:多个线程访问共享资源时需要考虑同步问题,如果同步
2023-12-11 09:39:58
271
原创 Java多线程
用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现、线程状态转换各种状态一目了然,值得一提的是"blocked"这个状态:线程在Running的过程中可能会遇到阻塞(Blocked)情况此外,在runnable状态的线程是处于被调度的线程,此时的调度顺序是不一定的。Thread类中的yield方法可以让一个running状态的线程转入runnable。synchronized, wait, notify 是任何对象都具有的同步工具。
2023-12-11 08:00:00
198
1
原创 用反射动态生成SQL语句(增,查)
反射是一种非常强大的功能,它可以帮助我们实现动态生成查询语句等灵活的数据库操作。在实际开发中,我们可以根据具体的需求来灵活地运用反射,从而提高开发效率,减少重复代码,使代码更加灵活和易于维护。
2023-12-04 12:24:53
281
原创 string类的常用方法和需要注意的方面
在Java中,String类是一个非常常用的类,它代表字符串对象。在实际开发中,我们经常需要对字符串进行各种操作,比如拼接、查找、替换等。String类提供了丰富的方法来满足这些需求。下面我们来介绍一些String类的常用方法。
2023-11-26 21:46:21
118
1
转载 Java 接口
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
2023-11-20 13:15:02
146
1
原创 理解Java中的注解和反射机制
除了使用内置的注解,我们也可以自定义注解。自定义注解使用@interface关键字定义,可以包含属性、方法等。我们可以自定义注解,并结合反射机制在运行时获取注解信息,实现一些特定的功能。// ...
2023-11-13 08:25:49
359
原创 maven多模块开发 适合团队开发
如果我们之间在父模块中使用<dependencies>标签添加依赖, 每个子模块都添加这个依赖, 如果每个子模块都需要某个依赖, 可以父模块中使用<dependencies>标签添加依赖,按照层拆分, 把层拆分为一个一个模块 学习过程中 dao,service, web,entity,util。按照业务功能拆分: 每一个业务成功是一个模块, 包含dao,service,…父模块被子模块继承, 子模块的pom.xml文件继承父模块的pom.xml文件,user-parent 父模块 子模块包含在父模块内部。
2023-11-06 23:38:50
304
原创 线程的原子性
当多个线程同时访问共享资源时,可能会出现竞态条件(Race Condition),导致数据的不一致性。为了解决这个问题,Java提供了一些机制来保证线程的原子性。
2023-10-20 16:24:55
367
1
原创 线程的可见性(关键字volatile)
线程的可见性是指当多个线程同时访问共享的变量时,一个线程对变量的修改能够被其他线程立即看到。如果没有正确处理线程的可见性,可能会导致数据不一致或者出现意料之外的结果。
2023-10-13 10:34:08
330
原创 Java字符串转化date
由于Java中的日期类型只有Date类型,而Mysql中即有date型,又有datetime型,当我们想要在 java中获取Mysql中datetime类型的数据或向Mysql数据库中插入datetime类型的数据时,需要做 转换。可以根据需要指定不同的日期格式模式,将日期对象转换为特定格式的字符串。日期格式模式:在指定日期格式时,需要根据输入字符串的格式选择适当的日期格式模式。类可以方便地将字符串转换为日期对象,但需要注意日期格式模式的选择、异常处理和线程安全性。日期格式化:除了将字符串转换为日期对象,
2023-10-09 09:09:09
4547
1
原创 Socket 编程
为了确保数据的机密性和完整性,可以使用加密技术(如 SSL/TLS)对通信进行加密,使用数字签名进行身份验证,以及过滤和验证输入数据,防止恶意攻击。数据格式和编码:在进行数据传输时,要确保客户端和服务器端使用相同的数据格式和编码方式,以免导致数据解析错误或乱码问题。这可能是由于协议变更、数据格式修改或功能差异引起的。可以使用缓冲区提高数据传输速度,使用非阻塞 I/O 或多线程处理并发请求,避免不必要的数据复制和频繁的连接建立等。为了确保程序的稳定性和可靠性,对可能的异常情况进行适当的异常处理是必要的。
2023-09-22 17:11:08
467
1
原创 Java输入输出流(文件的复制)
Java的输入输出流是用于数据输入和输出的机制。它们提供了一种灵活的方式来读取和写入各种类型的数据,如文件、网络连接、内存缓冲区等。
2023-09-17 22:07:06
1456
1
原创 Java的线程
线程是程序执行的最小单位,是操作系统进行任务调度的基本单位。在Java中,线程是通过Thread类来实现的。一个Java程序可以同时运行多个线程,每个线程独立执行,拥有自己的程序计数器、栈和局部变量等。线程的生命周期新建状态(New):线程被创建,但还未启动。就绪状态(Runnable):线程被启动,等待CPU进行调度。运行状态(Running):线程正在执行任务。阻塞状态(Blocked):线程暂时停止执行,等待某个条件满足。死亡状态(Dead):线程执行完任务,终止运行。
2023-09-11 01:41:22
391
1
原创 java.lang.NullPointerException(空指针异常)
总结一下,避免空指针异常的关键是在使用可能为空的引用之前进行判空处理,并且合理利用Java提供的工具和语法。发生时是由于某个特定变量为空引起的,你可以使用异常处理机制来捕获并处理异常。类是 Java 8 引入的一个用于处理可能为空的值的容器。你可以使用三元运算符来检查对象是否为空,并执行相应的操作。异常的发生,并根据需要进行相应的处理,确保程序的正确执行。:当你尝试调用一个空对象的方法或访问其属性时,就会抛出。:当你尝试访问数组中的元素时,如果该元素为。的长度,执行结果会抛出空指针异常。
2023-09-04 00:59:00
8728
2
原创 java.lang.ArrayIndexOutOfBoundsException: (数组越界异常)
当我们访问数组中不存在的索引位置时,就会触发这个异常。数组基础知识回顾:首先,我们需要了解一些数组的基础知识。在Java中,数组是一种用于存储多个相同类型数据的数据结构。我们可以通过定义、声明和初始化来创建一个数组。数组的长度表示其中元素的个数,而数组的索引表示元素在数组中的位置。需要注意的是,
2023-08-28 08:40:06
9746
2
原创 java面向对象三大特征——封装、继承、多态
多态可以提高代码的灵活性和可扩展性,封装可以保证数据的安全性,继承可以复用父类的属性和方法,并进行扩展。理解和掌握这些概念对于编写高质量的面向对象程序非常重要。
2023-08-21 01:44:55
658
1
原创 深入理解Java循环及其应用
循环是编程中最基本、最常用的结构之一。在Java语言中,循环提供了多种形式的实现,如for循环、while循环和do-while循环。假设我们有一个需求,要求计算并输出1到100之间所有能被3整除的数之和。下面我们将采用不同的循环结构来实现这个需求,并进行对比。
2023-08-07 09:27:06
1043
1
原创 非访问修饰符
abstract修饰符用于修饰类、方法和内部类。它表示被修饰的元素是抽象的,即不能被实例化或完全实现。abstract类:使用abstract修饰的类是抽象类。抽象类不能被实例化,只能被继承。抽象类可以包含抽象方法和非抽象方法。抽象类的子类必须实现抽象方法,或者自己也声明为抽象类。abstract方法:使用abstract修饰的方法是抽象方法。抽象方法没有方法体,只有方法签名。抽象方法必须声明在抽象类中,且抽象类的子类必须实现抽象方法。抽象方法用于定义接口或约束子类的行为。抽象方法的声明以分号结尾。
2023-07-25 10:08:08
708
1
soso移动营业大厅(纯后端+MySQL数据库+JDBC).zip
2024-01-16
Java网络编程和io流实现的下载功能会出现下载大小不对的情况
2023-12-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人