Java全栈
文章平均质量分 57
Java全栈记录,目前从Java SE核心基础的JDBC技术开始记录(前面的有空补上)
IT ·南栀
gitee:nanzhi66
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Day23--前后端分离项目中如何使用 Vue.js 和 Axios 加载 WebServlet 生成的验证码图片
在前后端分离的项目中,使用 Vue.js 作为前端框架,通过 Axios 向后端发送请求以获取验证码图片是一个常见的场景。本文将介绍如何在 Vue 项目中通过 Axios 从后端 WebServlet 获取验证码图片流,并将其加载到前端页面中。原创 2024-08-10 22:31:04 · 1035 阅读 · 0 评论 -
Day22--IO流知识简学
Java的I/O流为我们提供了强大的数据处理能力。通过合理选择和使用不同类型的流对象,我们可以高效地进行数据传输和处理。理解流的概念和分类,将帮助我们在开发中更好地应对不同的I/O需求。原创 2024-08-10 22:20:39 · 1793 阅读 · 0 评论 -
Day21--锁机制和死锁概述(公平锁、非公平锁、乐观锁、悲观锁以及死锁的综合介绍)
公平锁是一种确保线程按照请求的顺序获得锁的机制。它保证了线程在请求锁时的顺序性,通常通过维护一个队列来实现。原创 2024-08-08 19:36:46 · 1562 阅读 · 0 评论 -
Day20_2--介绍同步加载和异步加载
同步加载优点:实现简单,适合简单任务。缺点:阻塞主线程,可能导致界面冻结或不响应。异步加载优点:不会阻塞主线程,提升用户体验,适合复杂或长时间运行的任务。缺点:实现复杂,可能需要处理并发、回调等问题。原创 2024-08-07 18:28:29 · 901 阅读 · 0 评论 -
Day20_1--多线程锁学习之synchronized和Lock
当谈到多线程编程时,同步和锁是非常重要的概念。Java 提供了多种机制来实现线程之间的同步,其中包括 synchronized 关键字和 Lock 接口的实现类。本文将介绍如何使用这些机制来确保线程安全性和避免竞态条件。原创 2024-08-07 18:18:32 · 549 阅读 · 0 评论 -
Day19--Java多线程编程入门学习
多线程是一种并发编程技术,它允许程序同时执行多个线程。线程是程序执行的基本单位,一个程序至少有一个线程,即主线程。通过使用多线程,可以在一个程序中同时处理多个任务,提高程序的效率和响应能力。多线程编程是Java中一个强大的特性,它能够提高程序的性能和响应能力。了解如何创建和管理线程,以及如何处理线程同步和通信,是编写高效并发程序的关键。掌握这些基础知识后,你可以进一步学习更高级的并发工具和设计模式,如线程池、并发集合等。原创 2024-08-06 22:57:18 · 1722 阅读 · 0 评论 -
Day18_2--Vue.js Ajax(使用 Axios)基础入门学习
Axios 是一个基于 Promise 的 HTTP 客户端,可以用于浏览器和 Node.js 环境中。它是现代化的 Ajax 库,用来替代传统的 XMLHttpRequest。原创 2024-08-05 20:46:27 · 726 阅读 · 0 评论 -
Day18_1--Vue基础学习入门
Vue.js 是一款流行的前端 JavaScript 框架,用于构建用户界面和单页面应用程序(SPA)。它的核心思想是通过简单的 API 和响应式数据绑定系统来驱动你的应用程序。原创 2024-08-05 20:42:11 · 657 阅读 · 0 评论 -
Day17_2--JSON学习之序列化非字符串数据传给前端页面
在现代Web应用开发中,前后端数据交互是一个至关重要的环节。本文将演示如何使用Java Servlet将非字符串数据序列化为JSON格式,并通过AJAX将其传递给前端页面。我们将通过一个简单的例子来实现这个过程,包括后端Java代码和前端HTML/JavaScript代码。原创 2024-08-03 20:47:23 · 504 阅读 · 0 评论 -
Day17_1--AJAX学习之GET/POST传参
AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。其实AJAX就可以理解为就是JS。原创 2024-08-03 16:20:05 · 836 阅读 · 0 评论 -
Day16_2--Servlet学习之过滤器+session实现防跳墙
Servlet过滤器Fileter是一个小型的web组件,它们通过拦截请求和响应,以便查看、提取或以某种方式操作客户端和服务器之间交换的数据,实现“过滤”的功能。Filter通常封装了一些功能的web组件,过滤器提供了一种面向对象的模块化机制,将任务封装到一个可插入的组件中, Filter组件通过配置文件来声明,并动态的代理。3.拦截放行:在拦截器中对登录需要的请求和响应放行,其他请求和响应都要做逻辑判断,如果存在Session会话属性login的键值对就允许访问,否则拦截。来介绍拦截器,请细看。原创 2024-08-02 23:41:29 · 571 阅读 · 0 评论 -
Day16_1--JSP了解学习之EL表达式语言入门教程
EL(表达式语言)是JSP 2.0引入的一种语言,它提供了一种简单的方法来访问JavaBean属性、集合、数组等,而无需使用大量的Java代码。EL的语法简洁明了,让JSP页面更加易于维护。EL是一种简化JSP页面中Java代码的强大工具,使得页面更简洁、可读性更强。通过EL,你可以方便地访问对象属性、请求参数,并进行基本的运算和逻辑判断。掌握EL语法和用法,将大大提高你的JSP开发效率。原创 2024-08-02 23:04:45 · 572 阅读 · 0 评论 -
Day15--Servlet后端之Jsp了解学习(数据展示分页的实现)
JSP(Java Server Pages)是一种基于Java的动态网页开发技术,主要用于创建能够动态生成内容的Web应用程序。他可以前后端语言混合编写,用在编译后会变成一个类,你也可以理解为jsp文件就是一个servlet类,只是jsp对于前端界面的编写更加便捷。”和“%>”标记之间声明变量,即在“”之间放置 Java 的变量声明语句。变量的类型可以是 Java 语言允许的任何数据类型。”和“%>”标记之间声明的方法,在整个 JSP 页面有效,但是,方法内定义的变量只在方法内有效。原创 2024-08-01 20:06:46 · 734 阅读 · 0 评论 -
Day14-Servlet后端验证码的实现
Kaptcha是一个高度可配置的验证码生成工具,由Google开源。它通过一系列配置文件和插件,实现了将验证码字符串自动转换成图片流,并可以与session进行关联,从而在验证过程中使用原创 2024-07-31 22:45:19 · 776 阅读 · 0 评论 -
Day13--JavaWeb学习之Servlet后端渲染界面
基于Day12中登录页面实现的修改,这里实现的是如果登录成功,跳到LoginSuccess页面中展示后端查询到数据库中的信息,并实现在浏览器实现插入数据和删除数据(mybaits)。当输入账号密码正确后进入LoginSuccess页面,通过resp.getWriter来编写后端需要渲染的页面。原创 2024-07-30 19:22:12 · 392 阅读 · 0 评论 -
Day12--Servlet实现前后端交互(案例:学生信息管理系统登录页面)
Servlet、GenericServlet和HttpServlet三者之间的关系是Java Web开发中的一个重要概念,它们共同构成了基于Java的服务器端程序的基础。原创 2024-07-29 23:15:04 · 1008 阅读 · 0 评论 -
Day11_3--JavaWeb基础环境安装(tomcat+servlet+maven)
构造器选择maven-archetype-webapp直接创建即可。原创 2024-07-27 13:10:31 · 812 阅读 · 0 评论 -
Day11_2--零钱通小项目改造mybaitis+maven
基于Day6--零钱通(记账)小项目测试项目本次主要的修改是数据持久化,只修改了数据访问层的代码,和表现层的调用,采用的是mybaitis的框架技术,具体代码如下:数据库查询使用的是第三种接口扫描的方式:接口mapperDAO类用于获取sqlSession和mapper(存放接口的类)资源 模型层业务逻辑层存放的是业务具体逻辑的实现方法,便于在表现层调用。表现层mybatis配置及其mapper映射文件配置 下面的配置只需要连好数据库然后添加mapper映原创 2024-07-27 12:16:48 · 601 阅读 · 0 评论 -
Day11_1--mybatis多表查询拓展学习之三表联查
三表联查的关键在于理清楚表与表之间的联系,从数据库表中可以看出要想查出一个学生的多门课程的成绩,我们的SQL语句就应该是以下逻辑:(1)通过studens表的sno查找到学生在scores表中的sno(一对多)(2) 通过scores表中的cno查找coures表中的cname(一对一)创建数据库的语句在文章末尾处现在捋清楚数据之间的关系后, 就要处理实体类中的数据的正确注入。原创 2024-07-26 17:48:16 · 503 阅读 · 0 评论 -
Day10--mybatis多表连接查询学习(一对一、一对多、多对多)
MyBatis是一个优秀的持久层框架,支持将SQL语句、存储过程以及高级映射转换成Java对象。下面是MyBatis处理一对一、一对多、多对多关系的方式及相应的代码示例。原创 2024-07-25 19:54:13 · 521 阅读 · 0 评论 -
Day9--学习三种方式实现mybatis数据库查询(XML映射文件、注解方式、接口扫描)
MyBatis 是一个优秀的持久层框架,支持多种方式进行数据库操作,包括使用独立的映射文件(XML)、注解和接口扫描。下面我将分别给出这三种方式的代码案例。原创 2024-07-25 09:58:11 · 1107 阅读 · 0 评论 -
Day8--mybaits框架学习
我的环境是jdk1.8+maven3.9.3+mybatis3.55+log4j1.2.12。在mybatis_config.xml的configuration标签中加一句,就可完美解决。首先看下今天学习mybatis的大致架构。框架学习只需要知道怎么做就好。先两个xml配置文件。下面的就是测试代码了。原创 2024-07-23 20:02:29 · 297 阅读 · 0 评论 -
Day7_2--Maven项目管理依赖学习
早上来到公司, 我们做的第一件事就是从源码库签出最新的代码,然后进行单元测试,如果测试失败,会找 相关的同事一起调试,修复错误代码。(3)在 IDE 中设置编译版本: 如果你在使用 IDE(如 IntelliJ IDEA、Eclipse 等),可以在项目设置中修改编译器的版本,确保与你的代码兼容。1.介绍Maven-------->>>>总结一句话(管理jar包非常方便,非常推荐使用,but会经常出现maven版本和依赖版本之间的不兼容问题,需要自行摸索)最简单的方法就是使用高版本maven。原创 2024-07-23 19:37:43 · 381 阅读 · 0 评论 -
Day7_1--jdbc开源库DbUtils和JdbcTemplate的学习
使用这两个开源库都需要导包,maven管理jar包在Day7_2中介绍,deutils需要一个包,jdbctemplate全部需要5个包;先创建工具类获取数据库连接对象–>通过getconnection()方法。下面是一个数据操作层层的代码,使用dbuntils封装的数据操作类。这里没有调用上面的连接,采用的是传统的连接,可以更具需要更改。下面是测试类,介绍jdbctemplate的初级用法。有需要自行到主页的gitee仓库取。先给一个德鲁伊的工具类来获取连接。需要导入的jar包如下。原创 2024-07-23 19:25:40 · 508 阅读 · 0 评论 -
Day6--零钱通(记账)小项目测试
从数据获取字段直接输出的化就会出现2024-07-20T16:23这种奇怪的格式,这个项目比较简单所以我把功能实现直接写到了表现层,没有封装方法,这样展示也比较直观。money表对应的javabean实体类发出来,需要自己写,用ptg插件很方便。在这里有一个小细节,关于数据库中时间类型的设定 如果设定为datatime,这个小项目还是利用封装好的jdbc工具去实现数据持久化的项目。在时间数据入库的时候也容易出错,所以这里就设成了字符串类型。数据库建表代码如下,id我们要实现让他自增。原创 2024-07-21 11:02:07 · 591 阅读 · 0 评论 -
Day5_2--学生信息管理系统数据持久化改造(德鲁伊)
本次主要是利用自己封装好的,jdbc连接工具实现对数据库数据的增删改查(也就是数据持久化)整个项目代码在我的gitee上有上传,看主页自取。原创 2024-07-21 10:41:57 · 249 阅读 · 0 评论 -
Day5_1--jdbc学习代码简记(重点:多种返回类型的查询的实现)
当方法的返回类型是泛型是一般需要给传入jabean类对象的反射类,在其他类型方法中就不用传入反射类。在Day学习的代码中写的泛型方法中没有传入反射类是因为我通过截取sql语句然后获取反射类了。原创 2024-07-19 17:27:57 · 334 阅读 · 0 评论 -
Day4--jdbc学习代码简记(泛型返回方法)
这里定义好表中的属性信息后就可以用Ptg插件生成的javaBean信息。原创 2024-07-19 17:27:09 · 426 阅读 · 0 评论 -
Day3--实现从数据库获取数据完成登录账号密码验证案例
数据库中的每个表都有一个对应的javabean类与之对应,其中存储着表中所有的属性信息,为了实现登录验证,现在需要对用户输入的信息和数据库中的信息实现对比,为实现此功能:首先在Admin类中我创建了checkLogin方法,用于实现查询数据库中的的账号密码,并为类中定义的username和password变量完成初始化,返回查询结果。在登录判断时对checkLogin返回的boolean值进行判断即可。原创 2024-07-19 17:25:48 · 524 阅读 · 0 评论 -
Day2_3--java反射的使用
这是一样的道理,并且Java从应用层给我们提供了安全管理机制——安全管理器,每个Java应用都可以拥有自己的安全管理器,它会在运行阶段检查需要保护的资源的访问权限及其它规定的操作权限,保护系统免受恶意操作攻击,以达到系统的安全策略。1.由于反射允许代码执行一些在正常情况下不被允许的操作(比如访问私有的属性和方法),所以使用反射可能会导致意料之外的副作用--代码有功能上的错误,降低可移植性。4.程序人员希望在源代码中看到程序的逻辑,反射等绕过了源代码的技术,因而会带来维护问题。原创 2024-07-16 18:51:14 · 401 阅读 · 0 评论 -
Day2_2--java中注解的使用
用@interface 关键字定义注解,注解的成员参数只能是基本类型、String、Class、Enum、Annotation 或者它们使用元注解@Target、@Retention、@Documented、@Inherited、@Repeatable 来修饰自定义注解,指定注解的作期、文档生成、继承性和重复性等属性。解释 1:注解是一种能被添加到 java 源代码中的元数据,方法、类、参数和包都可以用注解来修饰是一种特殊的标记,可以用在方法、类、参数和包上,程序在编译或者运行时可以检测到这些标记的处理。原创 2024-07-16 18:45:22 · 861 阅读 · 0 评论 -
Day2_1--druid(德鲁伊)数据库连接池的使用
德鲁伊properties配置文件。首先需要导jar包到项目库。原创 2024-07-16 18:06:27 · 609 阅读 · 0 评论 -
Day1_2--数据库crud操作的封装(使用PreparedStatement)
【代码】Day1_2--数据库crud操作的封装(使用PreparedStatement)原创 2024-07-15 18:57:48 · 394 阅读 · 0 评论 -
Day1_1--通过jdbc驱动程序连接mysql数据库+测试(hamcrest+junit)
【代码】Day1_1--通过jdbc驱动程序连接mysql数据库+测试(hamcrest+junit)原创 2024-07-15 14:18:13 · 447 阅读 · 0 评论
分享