- 博客(53)
- 收藏
- 关注
原创 初始JDBC
JDBC(Java Database Connectivity)是Java语言操作数据库的标准API,它为Java程序提供了访问各种关系型数据库的统一接口。
2025-09-20 08:00:00
667
原创 初识JDBC练习题
这三道题覆盖了JDBC的核心操作:查询(SELECT)、新增(INSERT)、更新(UPDATE),并逐步引入等进阶知识点。数据库连接的基本流程不同SQL操作对应的JDBC方法(资源关闭的规范预处理语句的使用(防SQL注入)练习前需确保已创建user表并配置正确的数据库连接信息。
2025-09-20 08:00:00
419
原创 数据库如何对接Java后端--JDBC
通过以上方式,Java后端可以高效地与数据库进行交互,实现数据的存储、查询、更新和删除等操作,满足应用程序的数据管理需求。
2025-09-19 08:00:00
1050
原创 JDBC介绍
JDBC(Java Database Connectivity)是Java语言操作关系型数据库的标准API,它提供了一套用于执行SQL语句的接口,使Java程序能够与各种数据库(如MySQL、Oracle、SQL Server等)进行交互。通过JDBC,Java程序可以灵活地与数据库交互,是Java后端开发的基础技能之一。不同数据库需要对应驱动(如MySQL的。JDBC主要由以下接口和类组成(位于。(注意关闭顺序,避免资源泄露)。
2025-09-19 08:00:00
246
原创 数据库存储过程
它由SQL语句(如查询、插入、更新、删除)和流程控制语句(如条件判断、循环)组成,实现复杂业务逻辑。首次创建时,数据库会对其进行编译,将编译后的执行计划存储在系统表中;后续调用时,直接复用执行计划,避免重复编译的开销。调用方式灵活,可通过应用程序(如Java、Python)、数据库客户端(如MySQL Workbench、Navicat)或其他存储过程触发。存储过程是数据库开发的核心工具,其**“预编译、高安全、可复用”** 的特性使其在复杂业务场景中(如电商、金融、企业ERP)不可或缺。
2025-09-18 08:00:00
641
原创 数据库长久发展
数据库的后续使用是一个“持续迭代”的过程,核心是“以业务需求为导向,以稳定性、性能、安全为目标需通过标准化的日常运维保障基础可用,通过性能优化支撑业务增长,通过数据安全与合规守护核心资产,最终让数据库成为业务创新的“助推器”而非“瓶颈”。
2025-09-18 08:00:00
1138
原创 数据库视图详解
若需调整视图的逻辑(如修改查询条件、新增列),可使用ALTER VIEW-- 修改v_user_info,新增“注册时间”列ASFROM users数据库视图是一种“轻量级”的数据库对象,其核心价值在于封装与隔离对用户:隐藏复杂SQL逻辑,提供简洁的查询接口;对系统:控制数据访问权限,隔离基础表结构变化,保障数据安全和系统稳定性。在实际开发中,视图常用于报表统计、多系统数据共享、普通用户数据访问等场景,但需注意其“虚拟性”和“修改限制”,避免因不当使用导致性能问题或数据不一致。
2025-09-17 16:55:19
1358
原创 数据库锁的使用
数据库锁的使用核心是“按需选择锁粒度和锁模式大批量操作(如全表更新)用表锁,减少锁开销;单行/小批量操作(如订单修改)用行锁,提升并发度;读多写少场景(如用户资料更新)用乐观锁,避免锁竞争;关键是确保索引有效(避免行锁退表锁)、控制加锁顺序(避免死锁)、缩短事务时长(减少锁等待)。不同数据库(如PostgreSQL、Oracle)的锁语法略有差异(如PostgreSQL的),但核心原理和使用原则一致,需结合具体DBMS文档调整。
2025-09-17 16:53:14
742
原创 MySQL 数据库事务
MySQL 数据库事务是一组不可分割的 SQL 操作集合,这些操作要么全部成功执行,要么全部失败回滚,确保数据的一致性和完整性。事务在处理复杂业务逻辑(如转账、订单处理等)时至关重要。
2025-09-15 08:15:00
639
原创 MySQL索引的创建与使用
核心价值:通过有序结构加速查询,降低全表扫描的开销;关键原则:“按需创建、避免冗余”——只在高频查询、低更新频率的字段上建索引,避免无效索引;优化重点:理解索引生效规则(如最左前缀),通过EXPLAIN等工具排查失效场景,结合业务场景选择合适的索引类型(如联合索引、覆盖索引)。合理使用索引,可使千万级数据的查询从“秒级”降至“毫秒级”,是数据库性能优化的第一步,也是最重要的一步。
2025-09-15 08:00:00
845
原创 MySQL 基础 SQL 语句
MySQL 数据库的基础 SQL 语句是操作数据和管理数据库的核心,主要分为四大类。以下是详细的语法说明和示例,所有示例基于student(学生表)和score(成绩表)展开,便于理解实际应用场景。
2025-09-14 08:00:00
633
原创 数据库可视化面板下载
数据库可视化面板能将复杂的数据库数据转化为直观的图表、报表,降低数据查看与分析门槛。本文将以主流的(功能全面,支持多数据库)、(开源免费,跨平台)、(专业级,适合开发场景)三款工具为例,详细讲解下载流程与 MySQL 连接步骤,大家可以根据不同的需求进行选择。
2025-09-13 15:22:22
1053
原创 MySQL保姆级安装教程
按照以上步骤操作,即可顺利完成 MySQL 的安装。如果遇到具体错误,可根据错误提示搜索解决方案,或补充具体信息进一步咨询。
2025-09-13 15:17:06
1415
原创 数据库基础
- 1. 创建“用户表”(user)user_id INT PRIMARY KEY AUTO_INCREMENT, -- 主键(唯一标识),自增username VARCHAR(50) NOT NULL, -- 用户名,非空phone VARCHAR(20) UNIQUE, -- 手机号,唯一(不重复)create_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认当前时间。
2025-09-10 10:24:54
971
原创 Java关键字
关键字是Java语言的保留字,具有特殊含义,必须严格遵守其用法命名规范虽非语法要求,但遵循规范能显著提高代码的可读性和团队协作效率良好的命名习惯是优秀程序员的基本素养,建议在实际开发中严格遵守掌握这些基础知识,是编写规范、易维护的Java代码的前提。
2025-09-10 10:16:16
907
原创 io流详解
IO流是程序与外部设备交换数据的通道,按流向分为输入流和输出流字节流处理所有数据,字符流专门处理文本缓冲流能大幅提升读写效率,实际开发中几乎必用转换流用于处理编码问题,解决中文乱码用完流必须关闭,优先使用语法建议你按照上面的示例代码,亲手写几个程序:比如复制图片、读写文本、处理不同编码的文件。多练习几次,就能熟练掌握IO流的使用了。不知道练习什么的话,可以尝试写一下这些练习题练习题。
2025-08-20 09:34:17
884
原创 多线程详解
生活案例假设你放学回家要做三件事:烧水(10分钟)、写作业(20分钟)、整理书包(5分钟)。单线程方式:做完一件再做下一件,总共需要35分钟。多线程方式:烧水的同时写作业,水开后暂停写作业去灌水壶,最后整理书包,总共25分钟(效率提升!对应到程序中单线程:程序从上到下依次执行,一件事没做完,后面的只能等着。多线程:让程序“同时”做多个任务(注意:是CPU快速切换执行,不是真正的并行,除非有多个CPU核心)。
2025-08-15 14:53:20
1376
原创 多线程练习题
实现一个简单的生产者-消费者模型:1个生产者线程不断生产数据(1-10)放入缓冲区,1个消费者线程不断从缓冲区取出数据并打印。缓冲区最多只能存放3个数据,满时生产者等待,空时消费者等待。:创建两个线程,线程1打印1-5的数字,线程2打印6-10的数字,要求两个线程交替执行(线程1打印一个,线程2打印一个,以此类推)。:创建10个线程,每个线程对同一个计数器执行1000次加1操作,最终结果应该是10000。时线程1执行,完成后唤醒线程2并等待;时线程2执行,完成后唤醒线程1并等待。:线程安全、原子操作、
2025-08-15 14:50:49
569
原创 Java面向对象编程(OOP)的三大核心特征
封装是指将对象的属性(数据)和方法(操作)捆绑在一起,并通过访问控制符限制外部对内部细节的直接访问,仅暴露必要的接口(方法)。简单说:“隐藏内部实现,只留访问入口”。“属性私有,方法公开”。关键:通过private隐藏数据,通过控制访问,在方法中加入校验逻辑保证数据合法性。继承是指让一个类(子类/派生类)直接拥有另一个类(父类/基类)的属性和方法,从而减少代码重复,实现“共性抽取,个性扩展”。简单说:“子类站在父类的肩膀上,无需重复编写父类已有的代码”。“共性放父类,个性放子类”。关键:通过。
2025-08-12 17:45:38
1064
原创 Java面向对象三大特征练习题
以下是3道难度递增的Java面向对象三大特征练习题,从基础封装到综合多态应用,每道题均包含解题思路、完整代码和输出结果:题目:设计一个类,封装品牌()、价格()和内存()属性,要求:输出结果练习题2:中等难度 - 继承与方法重写题目:设计一个(形状)父类,包含(求面积)和(求周长)方法。再定义(圆形)和(矩形)子类,继承并实现各自的面积和周长计算:输出结果练习题3:进阶难度 - 多态综合应用题目:设计一个(交通工具)父类,包含(启动)和(停止)方法。定义(汽车)、(自行车)、(轮船)三个子类
2025-08-12 17:44:55
354
原创 Java 抽象类和接口
抽象类是包含抽象方法的类,用abstract关键字修饰。它是对类的抽象,用于抽取同类事物的共性(包括属性和方法),但自身无法实例化(不能用new创建对象),必须通过子类继承并实现其抽象方法后才能使用。接口是方法声明的集合,用interface关键字修饰。它是对行为的抽象,用于定义一组“规范”或“契约”,自身无法实例化,必须被类通过implements关键字实现,实现类需重写接口中的所有抽象方法。抽象类是“部分实现的类”,侧重同类事物的共性复用,通过继承传递属性和方法,适合“is-a”关系。接口。
2025-08-12 17:44:06
999
原创 Java抽象类与接口练习题
练习题1:掌握抽象类的基本用法,通过继承实现抽象方法,理解抽象类对共性的抽取。练习题2:熟悉接口的多实现特性,区分抽象方法、默认方法和静态方法的使用方式。练习题3:综合应用抽象类和接口,通过抽象类定义基础属性和方法,通过接口扩展特定功能,体现两者在设计上的互补性。三道题逐步深入,覆盖了抽象类与接口的核心特性、实现方式和设计思想。
2025-08-12 17:42:25
911
原创 Java异常处理练习题
题目:定义一个类,包含方法(取款)。自定义(余额不足异常,受检异常)和(金额无效异常,非受检异常)。若金额≤0,抛出。若金额>余额,抛出。否则扣减余额,提示取款成功。在测试类中调用withdraw方法,处理可能的异常。练习题1:掌握基础用法,处理常见运行时异常。练习题2:熟悉受检异常处理,使用自动管理资源。练习题3:理解throw手动抛异常、throws声明异常,以及自定义异常的设计。练习题4:综合应用异常链、多层异常传递,模拟实际业务中的异常处理流程。
2025-08-11 11:11:44
1113
原创 Java 异常详解
Java 内置的异常类覆盖了大部分常见错误,但在实际开发中,我们可能需要业务相关的异常(如“用户不存在”“余额不足”),这时可以通过自定义异常类实现。继承Exception(自定义受检异常)或(自定义非受检异常)。提供构造方法(通常至少实现无参构造和带消息的构造)。// 自定义受检异常(继承 Exception)// 无参构造super();// 带消息的构造// 调用父类构造,传递异常信息// 自定义非受检异常(继承 RuntimeException)
2025-08-11 11:11:12
1984
原创 Java集合的遍历方式(全解析)
遍历方式:根据集合类型(ListSetMap)和需求(是否修改、是否需要索引)选择,Iterator适合删除元素,forEach(Lambda)适合简洁读取,entrySet()是Map最高效的遍历方式。集合选择:根据“有序性”“重复性”“操作效率”决策——List有序可重复,Set无序去重,Map键值对映射;具体实现类按查询/增删效率、排序需求选择。掌握这些规则,能写出高效、易维护的集合操作代码。点击此处进入练习题。
2025-08-07 18:01:13
2272
原创 Java集合遍历练习题
基础(1-2):掌握List的for-each和普通for循环遍历,理解索引的作用。进阶(3-4):学会Iterator和的使用,包括遍历中删除元素和双向遍历。中级(5-6):熟悉Set的遍历特性(去重、有序/无序),掌握Lambda遍历方式。高级(7-9):掌握Map的多种遍历方式(keySetentrySet),理解TreeMap的有序性及统计功能。综合(10):能处理集合嵌套结构(Map嵌套List),结合多层遍历解决实际问题。通过这些练习,可全面掌握Java集合的遍历技巧及适用场景。
2025-08-07 17:57:59
611
原创 Java 集合详解
Java 集合框架通过Collection(单元素)和MapListArrayListLinkedList)适合存储有序可重复的元素,重点关注查询或增删效率。SetHashSetTreeSet)适合存储无序不可重复的元素,重点关注去重或排序需求。MapHashMapTreeMap)适合存储键值对,重点关注key的唯一性和排序需求。实际开发中,需根据有序性、重复性、操作效率、线程安全等需求选择合适的集合类,同时善用泛型和迭代器提高代码安全性和可读性。
2025-08-07 17:45:08
1228
原创 Java 集合工具类
工具类是 Java 集合操作的“瑞士军刀”,提供了排序、查找、同步化、不可修改化等实用功能,极大简化了集合处理代码。掌握其核心方法,能显著提高开发效率,同时保证代码的安全性和可读性。实际开发中,需根据场景灵活选择合适的方法,尤其注意线程安全和不可修改集合的特性。点击此处进入练习题。
2025-08-06 10:37:48
935
原创 Java集合框架练习题
练习题1:掌握ArrayList的基本CRUD操作和遍历方式。练习题2:理解HashSet的去重特性,以及集合间的转换和排序。练习题3:熟悉TreeMap的排序功能,用于统计场景。练习题4:综合应用集合嵌套(Map嵌套List),模拟实际业务数据结构,强化多集合协同操作能力。通过这些练习,可深入理解不同集合的特性和适用场景,提升集合框架的实际应用能力。
2025-08-06 10:34:51
1068
原创 Java 类与对象
类是对一类事物的抽象描述,是一个“模板”或“蓝图”,定义了这类事物的属性(状态)和方法(行为)。例如:“汽车”是一个类,它的属性包括“颜色、品牌、排量”,方法包括“启动、加速、刹车”。类不占用内存,它只是一种逻辑上的定义。对象是类的具体实例,是真实存在的个体,基于类的模板创建,具有类定义的属性和方法。例如:“我家那辆黑色的特斯拉Model 3”是“汽车”类的一个对象,它的属性有具体值(颜色=黑色,品牌=特斯拉,排量=纯电),可以执行启动、加速等行为。对象占用内存,每个对象都是独立的。类通过。
2025-08-04 14:48:46
1221
原创 Java类与对象练习题
题目:定义一个Student类,包含姓名(name)、年龄(age)、成绩(score)三个属性,以及打印学生信息的方法。创建两个学生对象,分别赋值并调用方法打印信息。练习题1掌握类的基本定义、对象创建和属性/方法调用。练习题2理解封装的核心(私有属性+getter/setter)及数据校验逻辑。练习题3实现对象间的交互(转账涉及两个账户的协作),强化封装和方法设计。通过这三道题,可逐步掌握类与对象的核心用法,从基础语法过渡到实际场景应用。
2025-08-04 14:44:48
1257
原创 Java杨辉三角详解
杨辉三角是一个由数字排列成的三角形数阵每行的第一个数和最后一个数都是1。从第3行开始,中间的每个数等于它上方两数之和(即第i行第j列的数 = 第i-1行第j-1列的数 + 第i-1行第j列的数)。杨辉三角的核心是利用上一行元素计算当前行元素,通过二维数组存储整个三角,或通过滚动数组优化空间。二维数组的动态初始化(每行长度不同)。元素间的依赖关系(中间元素 = 上方两元素之和)。格式化输出的技巧(通过空格控制对齐)。
2025-08-01 10:07:00
653
原创 Java冒泡排序超详细解释
轮次:长度为n的数组,最多需要n-1轮遍历(每轮确定一个元素的最终位置)。每轮比较次数:第i轮(从0开始)需要比较n-1-i次(因为已有i个元素排好序)。交换条件:升序排序时,若则交换(降序则相反)。冒泡排序的核心是**“相邻比较、逐步沉淀”**,每一轮将最大元素移到未排序部分的末尾,遍历范围逐轮缩小。虽然时间复杂度较高,但实现简单、空间占用少,适合理解排序算法的基本思想。通过手动模拟上述流程,能直观感受排序过程,为学习更复杂的排序算法(如快速排序、归并排序)打下基础。冒泡排序练习案例。
2025-07-30 09:30:23
1102
原创 Java冒泡排序练习案例
案例1掌握整数升序排序的基础逻辑,核心是相邻比较与交换。案例2拓展到字符串排序,理解compareTo方法在对象排序中的应用。案例3通过优化减少无效遍历,理解冒泡排序的性能优化思路。三个案例逐步深入,覆盖了冒泡排序的核心用法、拓展场景和优化技巧,适合从入门到熟练掌握。
2025-07-30 09:28:42
662
原创 Java字符串详解
String:不可变,适合字符串固定或修改少的场景(如常量、配置项),利用常量池复用节省空间。:可变,单线程下频繁修改字符串(如拼接、替换)优先使用,性能最佳。:可变,多线程下需保证线程安全时使用(如多线程日志拼接),性能略低于。核心区别在于可变性和线程安全,实际开发中根据是否需要修改、是否多线程选择即可。
2025-07-28 17:47:18
1003
原创 Java数组详解
数组是相同数据类型元素的有序集合,它在内存中占据一块连续的存储空间,通过索引(下标)快速访问元素(索引从0开始)。特点:元素类型必须一致(如int数组只能存整数,String数组只能存字符串)。长度固定(创建后不可修改,若需动态扩容需手动处理)。数组是相同类型元素的有序集合,通过索引快速访问,解决批量数据管理问题。一维数组核心:声明→初始化(静态/动态)→遍历(for/foreach)。二维数组是“数组的数组”,需嵌套循环遍历。Arrays工具类简化排序、拷贝等操作,是开发必备。通过。
2025-07-25 11:13:34
1148
原创 Java数组练习案例
这些练习题覆盖了一维数组的声明、初始化、遍历、求和、找最值、反转,以及二维数组的遍历和求和,均基于数组的核心操作(索引访问、循环遍历)。解题关键在于理解“数组通过索引操作元素”和“嵌套循环处理二维数组”的逻辑,代码可直接运行,帮助巩固数组基础用法。
2025-07-25 11:12:20
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅