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中文网,转载请注明出处,感谢您的尊重!

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • read函数原理「建议收藏」

    read函数原理「建议收藏」文章出处 http://blog.csdn.net/lwj103862095/article/details/38518069原始出处 http://blog.csdn.net/unbutun/article/details/6101354#ibm-pconRead系统调用在用户空间中的处理过程Linux系统调用(SCI,systemcallinterface)的

  • android listview 滑动卡顿问题解决

    android listview 滑动卡顿问题解决之前在使用listview进行每次通知一来,根据判断是否有这个标志,就更新listview所绑定的数据源,通知更新priceAd.notifyDataSetChanged();,也用了网上的建议使用viewHolder进行listview的item复用机制,但还是会出现卡顿的现象,经过分析,原来是listview的item布局嵌套太多,导致刷新的时候,重绘过多,造成卡顿的现象,以下是另一片博客的分

  • 照片生成STL浮雕文件视频演示,图片转灰度图,灰度图转STL浮雕图

    照片生成STL浮雕文件视频演示,图片转灰度图,灰度图转STL浮雕图图片转成STL浮雕图视频教程,照片转成灰度图转STL文件操作演示把彩色照片转成STL浮雕图视频教程,照片转成灰度图操作演示,把手机拍的照片转成浮雕图效果示例,照片转成灰度图效果示例,彩色照片转成浮雕图视频讲解演示。知识就是财富,照片生成浮雕图不用求人转图了,自己想动手转图的乐趣。更多搜索词:一个灰度图图片怎么转化为stl文件?彩色的图片如何转成STL浮雕图?日常照片转化成STL浮雕图,机雕,木雕等的STL文件?关于图片格式转换的图片转灰度图,灰度图转浮雕图本文视频

  • jupyter notebook的安装与使用

    jupyter notebook的安装与使用最近由于项目需要,开始学习python,然后发现一个非常有用的python交互式编辑器,非常容易上手而且非常有用和实在,本博文是对学习jupyternotebook的一个汇总和记录,与大家一起分享!下面的内容是针对ubuntu系统的,当然,jupyternotebook在windows也是支持的。

  • cfDNA是什么_cfDNA血清

    cfDNA是什么_cfDNA血清定义CirculatingfreeDNAorCellfreeDNA(cfDNA):循环游离DNA或者细胞游离DNA,释放到血浆中的降解的DNA片段。https://en.wikipe

  • listview排序功能_vba listview 控件

    listview排序功能_vba listview 控件usingSystem.Collections; privatevoidlistView2_ColumnClick(objectsender,ColumnClickEventArgse)//排序{   this.listView2.ListView

发表回复

您的电子邮箱地址不会被公开。

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