`
qindongliang1922
  • 浏览: 2144934 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116255
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124508
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58360
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70300
社区版块
存档分类
最新评论

JAVA内存数据库使用demo

阅读更多
上篇文章散仙,写了关于SQLite的使用,本篇我们看下几款JAVA开源的数据库,主要有3个,derby,H2,HSQLdb,都是非常不错的数据库,既可以当内存库,又可以嵌入移动设备充当数据存储的角色,而且完全支持关系型数据库的SQL语法,所以适当了解一些,对以后的数据存储的,或计算会有更好的辅助性。


下面是这3个轻量级的数据库的使用简单例子,其中有些数据库支持内存,文件,网络等方式连接,本篇侧重基于内存,和文件连接的使用,代码如下:


(1),derby的使用:
package com.derby.test;

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

public class DerbyTest {

	
	public static void main(String[] args) throws Exception{
		
		Connection connection = null;  
		Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
		connection = DriverManager.getConnection("jdbc:derby:dy;create=true");
	    Statement statement = connection.createStatement();  
	      statement.setQueryTimeout(30);  // set timeout to 30 sec.  
	     // statement.executeUpdate("drop table if exists person ");  
	      statement.executeUpdate("drop table person ");  
	      statement.executeUpdate("create table person (id integer, name varchar(50))");  
	      statement.executeUpdate("insert into person values(1, '我是第一个学生')");  
	      statement.executeUpdate("insert into person values(2, '中国人')");  
	      statement.executeUpdate("insert into person values(45, '外国人')");  
	      statement.executeUpdate("insert into person values(4, '中国人')");  
	      ResultSet rs = statement.executeQuery("select *   from person order by name "); 
	      while(rs.next()){
	    	  System.out.println("id: "+rs.getInt("id")+"   name: " + rs.getString("name")); 
	      }
	      rs.close();
	      statement.close();
	      connection.close();
	      
	      
	}
}



(2)hsqldb的使用:
package com.hsqldb.test;

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

public class HSQLdbTest {

	
	public static void main(String[] args) throws Exception{
		
		Connection connection = null;  
		Class.forName("org.hsqldb.jdbcDriver");
	  	//内存计算
		connection = DriverManager.getConnection("jdbc:hsqldb:mem");
		//支持持久存储
		//connection = DriverManager.getConnection("jdbc:hsqldb:file:hsql.db");
	    Statement statement = connection.createStatement();  
	      statement.setQueryTimeout(30);  // set timeout to 30 sec.  
	      statement.executeUpdate("drop table if exists person ");  
	      //statement.executeUpdate("drop table person ");  
	      statement.executeUpdate("create table person (id integer, name varchar(50))");  
	      statement.executeUpdate("insert into person values(1, '我是第一个学生')");  
	      statement.executeUpdate("insert into person values(2, '中国人')");  
	      statement.executeUpdate("insert into person values(45, '外国人')");  
	      statement.executeUpdate("insert into person values(4, '中国人')");  
	      ResultSet rs = statement.executeQuery("select * from person order by id "); 
	      while(rs.next()){
	    	  System.out.println("id: "+rs.getInt("id")+"   name: " + rs.getString("name")); 
	      }
	      rs.close();
	      statement.close();
	      connection.close();
	      
	      
	}
}


(3)h2的使用:
package com.h2.test;

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

public class H2Test {

	
	public static void main(String[] args) throws Exception{
		
		Connection connection = null;  
		Class.forName("org.h2.Driver");
	  	//内存计算
		connection = DriverManager.getConnection("jdbc:h2:mem:");
		//支持持久存储
		//connection = DriverManager.getConnection("jdbc:h2:file:./bb.bb");
		//connection = DriverManager.getConnection("jdbc:h2:./bb.bb");
	    Statement statement = connection.createStatement();  
	      statement.setQueryTimeout(30);  // set timeout to 30 sec.  
	      statement.executeUpdate("drop table if exists person ");  
	      //statement.executeUpdate("drop table person ");  
	      statement.executeUpdate("create table person (id integer, name varchar(50))");  
	      statement.executeUpdate("insert into person values(1, '我是第一个学生')");  
	      statement.executeUpdate("insert into person values(2, '中国人')");  
	      statement.executeUpdate("insert into person values(45, '外国人')");  
	      statement.executeUpdate("insert into person values(4, '中国人')");  
	      ResultSet rs = statement.executeQuery("select * from person order by id "); 
	      while(rs.next()){
	    	  System.out.println("id: "+rs.getInt("id")+"   name: " + rs.getString("name")); 
	      }
	      rs.close();
	      statement.close();
	      connection.close();
	      
	      
	}
}




其中h2和hsqldb是非常类似的,但是又有很大的不同,通过下面的一张对比表,我们可以看出来他们之间有什么不同之处:




其实,散仙做这些对比,也是为了了解一下他们不同之处,使用内存库,用来统计一些不需要持久化操作的数据,而且数量不大的数据,是非常方便的。

  • 大小: 463.1 KB
分享到:
评论

相关推荐

    IPv4-国家-区域-城市-运营商csv格式数据库-附使用java写的使用demo

    附可运行的使用demo。(demo未做性能优化,很慢也很耗内存,运行请准备好几个g的内存) 此demo不会考虑性能问题,只是用于指导怎么解析ip地址库文件,实现根据ip查询ip的地理位置信息。 运行此demo,请执行DemoMain...

    Timesten数据库JDBC1.6-1.8驱动包及Java连接Demo

    1、Timesten内存数据库jdbc各个版本驱动jar包, 2、java连接timesten数据库的demo 3、timesten数据库配置说明文档

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...

    Java开发技术大全(500个源代码).

    errorCompoundVariable.java 错误使用局部变量示例 factorial.java 求阶乘 Fibonacci.java 求Fiblnacci数列 GcdAndGcm.java 求最大公约数和最小公倍数 errorInit.java 演示变量初始化错误的程序 integer...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片),完整的demo例子,可运行。

    Java项目:员工考勤管理系统(java+SSM+JSP+bootstrap+Mysql)

    项目介绍 本项目包含管理员、部门经理、员工三种角色; 部门经理角色包含以下功能: 个人信息管理,请假信息审批,...1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDE

    H2DB所需的jar和DEMO示例,可直接导进eclipse中

    H2DB java 内存数据库,这里有所需的jar和DEMO示例,可直接导进eclipse中,很好的入门资料,欢迎下载!

    阿里云java短信验证码源码-java-backend-development:我的Java框架、JavaWeb和数据库的Java代码

    阿里云java短信验证码源码 Java 后台开发:JavaWeb,微服务框架 以及数据库相关的代码。 环境简述: 使用了 IntelliJ Idea 作为后台开发工具,WebStorm 作为前端开发工具 使用了 ...Redis内存数据库,

    java去集成各种技术栈的demo,包括knife4j、swagger、redis做分布式锁

    Redis作为高性能的内存数据库,可以通过其原语命令实现分布式锁。Java集成步骤包括:引入Redis客户端依赖、编写分布式锁工具类利用Redis命令实现加锁/解锁等操作。 3. 集成Spring Boot: Spring Boot可以大大简化Java...

    springboot+derby+mybatisplus+swagger2例子

    Apache Derby 是100% Java 编写的内存数据库,属于 Apache 的一个开源项目。并且是一个容易管理的关系数据库管理系统 Apache Derby 是一个与平台无关的数据库引擎,它以 Java 类库的形式对外提供服务。与其他难以...

    mybatis-demo:mybatis演示程序

    mybatis-demo使用IntelliJ IDEA开发的myBatis演示程序该项目使用Gradle进行构建项目,并且简单使用了testNG做单元测试项目说明为了测试myBatis的数据模型,这里简单的使用的纯Java实现的内存数据库H2,运行之后,...

    oslo-demo-with-java-jpa:使用Java和JPA的Oslo프로프

    MongoDB (API로그) ORM: JPA 中间件缓存,内存数据库: Redis 5 Message Broker: Kafka 2.12-2.3和Zookeeper 3.4.6 外部图书馆Lombok吸气剂,构造剂,助剂용사코드사거를사용 TBD:openfeign,...项目结构프로...

    Activiti V5.21 用户手册 中文版.pdf

    Activiti V5.21 用户手册 中文版。 从 Activiti website下载 Activiti Explorer 的WAR文件后,按照以下步骤使用默认设置...Activiti Explorer 应用默认使用H2内存数据库。如果你想使用其他数据库配置,请阅读较长版。

    Java面试题03-JMM内存模型之可见性

    微信小程序详细图文教程 ...1.下载DEMO 2.下载开发工具并安装 3.配置参数 4.发布 完整说明 一.微信小程序申请 申请,并认证(未认证不能发布,认证需要300元,目前只支持企业认证)详细见官网说明。 ...

    封装给java使用的 web插件报表 (修正版本)

    范例使用的是access数据库,首先在odbc 注册ReportDemo.mdb 数据源,名字随你喜好, 然后修改classes文件下的 db.properties 的连接。 然后把项目放在tomcat下运行既可: 起作用的关键文件:RMVIEWP.CAB 文件,...

    influxdb_demo.zip

    InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图; 可以理解...

    java 面试题 总结

    内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的...

    Java开源的下一代社区平台Symphony.zip

    Druid:Java 数据库连接池 FreeMarker:好用的 Java 模版引擎 Latke:Java Web 框架 NetBeans:全宇宙暂时排名第三的 IDE IntelliJ IDEA:全宇宙暂时排名第二的 IDE 下一代的社区系统,为未来而构建 ...

Global site tag (gtag.js) - Google Analytics