`
threeman
  • 浏览: 10605 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

内存数据库 HSQLDB

 
阅读更多

应用

在JUnit单元测试中,由于,很多时候没有真实数据库环境,所以,我们很自然的会借助内存数据库HSQLDB。内存数据库非常轻量级,当内存数据库关闭后,内存中的数据也随之消失。代码虽然简单,但还是贴出来,呵呵,供以后复制粘贴方便。


jdbcDriver in pom.xml of Maven:

		<dependency>
			<groupId>org.hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
			<version>2.3.2</version>
		</dependency>


package shuai.study.memorydb;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class MemoryDB {
	private static Connection connection = null;
	private static Statement statement = null;
	private static PreparedStatement preparedStatement = null;
	private static ResultSet resultSet = null;

	// Load jdbcDriver
	static {
		try {
			Class.forName("org.hsqldb.jdbcDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

	// Get DB connection
	public static Connection getConnection() {
		if (connection == null) {
			try {
				connection = DriverManager.getConnection("jdbc:hsqldb:mem:mdb", "shuai", "123");
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		return connection;
	}

	// Get DB statement
	public static Statement getStatement() {
		if (connection == null) {
			getConnection();
		}

		if (statement == null) {
			try {
				statement = connection.createStatement();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		return statement;
	}

	// Execute SQL
	public static void executeSQL(String sql) {
		if (statement == null) {
			getStatement();
		}

		try {
			statement.executeUpdate(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	// Get resultSet
	public static ResultSet executeQuerySQL(String sql) {
		if (connection == null) {
			getConnection();
		}

		try {
			preparedStatement = connection.prepareStatement(sql);
			resultSet = preparedStatement.executeQuery();
		} catch (SQLException e) {
			e.printStackTrace();
		}

		return resultSet;
	}

	// Print resultSet
	public static void resultPrint(ResultSet resultSet) {
		try {
			int columnCount = resultSet.getMetaData().getColumnCount();
			String columnValue = null;

			while (resultSet.next()) {
				for (int n = 1; n <= columnCount; n++) {
					columnValue = resultSet.getString(n);

					if (n == columnCount) {
						System.out.println(columnValue);
					} else {
						System.out.print(columnValue + "\t");
					}

				}
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	// Close DB
	public static void closeDB() {
		try {
			if (resultSet != null) {
				resultSet.close();
			}

			if (preparedStatement != null) {
				preparedStatement.close();
			}

			if (statement != null) {
				statement.close();
			}

			if (connection != null) {
				connection.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		MemoryDB.executeSQL("CREATE TABLE EMPLOYEE(ID INTEGER, NAME VARCHAR(20), SEX VARCHAR(10), TEAM VARCHAR(20))");

		MemoryDB.executeSQL("INSERT INTO EMPLOYEE VALUES(1,'shuai', 'male', 'FMC')");
		MemoryDB.executeSQL("INSERT INTO EMPLOYEE VALUES(2,'hellen', 'female', 'MUS')");
		MemoryDB.executeSQL("INSERT INTO EMPLOYEE VALUES(3,'mery', 'female', 'SDM')");

		MemoryDB.executeSQL("COMMIT");

		ResultSet resultSet = MemoryDB.executeQuerySQL("SELECT * FROM EMPLOYEE");
		MemoryDB.resultPrint(resultSet);

		MemoryDB.closeDB();
	}
}


分享到:
评论

相关推荐

    hsqldb-2.5.0.zip

    hsqldb数据库下载,很好用,简易的内存数据库,特别适合初学者

    Java编写的关系数据库:hsqldb_1.7.3

    HSQLDB 是一个用Java编写的关系数据库管理系统。 其作为一个小型数据库,很是小巧。 它提供了一个快速轻量级)数据库引擎,该数据库引擎提供基于磁盘和内存的表。

    hsqldb-example:在内存中使用数据库,hsqldb的用法

    hsqldb示例在内存中使用db,hsqldb的用法。

    hsqldb-2.2.8数据库

    Hsqldb是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速。

    JBPM基于Spring系统工作流平台整合(一)

    1-版本以及系统配置jbpm版本3.2.3...jBPM默认使用的是内存数据库hsqldb|---deploy用来部署你的应用的包和资源|---designer这里是Eclipse插件,这样你就可以在图形界面来定义你的业务流程|---

    hsqldb-2.5.0.jar

    hsqldb数据库下载,很好用,简易的内存数据库,特别适合初学者。

    hsqldb数据库系统

    HSQLDB 是一个轻量级的纯Java开发的开放源代码的关系数据库系统。因为HSQLDB的轻量(占用空间小),使用简单,支持内存运行方式等特点,HSQLDB被广泛用于开发环境和某些中小型系统中。 HSQLDB的运行需要Java环境的...

    Java理论与实践:在没有数据库的情况下进行数据库查询

    本文介绍了开源的内存中的SQL数据库HSQLDB和XQuery。HSQLDB是一个用Java语言编写的可嵌入的数据库引擎。XQuery为生成XML或者HTML文档作为查询结果而设计的,因此不需要对查询结果进行后处理。从开发成本角度看,...

    Hsqldb-java-connection:在Java编程中使用Hsql(内存数据库)数据库

    Hsqldb-java-连接 在Java编程中使用Hsql(内存数据库)数据库

    in-memory-docker-database:在内存数据库中进行测试!

    在 Java 世界中,最流行的内存数据库测试方法是使用 H2 或 HSQLDB。 这些数据库运行良好,可以模拟一些数据库语法和功能,但与大多数模拟一样,这是肤浅的、不完善的,并没有涵盖重要的数据库功能。 In Memory ...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    为了简化数据库操作,我们使用了内存数据库 HSQLDB。对这个简单的应用,省略了 DAO,直接在 Fa?ade 中通过 Spring 的 JdbcTemplate 操作数据库。最后,EmployeeMgmt 应用通过 Servlet 和 JSP 页面为用户提供前端界面...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    为了简化数据库操作,我们使用了内存数据库 HSQLDB。对这个简单的应用,省略了 DAO,直接在 Façade 中通过 Spring 的 JdbcTemplate 操作数据库。最后,EmployeeMgmt 应用通过 Servlet 和 JSP 页面为用户提供前端...

    hsqldb source code and doc

    hsqldb source code and document, it is the version 2.0 rc3. ...sqldb是一个非常著名的数据库,支持嵌入和client-server方式,支持内存模式,cached, text 3种表。 欢迎更多人研究这种优秀的开源数据库

    hsqldb整合hibernate

    项目是可运行的Myeclipse 6.5开发,所有的jar在项目的lib下,利用hibernate操作内存数据库 hsqlbd,次项目是比较经典的测试例子学习使用

    Eclipse和HSQLDB:将关系数据库服务器嵌入到Eclipse中

    尽管不如DB2功能强大,也不如MySQL流行,但HSQLDB(超音速SQL数据库)可以满足很大范围内Java应用程序的需要,因为它具有可扩展性,而且对内存/处理器的要求不高。超音速SQL数据库后来正式更名为HSQLDB,它是一类纯...

Global site tag (gtag.js) - Google Analytics