H2
数据库,是Java实现的内存数据库。可使用它作为嵌入式内存数据库,但就其特性还用更多值得应用在实际项目中的意义。之前的一篇Blog中已经描述过其使用方法及丰富的连接数据库方式。
官方主页:http://www.h2database.com/
此段文字只说明用户如何自定义数据库函数,以及在数据库中注册函数。如对你有帮助可继续阅读
首先来说明用户自定义函数的场景,现在假设我们需要在H2数据库中实现Oracle的“TO_DATE”函数,那么需要的过程是这样的:(1) 使用Java实现自定义函数的方法。(2) 将Java的自定义函数注册到H2数据库中。
(1) 首先我们来实现这个函数:
TO_DATE函数的Code:
/**
*
*/
package com.seraph.bi.suite.support.h2;
import java.text.SimpleDateFormat;
import org.h2.tools.SimpleResultSet;
... ...
/**
* Description: Function for H2 database<br>
* Origin Time: 2009-7-11 上午07:57:46<br>
*
* @author Seraph<br>
* @email:seraph115@gmail.com<br>
*/
public class Function {
/**
* Method: TO_DATE function like Oracle's<br>
* Origin Time: 2009-7-11 上午08:14:11<br>
*
* @author: Seraph<br>
* @param source
* @param format
* @return
* @throws ParseException
*/
public static java.sql.Date to_date(String source, String format) throws ParseException {
// TODO: 'YYYY-MM-DD' ? Oracle format?
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = sdf.parse(source);
return new java.sql.Date(date.getTime());
}
... ...
}
以上代码段是TO_DATE的实现,但用户自定义的函数需注意的是:类和方法必须是公共(Public)的,且方法需为静态(static)的,如方法中使用了Connection对象需将其关闭。
(2) 将其注册到数据库中,须执行语句
CREATE ALIAS
CREATE ALIAS [IF NOT EXISTS] newFunctionAliasName
[DETERMINISTIC]
FOR classAndMethodName
本例须执行的语句为: CREATE ALIAS TO_DATE FOR "com.seraph.bi.suite.support.h2.Function.to_date";
这样再执行类似语句,如:SELECT to_date('2009-1-21','YYYY-MM-DD') from Your_Table 函数TO_DATE即可被解析了。
完成以上的步骤你就可以使用自己定义的数据库函数了。这样将更方便于数据库之间的切换,使用内存数据库应用程序启动轻快,体积小,适合于程序开发时的单元测试及集成测试,同时更适合于去客户方演示。
备注:
1.如使用的是编译类,需添加至jdbc驱动jar包中。
2.如使用的是源码,可直接使用sql语句添加至库中。例:
CREATE ALIAS IP_ADDRESS AS $$
import java.net.*;
@CODE
String ipAddress(String host) throws Exception {
return InetAddress.getByName(host).getHostAddress();
}
$$;
官方说明文档:
User-Defined Functions and Stored Procedures
In addition to the built-in functions, this database supports user-defined Java functions. In this database, Java functions can be used as stored procedures as well. A function must be declared (registered) before it can be used. A function can be defined using source code, or as a reference to a compiled class that is available in the classpath. By default, the function aliases are stored in the current schema.
http://www.h2database.com/html/features.html#user_defined_functions
分享到:
相关推荐
本文档将深入探讨H2Database的聚合函数以及如何进行数据库的修改。 一、H2Database聚合函数 聚合函数在SQL中用于对一组值进行计算,返回单个结果。在H2Database中,常用的聚合函数有以下几种: 1. COUNT():计算...
3. **多种模式**: H2支持多种数据库模式,包括单用户模式、多用户模式(TCP服务器)、内存模式(所有数据都存储在内存中)以及混合模式,这使得它能够适应不同的应用场景。 4. **兼容性**: H2数据库设计时充分考虑...
通过执行这个exe文件,用户可以在Windows操作系统上安装H2数据库客户端和服务器,从而方便地管理和操作H2数据库。 安装完成后,用户通常会得到一个命令行界面工具(h2-console)和可能的图形界面工具,用于连接和...
《H2数据库批量导出详解》 H2数据库是一款开源、高性能、轻量级的Java关系型数据库,广泛应用于测试、开发以及嵌入式环境。它支持多种数据库模式,包括MySQL、Oracle等,并且提供了丰富的命令行工具和API,使得...
6、H2Database聚合函数.doc 7、H2Database连接配置.doc 8、H2Database数据类型.doc 9、H2Database中文教程.doc 10、H2内存数据库h2部署操作手册.docx 11、H2内存数据库安装与维护.doc 12、H2数据库基础知识.docx 13...
H2数据库驱动包是专为H2数据库设计的连接组件,它使得开发者能够轻松地在应用程序中集成H2数据库,以便进行数据存储、查询和管理。H2数据库是一款开源、轻量级、高性能的关系型数据库,广泛应用于开发测试和小型项目...
Spring Boot 整合 H2数据库实战 Spring Boot 是一个基于 Java 的开源框架,旨在简化 Java 企业级应用程序的开发过程。H2 是一个开源的关系型数据库,采用 Java 语言编写,不受平台的限制。Spring Boot 整合 H2 ...
1. **H2数据库**: H2是一个完全用Java编写的、支持多种模式(包括单用户模式、服务器模式和嵌入式模式)的关系型数据库。它的特点是速度快、小巧、易于使用,可以在Java应用程序中直接嵌入,也可以作为独立的服务器...
描述中提到的"windows的安装版"指的是针对Windows操作系统的特定打包形式,通常包含一个图形用户界面(GUI)和一些额外的工具,使得在Windows环境下安装和管理H2数据库更为简便。这通常包括一个内置服务器,方便用户...
同时也会说明如何通过用户自定义变量、日期和时间处理来优化数据库的使用。另外,H2数据库还支持与多种第三方产品的集成,如Web应用服务器、编程语言、开发工具等。 7. H2数据库工具 H2提供了多种工具辅助数据库...
**H2数据库客户端详解** H2数据库是一款开源、高性能、轻量级的Java关系型数据库管理系统,它在嵌入式和服务器模式下均表现出色。H2数据库以其易用性、快速性能和全面的SQL支持而受到开发者的青睐,尤其在进行测试...
h2 数据库导入 MySQL 数据库 h2 数据库导入 MySQL 数据库是指将 h2 数据库中的数据导入到 MySQL 数据库中,以便更好地存储和管理数据。下面将详细介绍 h2 数据库导入 MySQL 数据库的步骤。 首先,需要创建一个 ...
- **用户定义变量**(User-Defined Variables):解释了如何在H2数据库中使用用户定义的变量。 - **日期和时间**(Date and Time):说明了如何在数据库中处理日期和时间数据。 - **集成Spring框架**(Using ...
H2数据库支持标准的SQL标准,意味着用户可以使用熟悉的SQL语法进行数据库操作。此外,H2数据库还支持集群模式,允许多个节点协同工作,提高数据处理的可靠性和性能。 在H2数据库中,聚合函数(Aggregate Functions...
H2数据库是一个轻量级、高性能的开源关系型数据库,完全用Java编写,这使得它具有高度的可移植性,可以在任何支持Java的环境中运行。H2提供了多种运行模式,包括内嵌模式(Embedded Mode)、服务器模式(Server Mode...
9. **丰富的函数和特性**:H2提供了大量的内置函数和存储过程,如全文搜索、空间数据支持、自定义函数等。 在DEMO中,我们可以看到如何简单地使用H2数据库。通常,引入H2数据库的JAR包后,可以通过Java代码创建...
它支持多种数据库模式,包括单用户模式、嵌入式模式、服务器模式等,使得在不同的场景下都能灵活运用。H2数据库以其简单易用、快速启动和强大的功能而受到开发者的青睐。 **1. 数据类型** 在`H2Database数据类型....
通常,这个压缩包会包含H2数据库的安装程序或者运行所需的JAR文件,以便用户在本地计算机上运行或集成到Java项目中。 解压后的“h2数据库安装文件-2021610.exe”是H2数据库的可执行文件,适用于Windows操作系统。...
h2 数据库驱动包, 为drools-server 提供数据库支持,放在tomcat lib目录下执行