内存数据库 HSQLDB

2024-04-01 21:58
文章标签 内存 数据库 hsqldb

本文主要是介绍内存数据库 HSQLDB,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

应用

    在JUnit单元测试中,由于,很多时候没有真实数据库环境,所以,我们很自然的会借助内存数据库HSQLDB。内存数据库非常轻量级,当内存数据库关闭后,内存中的数据也随之消失。代码虽然简单,但还是贴出来,呵呵,供以后复制粘贴方便。


jdbcDriver in pom.xml of Maven:

		<dependency><groupId>org.hsqldb</groupId><artifactId>hsqldb</artifactId><version>2.3.2</version></dependency>


package shuai.study.memorydb;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class MemoryDB {private static Connection connection = null;private static Statement statement = null;private static PreparedStatement preparedStatement = null;private static ResultSet resultSet = null;// Load jdbcDriverstatic {try {Class.forName("org.hsqldb.jdbcDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}}// Get DB connectionpublic static Connection getConnection() {if (connection == null) {try {connection = DriverManager.getConnection("jdbc:hsqldb:mem:mdb", "shuai", "123");} catch (SQLException e) {e.printStackTrace();}}return connection;}// Get DB statementpublic static Statement getStatement() {if (connection == null) {getConnection();}if (statement == null) {try {statement = connection.createStatement();} catch (SQLException e) {e.printStackTrace();}}return statement;}// Execute SQLpublic static void executeSQL(String sql) {if (statement == null) {getStatement();}try {statement.executeUpdate(sql);} catch (SQLException e) {e.printStackTrace();}}// Get resultSetpublic static ResultSet executeQuerySQL(String sql) {if (connection == null) {getConnection();}try {preparedStatement = connection.prepareStatement(sql);resultSet = preparedStatement.executeQuery();} catch (SQLException e) {e.printStackTrace();}return resultSet;}// Print resultSetpublic static void resultPrint(ResultSet resultSet) {try {int columnCount = resultSet.getMetaData().getColumnCount();String columnValue = null;while (resultSet.next()) {for (int n = 1; n <= columnCount; n++) {columnValue = resultSet.getString(n);if (n == columnCount) {System.out.println(columnValue);} else {System.out.print(columnValue + "\t");}}}} catch (SQLException e) {e.printStackTrace();}}// Close DBpublic static void closeDB() {try {if (resultSet != null) {resultSet.close();}if (preparedStatement != null) {preparedStatement.close();}if (statement != null) {statement.close();}if (connection != null) {connection.close();}} catch (SQLException e) {e.printStackTrace();}}public static void main(String[] args) {MemoryDB.executeSQL("CREATE TABLE EMPLOYEE(ID INTEGER, NAME VARCHAR(20), SEX VARCHAR(10), TEAM VARCHAR(20))");MemoryDB.executeSQL("INSERT INTO EMPLOYEE VALUES(1,'shuai', 'male', 'FMC')");MemoryDB.executeSQL("INSERT INTO EMPLOYEE VALUES(2,'hellen', 'female', 'MUS')");MemoryDB.executeSQL("INSERT INTO EMPLOYEE VALUES(3,'mery', 'female', 'SDM')");MemoryDB.executeSQL("COMMIT");ResultSet resultSet = MemoryDB.executeQuerySQL("SELECT * FROM EMPLOYEE");MemoryDB.resultPrint(resultSet);MemoryDB.closeDB();}
}


这篇关于内存数据库 HSQLDB的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/868239

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(