- 浏览: 2188806 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1589### 起因 前几天一个跑有java应用的生产集群(200多 ... -
在Java里面如何解决进退两难的jar包冲突问题?
2019-07-23 19:10 1253如上图所示: es api组件依赖guava18.0 ... -
如何轻松理解二叉树的深度遍历策略
2019-07-03 23:33 1150我们知道普通的线性数据结构如链表,数组等,遍历方式单一 ... -
为什么单线程Redis性能也很出色
2019-01-21 18:02 2222高性能的服务器,不一 ... -
如何将编程语言里面的字符串转成数字?
2019-01-11 23:23 2109将字符串转成数字在很 ... -
为什么Java里面String类是不可变的
2019-01-06 18:36 1681在Java里面String类型是不可变对象,这一点毫无疑问,那 ... -
关于Java里面volatile关键字的重排序
2019-01-04 18:49 1085Java里面volatile关键字主 ... -
多个线程如何轮流打印ABC特定的次数?
2018-12-11 20:42 6062之前的一篇文章,我给 ... -
聊聊Java里面的引用传递
2018-11-16 21:21 992长久以来,在Java语言里面一直有一个争论,就是Java语言到 ... -
理解计数排序算法的原理和实现
2018-10-11 10:03 2097计数排序(Counting sort) ... -
理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略
2018-09-06 11:31 3394### 前言 理解HashMap和Con ... -
关于Java里面多线程同步的一些知识
2018-07-18 09:45 1111# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
Java单例模式之双检锁深入思考
2018-07-08 12:25 3298# Java单例模式之双检锁 ... -
关于Java里面多线程同步的一些知识
2018-07-08 12:23 1122# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
重新认识同步与异步,阻塞和非阻塞的概念
2018-07-06 14:30 1475# 重新认识同步与异步 ... -
线程的基本知识总结
2018-06-27 16:27 1063### (一)创建线程的方式 (1)实现Runnable接口 ... -
Java里面volatile关键字修饰引用变量的陷阱
2018-06-25 11:42 1389# Java里面volatile关键字修饰引用变量的陷阱 如 ... -
关于Java里面的字符串拼接,你了解多少?
2018-06-25 11:28 1373# 关于Java里面的字符串 ... -
深入理解Java内存模型的语义
2018-06-25 11:39 744### 前言 Java内存模型( ... -
如何证明Java多线程中的成员变量数据是互不可见的
2018-06-21 10:09 1509前面的几篇文章主要介绍了Java的内存模型,进程和线程的定义, ...
相关推荐
本文将深入探讨H2数据库的使用,特别是结合Java环境下的DEMO实例,以帮助你更好地理解和应用这一强大的数据库系统。 H2数据库的特点: 1. **跨平台性**:由于H2是用Java编写的,因此可以在任何支持Java的平台上运行...
本教程将深入讲解如何在Android环境中使用SQLite进行数据库操作,包括增、删、改、查等基本功能。 首先,我们需要创建一个SQLite数据库。在Android中,通常通过继承`SQLiteOpenHelper`类来实现。`SQLiteOpenHelper`...
它的设计目标是提供快速、灵活且易于使用的数据库系统,能够在Java应用程序中直接运行,无需安装额外的服务器。在Java开发中,H2数据库因其小巧、高效和便捷而受到广泛欢迎。 H2数据库的主要特性包括: 1. **多模式...
在这个"数据库demo"中,我们可能遇到的问题和解决方案可能涵盖以下几个方面: 1. **安装与配置**:SQLite可以通过命令行工具或者API在项目中使用。对于开发者,了解如何在不同编程语言(如Python、Java、C++)中...
H2数据库支持多种模式,包括内存模式、单文件模式和服务器模式,这使得它非常适合快速启动和集成到Java应用程序中。下面将详细介绍如何在Java Web项目中使用H2数据库,并提供一个代码示例。 1. **安装与配置** - ...
- 压缩包中可能包含一个简单的数据库示例,可能是像HSQLDB这样的内存数据库,用于演示数据插入的过程。这种数据库易于使用,不需要单独安装,适合测试和开发。 7. **运行实例**: - 运行jar包需要确保环境中已经...
【标题】:“使用的Java系统Demo” 在这个“使用的Java系统Demo”中,我们主要探讨的是Java在实际系统开发中的应用和示例。Java是一种广泛应用于企业级应用开发的强大编程语言,以其“一次编写,到处运行”的跨平台...
附可运行的使用demo。(demo未做性能优化,很慢也很耗内存,运行请准备好几个g的内存) 此demo不会考虑性能问题,只是用于指导怎么解析ip地址库文件,实现根据ip查询ip的地理位置信息。 运行此demo,请执行DemoMain...
在这个“java运用poi把excel导入数据库demo”中,我们将探讨如何利用POI库将Excel数据有效地导入Oracle数据库。 首先,我们需要理解Apache POI的工作原理。POI提供了HSSF和XSSF两个API,分别用于处理旧版的BIFF8(....
在这个"Java-redis-demo"项目中,我们将会探讨如何在Java环境中集成和使用Redis,以便利用它的强大功能。以下是关于Java与Redis交互的一些关键知识点: 1. **Jedis库**: Java连接Redis最常用的客户端库是Jedis。它...
标题中的“接收NetFlow数据并导入Mysql数据库的Java工具”指的是一个利用Java编程语言开发的应用,该应用能够处理从网络设备上收集的NetFlow数据,并将这些数据存储到MySQL数据库中。NetFlow是一种网络流量监测协议...
这个资源,"GreenDAO3.0 带数据库升级 demo",提供了关于如何在Android项目中使用GreenDAO 3.0的详细示例,涵盖了配置、基本操作以及数据库升级的过程。 首先,让我们了解一下GreenDAO 3.0的主要特点和优势。...
在Java Web开发中,JSP...总之,"Java _ JSP分页Demo"是一个很好的学习资源,可以帮助开发者掌握如何在Java Web应用中使用JSP、Servlet和MVC模式进行数据分页处理。通过实际操作,可以提升对这些技术的理解和应用能力。
总之,这个"java项目集成neo4j的demo"提供了一个很好的起点,帮助开发者快速了解如何在Java应用程序中利用Neo4j的强大功能。通过学习和运行这个示例,你可以掌握图数据库的基本用法,并为进一步深入探索Neo4j的高级...
**H2内存数据库详解** H2数据库是一款轻量级、高性能的开源数据库系统,尤其适合于小型项目、测试环境以及快速原型开发。它的设计目标是简单、高效,并且完全支持SQL标准,使得开发者在处理数据存储时能拥有高度的...
Mybatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 `MySQL`是一种关系型数据库管理系统,以其体积小、速度快、总体拥有成本...
本文将围绕“JAVA 商品秒杀demo”这一主题,详细讲解如何使用Java语言来实现一个商品秒杀系统,以及在这个过程中可能涉及的关键技术和注意事项。 首先,我们要明白秒杀系统的几个核心特性: 1. **高并发**:由于...
Java作为一门广泛使用的编程语言,在处理数据库连接方面提供了丰富的支持。本文将详细介绍几种常见的Java数据库连接方法,包括MySQL、Oracle、SQL Server、DB2等数据库系统的JDBC连接代码示例。 #### 二、JDBC简介 ...
本示例"excel报表功能读入写入数据库功能demo"通过Apache POI展示了如何实现这一功能,以学生表为例。 1. **Apache POI介绍** Apache POI 是一个开源项目,它提供了Java API来处理Microsoft Office格式的文件。这...