- 浏览: 2144934 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
上篇文章散仙,写了关于SQLite的使用,本篇我们看下几款JAVA开源的数据库,主要有3个,derby,H2,HSQLdb,都是非常不错的数据库,既可以当内存库,又可以嵌入移动设备充当数据存储的角色,而且完全支持关系型数据库的SQL语法,所以适当了解一些,对以后的数据存储的,或计算会有更好的辅助性。
下面是这3个轻量级的数据库的使用简单例子,其中有些数据库支持内存,文件,网络等方式连接,本篇侧重基于内存,和文件连接的使用,代码如下:
(1),derby的使用:
(2)hsqldb的使用:
(3)h2的使用:
其中h2和hsqldb是非常类似的,但是又有很大的不同,通过下面的一张对比表,我们可以看出来他们之间有什么不同之处:
其实,散仙做这些对比,也是为了了解一下他们不同之处,使用内存库,用来统计一些不需要持久化操作的数据,而且数量不大的数据,是非常方便的。
下面是这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是非常类似的,但是又有很大的不同,通过下面的一张对比表,我们可以看出来他们之间有什么不同之处:
其实,散仙做这些对比,也是为了了解一下他们不同之处,使用内存库,用来统计一些不需要持久化操作的数据,而且数量不大的数据,是非常方便的。
发表评论
-
记一次log4j不打印日志的踩坑记
2019-09-22 01:58 1455### 起因 前几天一个跑有java应用的生产集群(200多 ... -
在Java里面如何解决进退两难的jar包冲突问题?
2019-07-23 19:10 1139如上图所示: es api组件依赖guava18.0 ... -
如何轻松理解二叉树的深度遍历策略
2019-07-03 23:33 1014我们知道普通的线性数据结构如链表,数组等,遍历方式单一 ... -
为什么单线程Redis性能也很出色
2019-01-21 18:02 2129高性能的服务器,不一 ... -
如何将编程语言里面的字符串转成数字?
2019-01-11 23:23 1992将字符串转成数字在很 ... -
为什么Java里面String类是不可变的
2019-01-06 18:36 1586在Java里面String类型是不可变对象,这一点毫无疑问,那 ... -
关于Java里面volatile关键字的重排序
2019-01-04 18:49 981Java里面volatile关键字主 ... -
多个线程如何轮流打印ABC特定的次数?
2018-12-11 20:42 5928之前的一篇文章,我给 ... -
聊聊Java里面的引用传递
2018-11-16 21:21 932长久以来,在Java语言里面一直有一个争论,就是Java语言到 ... -
理解计数排序算法的原理和实现
2018-10-11 10:03 2046计数排序(Counting sort) ... -
理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略
2018-09-06 11:31 3335### 前言 理解HashMap和Con ... -
关于Java里面多线程同步的一些知识
2018-07-18 09:45 1062# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
Java单例模式之双检锁深入思考
2018-07-08 12:25 3241# Java单例模式之双检锁 ... -
关于Java里面多线程同步的一些知识
2018-07-08 12:23 1084# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
重新认识同步与异步,阻塞和非阻塞的概念
2018-07-06 14:30 1425# 重新认识同步与异步 ... -
线程的基本知识总结
2018-06-27 16:27 1017### (一)创建线程的方式 (1)实现Runnable接口 ... -
Java里面volatile关键字修饰引用变量的陷阱
2018-06-25 11:42 1325# Java里面volatile关键字修饰引用变量的陷阱 如 ... -
关于Java里面的字符串拼接,你了解多少?
2018-06-25 11:28 1312# 关于Java里面的字符串 ... -
深入理解Java内存模型的语义
2018-06-25 11:39 686### 前言 Java内存模型( ... -
如何证明Java多线程中的成员变量数据是互不可见的
2018-06-21 10:09 1452前面的几篇文章主要介绍了Java的内存模型,进程和线程的定义, ...
相关推荐
附可运行的使用demo。(demo未做性能优化,很慢也很耗内存,运行请准备好几个g的内存) 此demo不会考虑性能问题,只是用于指导怎么解析ip地址库文件,实现根据ip查询ip的地理位置信息。 运行此demo,请执行DemoMain...
1、Timesten内存数据库jdbc各个版本驱动jar包, 2、java连接timesten数据库的demo 3、timesten数据库配置说明文档
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java存储与读取对象 1个目标文件 如题 Java调色板面板源代码 1个目标文件 摘要:Java源码,窗体界面,调色板 使用Java语言编写的一款...
errorCompoundVariable.java 错误使用局部变量示例 factorial.java 求阶乘 Fibonacci.java 求Fiblnacci数列 GcdAndGcm.java 求最大公约数和最小公倍数 errorInit.java 演示变量初始化错误的程序 integer...
图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片),完整的demo例子,可运行。
项目介绍 本项目包含管理员、部门经理、员工三种角色; 部门经理角色包含以下功能: 个人信息管理,请假信息审批,...1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDE
H2DB java 内存数据库,这里有所需的jar和DEMO示例,可直接导进eclipse中,很好的入门资料,欢迎下载!
阿里云java短信验证码源码 Java 后台开发:JavaWeb,微服务框架 以及数据库相关的代码。 环境简述: 使用了 IntelliJ Idea 作为后台开发工具,WebStorm 作为前端开发工具 使用了 ...Redis内存数据库,
Redis作为高性能的内存数据库,可以通过其原语命令实现分布式锁。Java集成步骤包括:引入Redis客户端依赖、编写分布式锁工具类利用Redis命令实现加锁/解锁等操作。 3. 集成Spring Boot: Spring Boot可以大大简化Java...
Apache Derby 是100% Java 编写的内存数据库,属于 Apache 的一个开源项目。并且是一个容易管理的关系数据库管理系统 Apache Derby 是一个与平台无关的数据库引擎,它以 Java 类库的形式对外提供服务。与其他难以...
mybatis-demo使用IntelliJ IDEA开发的myBatis演示程序该项目使用Gradle进行构建项目,并且简单使用了testNG做单元测试项目说明为了测试myBatis的数据模型,这里简单的使用的纯Java实现的内存数据库H2,运行之后,...
MongoDB (API로그) ORM: JPA 中间件缓存,内存数据库: Redis 5 Message Broker: Kafka 2.12-2.3和Zookeeper 3.4.6 外部图书馆Lombok吸气剂,构造剂,助剂용사코드사거를사용 TBD:openfeign,...项目结构프로...
Activiti V5.21 用户手册 中文版。 从 Activiti website下载 Activiti Explorer 的WAR文件后,按照以下步骤使用默认设置...Activiti Explorer 应用默认使用H2内存数据库。如果你想使用其他数据库配置,请阅读较长版。
微信小程序详细图文教程 ...1.下载DEMO 2.下载开发工具并安装 3.配置参数 4.发布 完整说明 一.微信小程序申请 申请,并认证(未认证不能发布,认证需要300元,目前只支持企业认证)详细见官网说明。 ...
范例使用的是access数据库,首先在odbc 注册ReportDemo.mdb 数据源,名字随你喜好, 然后修改classes文件下的 db.properties 的连接。 然后把项目放在tomcat下运行既可: 起作用的关键文件:RMVIEWP.CAB 文件,...
InfluxDB(时序数据库),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDB V1一般配合Grafana)制作内存使用情况的折线图; 可以理解...
内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的...
Druid:Java 数据库连接池 FreeMarker:好用的 Java 模版引擎 Latke:Java Web 框架 NetBeans:全宇宙暂时排名第三的 IDE IntelliJ IDEA:全宇宙暂时排名第二的 IDE 下一代的社区系统,为未来而构建 ...