HS数据库_hsqldb

HS数据库_hsqldb前言在对dao层写测试类的时候,我们需要一个测试数据库,一般我们会是专门建立一个真实的测试数据库,但是有了HSQLDB事情就变得简单了起来。正题一、简介:hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,前言在对dao层写测试类的时候,我们需要一个测试数据库,一般我们会是专门建立一个真实的测试数据库,但是有了HSQLDB事情就变…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言 在对dao层写测试类的时候,我们需要一个测试数据库,一般我们会是专门建立一个真实的测试数据库,但是有了HSQLDB事情就变得简单了起来。 正题 一、简介: hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,

前言 在对dao层写测试类的时候,我们需要一个测试数据库,一般我们会是专门建立一个真实的测试数据库,但是有了HSQLDB事情就变得简单了起来。

正题 一、简介: hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,不妨考虑一下使用它,相对其他数据库来说,其体积小,才563kb。仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容。在Java开源世界里,hsql是极为受欢迎的(就Java本身来说),JBoss应用程序服务器默认也提供了这个数据库引擎。由于其体积小的原因,又是纯Java设计,又支持SQL99,SQL2003大部分的标准,所以也是作为商业应用程序展示的一种选择。

二、优点

1.轻巧,只有600多K,运行速度非常快。结合Hibernate数据库无关的特性,非常适合在项目开发的时候使用。

2.作为单元测试数据库。单元测试的时候,启动HSQLDB的file模式,数据不存盘,可以保证测试原子性。

3.来回复制,随身携带。

4.不需要安装,使用非常方便。

5.稳定,而且支持的数据量足够大。

6.小型项目作为现场数据库使用,不需要安装Oracle之类的大型DB,减轻了维护成本,并且,HSQLDB非常容易备份。

三、局限性

1.HSQLDB并不是一个正式的数据库产品,如果用来做为商业应用数据库或者说开发时的数据库,不太妥当。这点在HSQLDB的官方文档里也提到了。

2.作为测试数据库来讲,由于HSQLDB支持标准SQL, 所以一般情况没问题,但是对于某个数据(如MySql)的特殊语法则不兼容,容易报错。

四、作为测试数据库的使用 作为测试数据库的话,主要用于测试与数据有交互的类,即我们平时所讲的dao层。 HSQLDB使用很简单,只需要从官网下载最新版本的zip包然后解压放到lib目录下即可(当然maven项目需要添加到pom.xml中进行引用),然后需要一个配置文件 两个sql文件和一个测试类即可。

测试类:

package com.demandforce.dao;

import java.util.Collection;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Qualifier;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import org.springframework.util.Assert;

import com.demandforce.model.TextMessageTemplate;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = {“classpath:context/hyperSqlContext.xml”})

public class TextMessageTemplateRetrievalTest {

@Autowired

private TextMessageTemplateDao textMessageTemplateDao;

@Test

public void testSelectByBusinessCategory() {

Collectiontmts = textMessageTemplateDao.selectByBusinessCategory( 203, 0);

Assert.notNull(tmts);

Assert.isTrue(tmts.size() == 2);

}

}

hyperSqlContext.xml

setup.sql

— MySQL compatibility mode for Hyper SQL

SET DATABASE SQL SYNTAX MYS TRUE;

schema-create.sql

DROP TABLE IF EXISTS TextMessageTemplate;

CREATE TABLE TextMessageTemplate (

ID INT NOT NULL AUTO_INCREMENT,

BusinessID INT NOT NULL,

Type INT NOT NULL,

Template varchar(1000),

CreatedDate datetime DEFAULT NULL,

LastModifiedDate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

CreatedUserId INT DEFAULT 0,

LastModifiedUserId INT DEFAULT 0,

Delivery INT DEFAULT 0,

DeliveryWindow INT DEFAULT 1,

BusinessCalendar INT NOT NULL DEFAULT 0,

DeliveryTime datetime DEFAULT NULL,

CardCount INT DEFAULT 0,

Segment INT DEFAULT 0,

FrontImage varchar(255) DEFAULT NULL,

IncludeItems INT DEFAULT 1,

IncludeReview INT DEFAULT 1,

IncludeCoupon INT DEFAULT 1,

services varchar(5000) DEFAULT NULL,

Industry INT DEFAULT NULL,

PRIMARY KEY (ID)

);

data-insert.sql

INSERT INTO TextMessageTemplate (BusinessID, Type, Template, Industry)

VALUES (‘0’, ‘203’, ‘Template1’, null);

INSERT INTO TextMessageTemplate (BusinessID, Type, Template, Industry)

VALUES (‘0’, ‘204’, ‘Template2’, null);

小结: 虽然HSQLDB有一定的局限性,但是还是不得不说在某些情况下它是一个不错的测试数据库的选择。

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190585.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • knn算法实现手写数字识别的背景_knn手写数字识别60000训练集

    knn算法实现手写数字识别的背景_knn手写数字识别60000训练集KNN最邻近分类算法:(近邻取样)邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是机器学习分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。属于监督学习,有类别标记,且KNN是惰性学习。叫做Memory-basedlearning、也叫instance-basedlearning.他…

    2025年11月13日
    5
  • 如何创建springboot项目[通俗易懂]

    如何创建springboot项目[通俗易懂]前言本片博客记录快速创建springboot工程的两种方式。一种是使用maven创建,一种是使用springinitializr创建。开发环境JDK1.8、IDEA、maven。SpringBoot优点可快速构建spring应用直接嵌入tomcat、jetty、undenrtow服务器(无须部署war文件)提供依赖启动器(starter)简化构建配置极大程度的自动化配置Spring和第三方库提供生产就绪功能,例如指标监控检测、外部检测极少代码生成和XML配置使用maven创建Spr

    2022年8月31日
    2
  • docker网络配置方法总结

    docker网络配置方法总结

    2022年2月5日
    55
  • mybatis调用oracle视图

    mybatis调用oracle视图多数据源切换调用 oralce 里的某个视图 后台报错 表或视图不存在 select fromtable 最后在 select 语句中加上前缀即可 select fromzzzz table

    2025年12月13日
    4
  • 根据IP定位用户所在城市信息

    根据IP定位用户所在城市信息

    2021年10月23日
    136
  • exchange smtp端口_imap服务器怎么设置

    exchange smtp端口_imap服务器怎么设置怎么样配置smtp服务器设置,smtp服务器是邮件外发服务器,通常用作邮件的对外投递工作。那门Exchagne的smtp服务应该怎样去配置呢?本文为你分享。安装smtp服务从“开始”菜单,单击“控制面板。双击“添加或删除程序”。从左侧窗格,单击“添加/删除Windows组件”。从“组件”列表中,单击“应用程序服务器”,然后单击“详细信息”。从“应用程序服务器的子组件”列表中,单击“Intern…

    2022年10月3日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号