使用hsqldb将常用数据库整合到应用程序中

HSQLDB数据库整理 一、简介 HSQLDB(HyperSQL Database)是一个轻量级的纯Java开发的开放源代码的关系型数据库,其体积小,占用空间小,使用简单,支持内存运行方式等特点。 hsqldb-2.3.4下载地址:http://download.youkuaiyun.com/detail/fanxiaobin577328725/9564835 HSQLDB官网:http://www.hsqldb.org/ ... 阅读详情
使用hsqldb将常用数据库整合到应用程序中
 
提到过一些常用数据库,可以视作固定编码的数据库。对于这些书库,通常只进行查询使用。
 
因此针对一些比如用户希望只传入ip地址就要查询到用户信息,或者只传入行政区划编号,
就可以得到行政区划名字等等需求。而且用户不希望去配置数据库信息等等,
Access文件虽然比较方便,却不具有跨平台的效果,因此可以借助开源免费的hsql来进行在应用小型数据库的嵌入。
尤其是在1.7.2版本加入了新的特性,可以支持在jar里直接以只读方式访问数据库。
因此,把封装好的class和数据文件一并打包,可以非常方便的给别人使用。
 
以下是操作过程,
首先下载hsql,最新的稳定版本是1.7.3.3:
 
下载ip数据库:
 
然后利用自带工具将其数据解压导出为文本文件
,用Editplus打开,替换掉  CZ88.NET,以减少文件占用空间,(使用正则表达式进行替换,将数据规整。
用xmlspy进行转换成xml再导入access,(这一步完全可以省略掉)),然后直接用access导入这195074条记录。
 
然后是从Access里导入数据
比如我的常用数据有ip地址信息表,行政区划和省份信表:
 //创建表
    connto.createStatement().execute("CREATE TABLE PROVINCE(PDOMAIN VARCHAR(3),PLABEL VARCHAR(50),PNAME VARCHAR(6),PNO VARCHAR(3),PSHORTNAME VARCHAR(2))");
    connto.createStatement().execute(
        "CREATE TABLE XZQH(NAME VARCHAR(30),CODE VARCHAR(6),O_CODE VARCHAR(8))");
    connto.createStatement().execute(
        "CREATE TABLE IPINFO(IPS BIGINT,IPE BIGINT,AREA VARCHAR(60))");
    ResultSet rs = stmtin.executeQuery("SELECT * FROM province");
 
 
PreparedStatement pstmt = connto.prepareStatement(
        "insert into province (pdomain,plabel,pname,pno,pshortname) values(?,?,?,?,?)");
 
导入完成之后,将数据文件添加到jar文件中,再封装好常用方法。
就可以了,以后的数据维护也非常简单,只要不修改表结果,只需要把数据文件更新即可,不需要修改任何代码。
 
调用方法示例 :
先引入这个jar文件,然后使用下面的方法调用,
String area=com.lizongbo.database.SearchUtil.findAreabyIp("192.168.9.1");
 
使用者不需要关心任何其它的东西,一行代码就得到想要的结果了。
 
 
不过需要注意的是,使用了ip数据库之后,因为ip数据库记录量很大,生成的scrpit文件比较大,我的文件有22M,
打包压缩后的jar,也有 3M大小,初始化数据库的时候会非常缓慢。
综合考虑, 牺牲空间和一部分内存来换取应用程序的可复用和跨平台以及数据记录可维护性,还是比较值得的。
 
抓图:  
 
 
参考:
 
http://hsqldb.sourceforge.net
 
 
 
 
Java开发避坑指南:UCanAccess连接Access数据库时如何解决HSQLDB 2.7.1权限问题 本文深入解析Java开发中使用UCanAccess连接Access数据库时遇到的HSQLDB 2.7.1权限问题,提供多种解决方案,包括JVM参数配置、运行时SystemProperty设置和自定义JackcessOpener实现。文章还包含完整实战示例和性能优化建议,帮助开发者高效解决权限错误并提升数据库操作效率。 阅读详情

相关推荐

JavaWeb项目实战:如何用HSQLDB替代MySQL完成课程设计(含JDBC配置避坑指南)

本文详细介绍了在JavaWeb课程设计中使用HSQLDB替代MySQL的完整实战方案。针对学生常见的数据库环境配置难题,文章提供了从HSQLDB核心特性、三种运行模式选择,到环境搭建、JDBC配置、项目集成及常见避坑指南的全流程解析,重点解决了ClassNotFoundException等集成问题,并附有学生选课系统实战案例。

weixin_29292431的博客 202

Access、SQLite、HSQLDB、Sybase、MySQL、DB4O比较

本文转自:http://blog.sina.com.cn/s/blog_465bc6c90100eums.html   一、Access    数据类型有些另类,而且密码太容易被攻破,性能不高,只能用在Windows程序上。    一般说来,单个表不超过10万少条记录为好,整个数据库不超过100M为好。ACCESS对数据库容量限制为2G,但超过100M后性能便 会有很大折扣。二、HSQLD...

windshg的专栏 534

Ardupilot环境搭建

Ardpilot介绍:ArduPilot通过多种传感器的数据(GPS、加速度计、气压计、磁场计)等来估计飞行器的姿态,从而使飞行器能够保持稳定。

weixin_62387234的博客 2639

Access、SQLite、HSQLDB、Sybase、MySQL、DB4O

一、Access 数据类型有些另类,而且密码太容易被攻破,性能不高,只能用在Windows程序上。 一般说来,单个表不超过10万少条记录为好,整个数据库不超过100M为好。ACCESS对数据库容量限制为2G,但超过100M后性能便 会有很大折扣。 二、HSQLDB 支持csv,配置分发容易,大数据量情况下性能不佳,这和sql执行效率无关,性能瓶颈在硬盘文件上,...

iteye_4533的博客 214

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现

电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。......

配电网和matlab的博客 1万+

【Codex Sandbox 与审批机制:小白也能看懂的实用教程】

这篇教程介绍了Codex工具中的沙盒(Sandbox)和审批(Approvals)机制,帮助用户安全高效地使用Codex协作。沙盒限制Codex访问范围,审批机制则控制敏感操作权限。文章详细讲解了五种常见模式:最安全的安全只读浏览、只读非交互、仓库内编辑、Auto预设和不推荐的YOLO模式。还提供了新手使用路径建议、配置示例和实战场景范式,包括如何测试沙盒行为、不同系统下的实现方式以及常见问题解答。最后附上速查清单,帮助用户快速选择合适的权限组合。

zsr154278963的博客 6714

Spring 中使用 HSQLDB

一、在Spring中配置HSQLDB 在spring的配置文件spring.xml中添加xmlns:jdbc, 申明hsqldb数据源创建hsqldb数据库,使用jdbc:initialize-database指明初始化数据库的sql脚本。 spring.xml <beans xmlns="http://www.springframework.org/schema/beans" x

wanghy1979的专栏 2651

Chatbox使用指南

Chatbox使用指南

weixin_65289420的博客 2万+

数据库 合并 java,使用hsqldb将常用数据库整合到应用程序中-JSP教程,Java技巧及代码...

使用hsqldb将常用数据库整合到应用程序中在 http://blog.youkuaiyun.com/lizongbo/archive/2005/02/13/286697.aspx提到过一些常用数据库,可以视作固定编码的数据库。对于这些书库,通常只进行查询使用。因此针对一些比如用户希望只传入ip地址就要查询到用户信息,或者只传入行政区划编号,就可以得到行政区划名字等等需求。而且用户不希望去配置数据库信息...

weixin_31899235的博客 187

Xilinx XDMA驱动代码分析及用法

Xilinx XDMA驱动代码分析及用法 先简单的介绍一下,赛灵思的XDMA的驱动是用于做什么的、他的主要功能就类似与网卡pcie接口的网卡驱动、用于控制主机与fpga设备进行pcie的通讯。通讯的主要方式是设备文件的读写,这里不清楚的同学可以看一下我上一篇文章。通过控制设备文件的读写,操作驱动与fpga设备进行数据传输。 1、目录结构 zacha@Superman:~/nfs/xdma-debug/dma_ip_drivers-master/XDMA/linux-kernel$ tree -C . ├──

恍恍惚惚的大穷猫的博客 3万+

集成电路模拟版图入门-版图基础学习笔记(四)

第三部分:版图的准备 2. 设计规则 3) Design Rule 2. 设计规则 4) 规则定义 4.1 NW(N WELL) 2. 设计规则 4) 规则定义 4.1 NW(N WELL) 2. 设计规则 4) 规则定义 4.2 PO(Poly) 2. 设计规则 4) 规则定义 4.3 M1(Metal1) 2. 设计规则 4) 规则定义 4.4 VIA 3. DRC文件 3.1 DRC:Design Rule Check,设计规则检查。 3.2 DRC程序了解有关

weixin_52955333的博客 6737

spring hsqldb_在Spring中嵌入HSQLDB服务器实例

spring hsqldb 我一直在愉快地使用XAMPP进行开发,直到不得不将其托管在可通过Internet访问的某个地方,供客户端进行测试和使用。 我有一个仅具有384 RAM的VPS,并且需要快速找到方法,因此决定将XAMPP安装到VPS中。 由于内存较低,因此当MySQL运行时,即使初始Java堆大小设置为64m,Tomcat也无法启动。 在移至OpenShift之前,我设法将网站临时托...

最佳 Java 编程 345

TI DSP从COFF切换到EABI输出格式的5个关键修改点(TMS320F280025实测)

本文基于TMS320F280025实测,详细解析了TI DSP从COFF切换到EABI输出格式的5个关键修改点。核心差异在于EABI遵循ELF标准,涉及链接器优化、RAM数据共享、工具链升级、double数据类型位宽变化及链接器命令文件重构。迁移时需使用.retain指令防止关键数据被优化,利用NOINIT段保护共享RAM,并更新hex2000等工具,以确保BootLoader与应用程序稳定运行。

weixin_29189381的博客 266

hsqldb数据库_Eclipse和HSQLDB,将关系数据库服务器嵌入Eclipse,第1部分

存档日期:2017年1月4日 | 首次发布:2003年9月30日 本文展示了如何开发一个将HSQLDB纯Java关系数据库服务器嵌入到Eclipse Workbench中的插件。 HSQLDB(超音速SQL数据库)虽然不如DB2强大,也不如MySQL流行,但由于其可扩展性和对内存/处理器的低要求,它可以满足各种Java应用程序的需求。 此内容不再被更新或维护。 全文以PDF格式“按原样...

cusi77914的博客 177

嵌入式NuttX RTOS面试题及参考答案

NuttX 的板级支持包(BSP)是一组软件组件,用于将 NuttX 操作系统适配到特定的硬件平台上。BSP 提供了硬件抽象层,使得 NuttX 能够与硬件进行交互,包括初始化硬件设备、提供设备驱动程序等。BSP 的主要作用是隐藏硬件细节,为上层应用程序和操作系统内核提供统一的接口,从而提高软件的可移植性和可维护性。开发 NuttX 的 BSP 通常需要以下步骤:硬件分析:首先需要对目标硬件平台进行详细的分析,了解硬件的架构、处理器类型、外设接口等信息。

大模型大数据攻城狮的专栏 1306

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

HSQLDB的In-Process

刚好有个小应用要嵌个小型的数据库, 查了下资料, 打算试试HSQLDB. 一上官网, 好东西, 新版2.0, 就试这个了. 既然是要嵌到应用里的, 当然要去查一下整合的方式, 查了好一会, 查到个用Servlet启动DB Server的方法, 看了下, 有点麻烦, 也不太想启动个DB Server, 看Jboss好像也没这么干... 然后干脆直接看官方文档(http://hsqldb.org...

goingchan的专栏 276

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

hsqldb - 100% Java Database

一、简介: hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议。 相对其他数据库来说,其体积小,才3276605bytes。 仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。 最新版本是hsqldb_1_8_0_7 ,下载地址:http://hsqldb.org/ 二、使用hsql数据库: 1、hsql...

about:blank 138

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HSQLDB介绍

一、简介:  hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议。  相对其他数据库来说,其体积小,才563kb。  仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。  下载地址:http://hsqldb.org/  二、使用hsql数据库:  1、hsql数据库引擎有几种服务器模式:常用的Server模式、Web

TechChan的专栏 1481

HSQLDB学习心得(1)-关于SERVER模式下多个数据库的启动问题与数据库连接

SERVER模式下的数据库启动问题:启动数据库: java -cp hsqldb.jar org.hsqldb.Server -database.0 mydb -dbname.0 xdb ...明天继续.. 

向北航行 740

SpringBoot整合H2数据库

H2是一个Java语言编写的嵌入式数据库,它不受平台的限制,同时H2提供了一个十分方便的web控制台,用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,也可以为缓存数据库使用,它具有比较完备的数据库特性,如支client/server连接,能够支持标准的SQL语句,支持存储过程等。因此采用H2作为开发期、测试期和演示的数据库非常方便,它不太适合作为大规模生产数据库。

白豆五的博客 1万+

H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档)

由于国内H2嵌入式数据库并不是主流数据库,因此相关生态资源文件都比较少,并且很多都是断断续续的,针对此类问题笔者特意去官网整理相关配置文件及说明并进行梳理,方便大家开发时使用。 H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档)

轨迹的博客 1万+

Java 小型数据库漫谈

开发学习过程中使用的java小型数据库总结:Derby HSQL H2Database BerkeleyDB-java-edition

New World 5082

SpringBoot整合H2数据库并将其打包成jar包、转换成exe文件

H2 是一个用 Java 开发的嵌入式数据库,它的主要特性使其成为嵌入式应用程序的理想选择。H2 仅是一个类库,可以直接嵌入到应用项目中,而无需独立安装客户端和服务器端。

snow_original的博客 1144

flyway整合SpringBoot实战详细教程

1、简介 Flyway 是一个开源的数据库迁移工具。它强烈支持简单性和约定而不是配置。迁移可以用SQL (支持特定于数据库的语法(例如 PL/SQL、T-SQL 等))或Java (用于高级数据转换或处理 LOB)编写。 它有一个命令行客户端。如果您使用的是 JVM,我们建议您使用Java API(也适用于 Android)在应用程序启动时迁移数据库。或者,您也可以使用Maven 插件 或Gradle 插件。 如果这还不够,还有 适用于 Spring Boot、Dropwizard、Grails、Play.

冒险的梦想家的博客~ 4321

flyway迁移hsqldb到mysql_Flyway-数据库迁移工具

一.什么是Flyway?Flayway是一款数据库版本控制管理工具,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里;不仅支持Command Line和java api ,也支持Build构建工具和Spring boot,也可以在分布式环境下能够安全可靠安全地升级数据库,同时也支持失败恢复。Flyway最核心的就是用于记录所有版本演化和状态的MetaData...

weixin_39671509的博客 229
上一篇: web应用程序启动时启动HSQLDB
下一篇: JpetStore5.0代码分析及系统架构初探
SunnyJavaMoon
博客等级 码龄21年 20粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值