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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 中国电信天翼光猫改桥接模式密码_电信光猫路由模式

    中国电信天翼光猫改桥接模式密码_电信光猫路由模式使用默认超级管理员账号密码进去telecomadminnE7jA%5m然后在网络设置里改再把路由器使用宽带拨号上网就OK了

    2022年10月8日
    4
  • 百度地图api文档_奥维互动地图使用教程

    百度地图api文档_奥维互动地图使用教程新版百度地图API增加了发布版SHA1,开发版SHA1按官方教程操作即可,这里介绍一下发布版SHA1的获取方法。为apk签名,生成keystore文件(如果已经有keystore文件,跳过此步骤)打开cmd,定位文件夹到.andorid下,默认路径是users/用户名/.android输入keytool-list-v-keystore*.jks,*.jks为keystor

    2022年8月11日
    22
  • 很全的zencart 模板修改

    很全的zencart 模板修改zencart目录结构及模板修改1、zen-cart模板规则1.1/include/目录底下文件夹存放规则及其作用language常数定义;modules具体页修改这个文件夹底下是放模板的这面是默认模板目录,所有在自定义模板找不到自己所要安装的模板的文件都可以在这里找到1.2文件夹底下文件的规则及其作用板文件夹底下一般有如下的文…

    2022年7月27日
    4
  • 定制SwipeRefreshLayout

    定制SwipeRefreshLayoutSwipeRefreshLayout大家都用过,google推出的,亲生儿子,兼容性自然最好!可是SwipeRefreshLayout只支持下拉刷新,没有上拉加载更多,这样是没办法满足我们的需要的,所以本文就对它进行一下定制,加上下拉刷新。首先贴用法:xml:

    2022年6月25日
    32
  • spin_lock & mutex_lock的差别?

    spin_lock & mutex_lock的差别?

    2021年11月13日
    55
  • 大话信号与系统 — 奇文共欣赏[通俗易懂]

    大话信号与系统 — 奇文共欣赏[通俗易懂]大话信号与系统前言:大家都知道《信号与系统》是一门很难的课,很多人虽然学过了,但其实什么也没得到,今天给大家推荐这篇文章,看了之后,相信你会有收获。第一课什么是卷积?卷积有什么用?很多朋友和我一样,工科电子类专业,学了一堆信号方面的课,什么都没学懂,背了公式考了试,然后毕业了。先说”卷积有什么用”这个问题。(有人抢答,”卷积”是为了学习”信号与系…

    2022年8月11日
    9

发表回复

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

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