springboot3.x下集成hsqldb数据库
springboot3.x下集成hsqldb数据库
本文使用目前最新的sringboot3.4.3 和HyperSQL 2.7.4演示
HSQLDB数据库简介
HSQLDB(HyperSQL DataBase)是一个开放源代码的JAVA数据库。
可以透过 jdbc driver 来存取, 支持 ANSI-92 标准的 SQL 语法, 而且他占的空间很小, 拥有快速的数据库引擎, 可以自由下载, 并且可以安装使用在商业产品之上。
HSQLDB非常适合在用于快速的测试和演示的Java程序中。做单元测试也非常理想。
基本特性
开放源代码:HSQLDB可以自由使用和分发,源代码公开,方便开发者进行学习和修改。
JAVA接口:HSQLDB具有标准的SQL语法和JAVA接口,可以与JAVA应用程序无缝集成。
轻量级:HSQLDB占用的系统资源相对较少,适合在资源有限的环境中使用,如嵌入式系统或小型应用程序。
跨平台: HSQLDB是用Java编写的,因此具有Java的跨平台性质,可以在不同操作系统上运行。
运行模式
HSQLDB支持多种运行模式,以满足不同场景下的需求:
Server模式:在这种模式下,HSQLDB作为一个独立的数据库服务器运行,可以通过网络接受客户端的连接请求。多个客户端可以同时连接到服务器并执行数据库操作。Server模式提供了最大的可访问性。
In-Process模式(又称Standalone模式):HSQLDB可以作为一个库嵌入到Java应用程序中,与应用程序在同一个JVM进程中运行。这种模式因为数据不用转换和通过网络传送,所以速度更快。但其主要的缺点是默认的不能从应用程序外连接到数据库。
内存模式:数据库完全存储在内存中,适合临时存储和测试。因为数据不会持久化到磁盘,所以当数据库关闭时,所有数据将丢失。内存模式通过“mem:”协议的方式来指定。
Web服务器模式:此模式以WEB服务器的形式启动,并通过HTTP协议接受客户端命令。
hsqldb数据库安装
下载地址
https://sourceforge.net/projects/hsqldb/files/hsqldb/
本文使用的版本HyperSQL 2.7.4
解压ZIP包
将下载的ZIP包解压到目标文件夹中。
启动HyperSQL服务器
进入data文件夹,输入下面的命令:
java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:d:/temp/mydb --dbname.0 test
说明
java: 这是 Java 应用程序的启动命令。
-cp ../lib/hsqldb.jar: -cp 参数指定了类路径(classpath),即 Java 运行时环境搜索类文件的位置。它指向了包含 HyperSQL JDBC 驱动和服务器类的 JAR 文件 hsqldb.jar。
org.hsqldb.server.Server: 这是要运行的HyperSQL数据库服务器入口点类的完全限定名。
--database.0 file:d:/temp/mydb: 这是一个服务器参数,指定了第一个数据库的位置和类型。--database.0 表示这是第一个(也可能是唯一的)数据库实例的配置。file:d:/temp/mydb 指定了数据库文件的存储位置,D:\temp\ 目录下的名为 mydb 的文件数据库。这里的 file: 前缀是必需的,告诉 HyperSQL 数据库是以文件形式存储的。
--dbname.0 test: 这是另一个服务器参数,为第一个数据库实例指定了一个数据库名(或别名)。这里数据库名被设置为test。这个名称将在客户端连接数据库时使用。
当你运行这个命令时,HyperSQL 服务器将启动,并在指定的位置(d:/temp/mydb)创建一个新的数据库(如果它还不存在的话),或者打开一个已经存在的数据库。服务器将监听默认的端口(通常是 9001),等待客户端连接。
客户端可以使用 JDBC URL jdbc:hsqldb:hsql://localhost/test 来连接到这个数据库,其中 localhost 是服务器的地址,test 是你在 --dbname.0 参数中指定的数据库名。
打开 HSQLDB 客户端
进入data文件夹,输入下面的命令:
java -classpath ../lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
在客户端界面中,填写必要的连接参数,如:
Type:选择 HSQL Database Engine Server(如果你连接的是服务器模式)。
Driver:通常不需要修改,默认为 org.hsqldb.jdbcDriver。
URL:输入 JDBC 连接字符串,如 jdbc:hsqldb:hsql://localhost/mydb(其中 localhost 是服务器地址,mydb 是你在启动服务器时指定的数据库名)。
User 和 Password:输入你在启动服务器时设置的用户名和密码(如果有的话)。
点击连接按钮来连接到数据库。
创建bat文件
也可以通过批处理文件启动服务器和打开客户端
在hsqldb的文件夹中创建一个mydb文件夹,在文件夹中创建批处理文件:runManager.bat,runManagerSwing.bat
runManager.bat的内容:
@echo off
java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:d:/temp/mydb --dbname.0 test
runManagerSwing.bat的内容:
@echo off
java -classpath ../lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing
springboot集成
HSQLDB是一个纯Java的关系数据库管理系统(RDBMS),它非常适合用于开发和测试环境。以下是在Spring Boot中集成HSQLDB的基本步骤:
添加依赖
添加HSQLDB的依赖以及Spring Boot Starter JDBC(或JPA,如果你打算使用JPA)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.7.4</version>
</dependency>
配置数据源
在application.yml文件中配置HSQLDB数据源。
spring:
datasource:
url: jdbc:hsqldb:mem:testdb
driver-class-name: org.hsqldb.jdbcDriver
username: sa
password:
spring.datasource.url:指定HSQLDB的内存数据库URL(mem:testdb表示在内存中创建名为testdb的数据库)。也可以将数据库URL更改为文件模式(如jdbc:hsqldb:file:/path/to/your/db),以便将数据库存储在磁盘上。
spring.datasource.driverClassName:指定HSQLDB的JDBC驱动类名。
spring.datasource.username和spring.datasource.password:指定数据库的用户名和密码(默认用户名是sa,密码为空)。
Student实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Student {
private Integer age;
private String name;
private long id;
}
数据层接口
public interface StudentDao {
// 创建数据表
int createTable();
//插入记录
int insetStudent(String name, int age);
//查询所有的记录
List<Student> queryStudents();
//根据id查询对应的记录
Student queryStudentById(int id);
//更新的操作
int updateStudent(int id, int age);
//删除指定记录
int deleteStudent(int id);
}
字段映射类
//实现 查询记录中字段和实体类属性的映射
public class StudentRowMapper implements RowMapper<Student> {
@Override
public Student mapRow(ResultSet resultSet, int i) throws SQLException {
Student student = new Student();
student.setId(resultSet.getInt("id"));
student.setName(resultSet.getString("name"));
student.setAge(resultSet.getInt("age"));
return student;
}
}
数据层实现类
@Component
public class StudentDaoImpl implements StudentDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public int createTable() {
String sql = "CREATE TABLE student (" +
"id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY, " +
"name VARCHAR(255) NOT NULL, " +
"age INTEGER DEFAULT 0)";
jdbcTemplate.execute(sql);
return 0;
}
@Override
public int insetStudent(String name, int age) {
String sql = "insert into student(name,age) values(?,?)";
int n = jdbcTemplate.update(sql,name,age);
return n;
}
@Override
public Student queryStudentById(int id) {
String sql = "select * from student where id=?";
Student student = jdbcTemplate.queryForObject(sql,new StudentRowMapper(),new Object[]{id});
return student;
}
@Override
public List<Student> queryStudents() {
String sql = "select * from student";
List<Student>studentList = jdbcTemplate.query(sql,new StudentRowMapper());
return studentList;
}
@Override
public int updateStudent(int id, int age) {
String sql = "update student set age=? where id=?";
return jdbcTemplate.update(sql,age,id);
}
@Override
public int deleteStudent(int id) {
String sql = "delete from student where id=?";
return jdbcTemplate.update(sql,id);
}
}
测试
@Test
public void queryStudentsTest() {
// 创建数据表
studentDao.createTable();
// 插入记录
int n = studentDao.insetStudent("name1",12);
n = studentDao.insetStudent("name2",12);
System.out.println("n:" + n);
// 查询所有记录
List<Student> stuList = studentDao.queryStudents();
System.out.println("size:" + stuList.size());
// 修改年龄
n = studentDao.updateStudent(1,10);
Student stu = studentDao.queryStudentById(1);
System.out.println("student id:" + stu.getId() + ",name:" + stu.getName() +",age:" + stu.getAge());
// 删除记录
n = studentDao.deleteStudent(2);
System.out.println("n:" + n);
}
常见问题
问题1:主键id的值从0开始而不是1:
HSQLDB的自增列通常使用GENERATED BY DEFAULT AS IDENTITY,在创建表时需要明确指定起始值。例如:
CREATE TABLE table_name (id INT GENERATED BY DEFAULT AS IDENTITY (START WITH 1), ...);
这样在新建表时,主键就会从1开始。如果用户没有指定START WITH,HSQLDB默认从0开始,这可能是问题所在。
问题2:希望在磁盘上创建数据库
HSQLdb2.7.4数据库在springboot中配置为文件模式,url为jdbc:hsqldb:file:d:/temp/mydb
问题3:HSQLDB遇到数据库锁的问题
报错: java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@3ad4f283[file =D:\Temp\mydb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2025-03-03 07:32:10 heartbeat - read: -5476 ms.
HSQLDB的几种模式:内存模式、文件模式、Web服务器模式和HSQL服务器模式。内存模式和文件模式不需要独立服务器,而Web和HSQL服务器模式需要。
把单独启动的服务器关掉
相关文章:
springboot3.x下集成hsqldb数据库
springboot3.x下集成hsqldb数据库 本文使用目前最新的sringboot3.4.3 和HyperSQL 2.7.4演示 HSQLDB数据库简介 HSQLDB(HyperSQL DataBase)是一个开放源代码的JAVA数据库。 可以透过 jdbc driver 来存取, 支持 ANSI-92 标准的 SQL 语法, 而且他占的空…...
网络流算法: Edmonds-Karp算法
图论相关帖子 基本概念图的表示: 邻接矩阵和邻接表图的遍历: 深度优先与广度优先拓扑排序图的最短路径:Dijkstra算法和Bellman-Ford算法最小生成树二分图多源最短路径强连通分量欧拉回路和汉密尔顿回路网络流算法: Edmonds-Karp算法网络流算法: Dinic算法 环境要求 本文所用…...
ArcGIS Pro可见性分析:精通地形视线与视域分析
在地理信息系统(GIS)的广泛应用中,可见性分析作为一项关键技术,发挥着不可替代的作用。 无论是城市规划、环境监测,还是军事侦察、景观设计,可见性分析都能提供精确的数据支持,帮助我们更好地理…...
jenkens使用笔记
jenkens使用笔记 笔记使用版本是2.492.1 git仓库ssh证书配置 已开始配置一直不行,然后下载插件,多次重启等一些列操作, 后来配置就可以工作了,原因不祥,不知道哪个配置起效了。 等回来闹明白了,再补充笔记…...
解决跨域请求的问题(CORS)
目录 解决跨域请求问题的方法 1. 服务器端配置响应头 2. JSONP(JSON with Padding) 3. 代理服务器 场景示例 前端代码(使用 Fetch API) 后端代码(使用 Node.js Express 并设置 CORS 响应头) 跨域资…...
未来经济范式争夺战:AR眼镜为何成为下一代交互终端的制高点?
未来经济范式争夺战:AR眼镜为何成为下一代交互终端的制高点? 在蒸汽机轰鸣的工业革命时代,煤炭、铁路、电报构建了第一个现代经济范式;互联网时代,电力、光纤、物流网络重构了全球经济版图。当前,我们正站…...
CentOS 7 安装Nginx-1.26.3
无论安装啥工具、首先认准了就是官网。Nginx Nginx官网下载安装包 Windows下载: http://nginx.org/download/nginx-1.26.3.zipLinxu下载 wget http://nginx.org/download/nginx-1.26.3.tar.gzLinux安装Nginx-1.26.3 安装之前先安装Nginx依赖包、自行选择 yum -y i…...
基于opencv消除图片马赛克
以下是一个基于Python的图片马赛克消除函数实现,结合了图像处理和深度学习方法。由于马赛克消除涉及复杂的图像重建任务,建议根据实际需求选择合适的方法: import cv2 import numpy as np from PIL import Imagedef remove_mosaic(image_pat…...
MongoDB Compass中MONGOSH常用查询整理
MongoDB Compass中MONGOSH常用查询整理 选择数据库基本的查找指令find() 方法findOne() 方法 高级查询条件比较操作符逻辑操作符投影操作排序操作限制和跳过操作limit() 方法skip() 方法 正则表达式查询数组查询 MongoDB Compass 是一款可视化的 MongoDB 数据库管理工具&#x…...
SSM笔记
一、获取对象 Scop 单例在容器启动时就直接创建,如果不希望这样,那就使用Lazy懒加载,只能在单例模式下 3、4不常用 FactoryBean创建 对象 创建对象比较复杂时,可以实现创建一个类实现FactoryBean,实现3个方法来创建…...
5G学习笔记之BWP
我们只会经历一种人生,我们选择的人生。 参考:《5G NR标准》、《5G无线系统指南:如微见著,赋能数字化时代》 目录 1. 概述2. BWP频域位置3. 初始与专用BWP4. 默认BWP5. 切换BWP 1. 概述 在LTE的设计中,默认所有终端均能处理最大2…...
MongoDB Chunks核心概念与机制
1. 基础定义 Chunk(块):MongoDB分片集群中数据的逻辑存储单元,由一组连续的片键(Shard Key)范围数据组成,默认大小为64MB(可调整范围为1-1024MB)。数据分…...
el-table 手动选择展示列
需求: 由于表格的列过多,用滚动条进行滚动对比数据不方便,所以提出,手动选择展示列 实现思路: 表格默认展示所有字段,每个字段通过 v-if 属性来进行判断是否显示;点击设置按钮图标(表格右上角࿰…...
Netty笔记3:NIO编程
Netty笔记1:线程模型 Netty笔记2:零拷贝 Netty笔记3:NIO编程 Netty笔记4:Epoll Netty笔记5:Netty开发实例 Netty笔记6:Netty组件 Netty笔记7:ChannelPromise通知处理 Netty笔记8…...
LeetCode Hot 100
1.两数之和 暴力解法:时间/空间复杂度 O(N),O(1) class Solution {public int[] twoSum(int[] nums, int target) {for(int i0;i<nums.length;i){for(int ji1;j<nums.length;j){if(nums[i] nums[j] target){return new int[]{i,j};}}}return new int[0];}…...
Vue.js 学习笔记
文章目录 前言一、Vue.js 基础概念1.1 Vue.js 简介1.2 Vue.js 的特点1.3 Vue.js 基础示例 二、Vue.js 常用指令2.1 双向数据绑定(v-model)2.2 条件渲染(v-if 和 v-show)2.3 列表渲染(v-for)2.4 事件处理&am…...
MySQL表连接详解
MySQL表连接详解 在 MySQL 中,表连接(Join)用于将多个表中的数据组合在一起,基于它们之间的关系进行查询。常见的表连接类型包括内连接、左连接、右连接和全外连接。以下是这些连接类型的详细说明: 1. 内连接&#x…...
【JAVA】ThreadPoolTaskExecutor 线程池学习、后端异步、高并发处理
ThreadPoolTaskExecutor 是 Spring 框架提供的一个线程池实现类,基于 Java 原生的 ThreadPoolExecutor 进行了封装和扩展,支持更灵活的配置,并与 Spring 的依赖注入、生命周期管理等功能无缝集成。它常用于异步任务处理、定时任务调度和高并发…...
PPT 小黑第38套
对应大猫40 幻灯片母板-最后一页-重命名为奇数页 奇偶页-点中标题-形状格式-形状填充-青色 最后一页页码左对齐 更换幻灯片背景:设计-设置背景格式-图片填充 【开始】-段落居中,对齐文本-中部对齐,排列-对齐-底端,-再水平居中…...
安卓开发相机功能
相机功能 安卓中的相机调用功能也经历了很多的方案升级,目前可选的官方方案是CameraX、Camera2、Camera(废弃),还有一些第三方免费或者是付费的相机库。对于大多数开发者,建议使用 CameraX。 CameraX CameraX 是 An…...
宝塔找不到php扩展swoole,服务器编译安装
1. 在php7.4中安装swoole,但找不到这个扩展安装 2. 服务器下载源码解压安装 http://pecl.php.net/package/swoole 下载4.8.0版本 解压到/www/server/php/74/下 3. 发现报错问题; 更新一下依赖 yum update yum -y install gcc gcc-c autoconf libjpe…...
Spring Web MVC
前言 今天来复习 Spring Web MVC 框架。它提供了一套高效、便捷的方式来构建 Web 应用程序。今天,就让我们一同深入 Spring Web MVC,从基础概念到实际应用,好好补补. 一、Spring Web MVC 是什么? 官方定义解读 根据官方描述&…...
蓝桥杯备考:动态规划线性dp之下楼梯问题进阶版
老规矩,按照dp题的顺序 step1 定义状态表达 f[i]表示到第i个台阶的方案数 step2:推导状态方程 step3:初始化 初始化要保证 1.数组不越界 2.推导结果正确 如图这种情况就越界了,我们如果把1到k的值全初始化也不现实,会增加程序的时间复杂度…...
机器视觉开发教程——封装Halcon通用模板匹配工具【含免费教程源码】
目录 引言前期准备Step1 设计可序列化的输入输出集合【不支持多线程】Step2 设计程序框架1、抽象层【IProcess】2、父类【HAlgorithm】3、子类【HFindModelTool】 Step3 设计UI结果展示 引言 通过仿照VisionPro软件二次开发Halcon的模板匹配工具,便于在客户端软件中…...
UDP透传程序
UDP透传程序 本脚本用于在 设备 A 和 设备 B 之间建立 UDP 数据转发桥梁,适用于 A 和 B 设备无法直接通信的情况。 流程: A --> 电脑 (中继) --> B B --> 电脑 (中继) --> A 需要修改参数: B_IP “192.168.1.123” # 设备 B 的…...
【USRP】NVIDIA Sionna:用于 6G 物理层研究的开源库
目录 Sionna:用于 6G 物理层研究的开源库主要特点实现6G研究的民主化支持 5G、6G 等模块化、可扩展、可伸缩快速启动您的研究 好处原生人工智能支持综合研究平台开放生态系统 安装笔记使用 pip 安装基于Docker的安装从源代码安装“你好世界!”探索锡奥纳…...
Spring WebFlux 中 WebSocket 使用 DataBuffer 的注意事项
以下是修改后的完整文档,包含在多个多线程环境中使用 retain() 和 release() 方法的示例,且确保在 finally 块中调用 release(): 在 Spring WebFlux 中,WebSocketMessage 主要用于表示 WebSocket 的消息载体,其中 getP…...
SQL经典常用查询语句
1. 基础查询语句 1.1 查询表中所有数据 在SQL中,查询表中所有数据是最基本的操作之一。通过使用SELECT * FROM table_name;语句,可以获取指定表中的所有记录和列。例如,假设有一个名为employees的表,包含员工的基本信息…...
0005__PyTorch 教程
PyTorch 教程 | 菜鸟教程 离线包:torch-1.13.1cpu-cp39-cp39-win_amd64.whl https://download.pytorch.org/whl/torch_stable.html...
高并发场景下的数据库优化
在高并发系统中,数据库通常是性能瓶颈。面对高并发请求,我们需要采用合适的优化策略,以保证数据库的稳定性和高效性。本文将介绍数据库高并发问题的成因,并结合 Mybatis-Plus,探讨 乐观锁、悲观锁、高并发优化及数据库…...
Linux:同步
目录 一、同步概念 条件变量 二、生产者消费者模型 三、环形队列 一、同步概念 互斥用来解决 访问临界资源 的非原子性,通俗来说,由于互斥锁的实现,保证了在用户角度看,同一个时间内访问临界资源的代码只有一个线程在执行。 而…...
GB28181开发--ZLMediaKit+WVP+Jessibuca
一、核心组件功能 1、ZLMediaKit 定位:基于 C++11 的高性能流媒体服务框架,支持 RTSP/RTMP/HLS/HTTP-FLV 等协议互转,具备低延迟(最低 100ms)、高并发(单机 10W 级连接)特性,适用于商用级流媒体服务器部署。 特性:跨平台(Linux/Windows/ARM 等)、支持 …...
23种设计模式之《备忘录模式(Memento)》在c#中的应用及理解
程序设计中的主要设计模式通常分为三大类,共23种: 1. 创建型模式(Creational Patterns) 单例模式(Singleton):确保一个类只有一个实例,并提供全局访问点。 工厂方法模式࿰…...
Oracle删除重复数据保留其中一条
Oracle删除重复数据保留其中一条 在Oracle数据库中,要删除重复数据并保留其中一条记录,可以使用多种方法。这里介绍两种常见的方法:使用ROWID或使用ROW_NUMBER()窗口函数。 方法1:使用ROWID ROWID是Oracle中用来唯一标识表中每…...
deepseek助力运维和监控自动化
将DeepSeek与Agent、工作流及Agent编排技术结合,可实现IT运维与监控的智能化闭环管理。以下是具体应用框架和场景示例: 一、智能Agent体系设计 多模态感知Agent 日志解析Agent:基于DeepSeek的NLP能力,实时解析系统日志中的语义&a…...
16.1STM32_ADC
STM32_ADC 数字信号分为高/低电平两种状态 模拟信号就是任意的电压值 STM32芯片内就是一整套的数字逻辑电路,来实现我们的程序执行,以及各种各样的外设功能, ADC(模拟-数字转换技术)的功能就是将模拟信号转化为数字…...
神经网络 - 激活函数(Swish函数、GELU函数)
一、Swish 函数 Swish 函数是一种较新的激活函数,由 Ramachandran 等人在 2017 年提出,其数学表达式通常为 其中 σ(x) 是 Sigmoid 函数(Logistic 函数)。 如何理解 Swish 函数 自门控特性 Swish 函数可以看作是对输入 x 进行“…...
VS2015 c++和cmake配置编程
Visual Studio 2015:确保安装了C开发工具,并安装“使用C的桌面开发”工作负载。CMake:可以从 CMake官网 下载并安装,并将其添加到系统环境变量中。vs加载项目启动Visual Studio。选择“继续但无代码”。点击“文件”。选择 “打开…...
如何为 Web 前端开发面试做好准备
大家好!我是 [数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:前端开发 | AI 应…...
深入探索像ChatGPT这样的大语言模型
参考 【必看珍藏】2月6日,安德烈卡帕西最新AI普及课:深入探索像ChatGPT这样的大语言模型|Andrej Karpathy fineweb知乎翻译介绍 fineweb-v1原始连接 fineweb中文翻译版本 Chinese Fineweb Edu数据集 查看网络的内部结果,可以参…...
代码贴——堆(二叉树)数据结构
头文件Heap.h #pragma once #include<bits/stdc.h> typedef int HPDataType;typedef struct Heap {HPDataType* a;int size;int capacity; }HP;void HPInit(HP* php); void HPDestory(HP* php); //出入后保持数据是堆 void HPPush(HP* php,HPDataType x); HPDataType HP…...
office或者word排版中,复制/黏贴进来文字不会自动换行,如何处理?
李升伟 整理 一、思考与分析 在Office或Word中复制粘贴文字时,文字不会自动换行,需要处理这个问题。首先,我得回想一下常见的原因和解决方法。可能的情况有很多,比如文本带有硬回车、段落格式设置问题,或者文本框的自…...
最新!!!DeepSeek开源周发布内容汇总
本周,人工智能领域的新锐力量DeepSeek宣布将于本周举办“开源周”(Open Source Week),连续五天每日开源一个核心代码库,以透明的方式与全球开发者分享其在通用人工智能(AGI)探索中的最新成果。以…...
【MySQL】(2) 库的操作
SQL 关键字,大小写不敏感。 一、查询数据库 show databases; 注意加分号,才算一句结束。 二、创建数据库 {} 表示必选项,[] 表示可选项,| 表示任选其一。 示例:建议加上 if not exists 选项。 三、字符集编码和排序…...
记一次渗透测试实战:SQL注入漏洞的挖掘与利用
0x01 漏洞发现 在对某网站进行安全测试时,发现以下URL存在异常: https://******.com/search.php?keyword1&zt1954&dw1885&zz& 当参数keyword和zt被赋值为-1时页面返回特殊内容,初步判断存在SQL注入漏洞。 0x02 注入验证…...
Gin框架从入门到实战:核心用法与最佳实践
为什么选择Gin框架? Gin 是一个基于 Go 语言的高性能 Web 框架,具备以下优势: 轻量高效:底层依赖 net/http,性能接近原生。简洁优雅:API 设计友好,支持路由分组、中间件链、参数绑定等特性。生…...
PyTorch 的 nn.NLLLoss:负对数似然损失全解析
PyTorch 的 nn.NLLLoss:负对数似然损失全解析 在 PyTorch 的损失函数家族中,nn.NLLLoss(Negative Log Likelihood Loss,负对数似然损失)是一个不太起眼但非常重要的成员。它经常跟 LogSoftmax 搭配出现,尤…...
ROS2软件调用架构和机制解析:Publisher创建
术语 DDS (Data Distribution Service): 用于实时系统的数据分发服务标准,是ROS 2底层通信的基础RMW (ROS Middleware): ROS中间件接口,提供与具体DDS实现无关的抽象APIQoS (Quality of Service): 服务质量策略,控制通信的可靠性、历史记录、…...
vue2 以及vue3中 v-if和v-for是否可以同时使用
vue2以及vue3官方文档中都明确的指出 避免 v-if 和 v-for 用在一起 vue2 官方文档 解释 在 Vue 2 中,v-for 的优先级高于 v-if,也就是说,Vue 2 在渲染时,会先处理 v-for 生成列表项,再对子项判断 v-if 是否渲染。 …...
Hbase伪分布安装教程,详细版
注意Hbase版本与Hadoop版本的兼容,还有与JDK版本的兼容 本次用到的Hbase为2.4.6版本,Hadoop为3.1.3版本,JDK为JDK8 打开下面的网址查看兼容问题 Apache HBase Reference Guidehttps://hbase.apache.org/book.html#configuration 点击基础先…...