`

H2db数据库介绍及基本使用

阅读更多
H2的主要特点
高效,开源,支持JDBCAPI,支持Embedded,server和in-memory模式,基于浏览器的控制台程序,主文件是一个大约只有1MB的jar文件。特性:纯Java,支持事务隔离(Transaction Isolation),支持基于代价的优化方式(Cost Based Optimizer),支持数据库加密(Encrypted Database),支持ODBC驱动(ODBC Driver),支持全文本搜索(Fulltext Search),支持多版本并发控制(Multi Version Concurrency)
H2的历史
H2的发展开始于2004年五月,它的第一个公开发行版本是在2005年12月14日发布的。H2的主要作者是Thomas Mueller,他一直是Hypersonic SQL的源码开发者。在2001年,他加入了PointBase Inc,在那里PointBase Micro被创建。在那时候,他不得不停止Hypersonic SQL,但是这时HSQLDB团队还在为Hypersonic SQL工作。这时一个被叫做H2的项目建立起来,其实H2又叫做Hypersonic 2。然而H2没有共享任何Hypersonic SQL(HSQLDB)的代码。H2的建立是从零开始的。

----------------------------------------------------------------
H2的使用:
(一)H2文件结构:
————————————————————————————————
-h2
  -bin
    h2-1.1.116.jar //H2主文件(驱动也在里面)
    h2.bat         //H2控制台启动程序带黑屏窗口(for Windows)
    h2.sh          //H2控制台启动程序(for Linux)
    h2w.bat        //H2控制台启动程序不带黑屏窗口(for Windows)
  +docs //文档文件夹(内有手册)
  +service
  +src  //开源的吗,带源代码
  build.bat
  build.sh
  build.xml
————————————————————————————————
(二)Eclipse/MyEclipse中引入H2驱动
在指定项目中右键 -> Peoperties -> Java Build Path -> Libraries -> Add External JARs -> 引入h2-1.1.116.jar
(三)使用内存模式(关闭后内容全部消失,速度非常快):
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
public class MenTest{ 
public void runInsertDelete(){ 
    try{ 
        String sourceURL="jdbc:h2:tcp://localhost/mem:testmemdb";//H2DB mem mode 
                String user="sa";  
                String key=""; 
        try{    
        Class.forName("org.h2.Driver");//HSQLDB Driver  
        }catch(Exception e){    
        e.printStackTrace();    
        }   
        Connection conn=DriverManager.getConnection(sourceURL,user,key);//把驱动放入连接 
        Statement stmt=conn.createStatement(); 
                //创建一个 Statement 对象来将 SQL 语句发送到数据库。 
        //stmt.executeUpdate("DELETE FROM mytable WHERE name=\'NO.2\'"); 
                //执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法。 
        //stmt.execute("CREATE TABLE idtable(id INT,name VARCHAR(100));"); 
        stmt.execute("INSERT INTO idtable VALUES(1,\'MuSoft\')"); 
        stmt.execute("INSERT INTO idtable VALUES(2,\'StevenStander\')"); 
        stmt.close(); 
        conn.close(); 
                   
    }catch(SQLException sqle){ 
                System.out.println("SQL ERROR!");    
    } 

     } 
public void query(String SQL){ 
    try{ 
      String sourceURL="jdbc:h2:tcp://localhost/mem:testmemdb"; 
      String user="sa"; 
      String key="";      
         
      try{    
          Class.forName("org.h2.Driver");    
          }catch(Exception e){    
           e.printStackTrace();    
       }   
      Connection conn=DriverManager.getConnection(sourceURL,user,key);//把驱动放入连接 
      Statement stmt=conn.createStatement();//    
      ResultSet rset=stmt.executeQuery(SQL);
//执行方法找到一个与 methodName 属性同名的方法,并在目标上调用该方法。 
      while(rset.next()) 
      {          
            System.out.println(rset.getInt("id")+"  "+rset.getString("name"));       
      } 
      rset.close(); 
      stmt.close(); 
      conn.close(); 
    }catch(SQLException sqle){ 
          System.err.println(sqle); 
  } 

        public static void main(String args[]){ 
            MenTest mt=new MenTest(); 
           mt.runInsertDelete(); 
            mt.query("SELECT * FROM idtable"); 
        } 
}
(四)使用Embedded模式(Create,Insert,Delete...):
import java.sql.*; 

public class UpdateTest { 
    public void runInsertDelete() { 
        try { 
            String sourceURL = "jdbc:h2:h2/bin/mydb";// H2 database 
            String user = "sa"; 
            String key = ""; 
            try { 
                Class.forName("org.h2.Driver");// H2 Driver 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            Connection conn = DriverManager.getConnection(sourceURL, user, key); 
            Statement stmt = conn.createStatement(); 
            stmt.execute("CREATE TABLE mytable(name VARCHAR(100),sex VARCHAR(10))"); 
            stmt.executeUpdate("INSERT INTO mytable VALUES('Steven Stander','male')"); 
            stmt.executeUpdate("INSERT INTO mytable VALUES('Elizabeth Eames','female')"); 
            stmt.executeUpdate("DELETE FROM mytable WHERE sex=\'male\'"); 
            stmt.close(); 
            conn.close(); 

        } catch (SQLException sqle) { 
            System.err.println(sqle); 
        } 
    } 

    public static void main(String args[]) { 
        new UpdateTest().runInsertDelete(); 
    } 
}
(五)使用Embedded模式(Select):
view plaincopy to clipboardprint?
import java.sql.*; 

public class SelectTest { 
    public void query(String SQL) { 
        try { 
            String sourceURL = "jdbc:h2:h2/bin/mydb"; 
            String user = "sa"; 
            String key = ""; 

            try { 
                Class.forName("org.h2.Driver"); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            Connection conn = DriverManager.getConnection(sourceURL, user, key); 
            Statement stmt = conn.createStatement(); 
            ResultSet rset = stmt.executeQuery(SQL); 
            while (rset.next()) { 
                System.out.println(rset.getString("name")+ "  "+rset.getString("sex")); 
            } 
            rset.close(); 
            stmt.close(); 
            conn.close(); 
        } catch (SQLException sqle) { 
            System.err.println(sqle); 
        } 
    } 

    public static void main(String args[]) { 
        Test tt = new Test(); 
        tt.query("select * from mytable"); 
    } 
}

原文地址:http://blog.sina.com.cn/s/blog_4def2d3d0100exdc.html
分享到:
评论

相关推荐

    H2DB数据库使用方法

    ### H2DB数据库使用方法详解 #### H2DB概述与特点 H2DB是一个轻量级的开源关系型数据库管理系统,完全由Java编写而成。它以其简单易用、灵活高效的特点,在开发测试环境中广受好评。 **常见的开源数据库**: - **...

    H2内存数据库资料及DEMO

    压缩包中的"DEMO"部分很可能包含了使用H2数据库的示例代码,这些代码可能展示了如何创建表、插入数据、执行查询以及事务管理等基本操作。通过学习这些示例,你可以了解如何在实际项目中集成和使用H2数据库。 此外,...

    h2数据导入mysql数据库(看评论酌情下载)

    下面将详细介绍 h2 数据库导入 MySQL 数据库的步骤。 首先,需要创建一个 MySQL 数据库。这里可以起名为 test。在创建数据库时,需要指定数据库的字符集和排序规则,以确保数据的一致性。 其次,需要将 h2 数据库...

    springboot整合h2数据库实战

    5. 使用 H2 数据库可以实现单元测试时与真实 DB 数据库解耦,H2 实时建库建表。 6. JPA 配置主要包括实体类的定义和 JPA 的配置属性。 7. Spring Boot 整合 H2 数据库可以实现单元测试时与真实 DB 数据库解耦,H2 ...

    h2 db数据库

    - **开发和测试**:开发人员可以在开发阶段使用H2作为临时数据库,以快速验证代码逻辑和数据库交互。 - **原型设计**:在设计初期,H2可以快速搭建数据库原型,便于展示和讨论系统架构。 - **小型项目**:对于不需要...

    h2 数据库 客户端

    总结起来,H2数据库客户端是一个功能强大且易于使用的数据库解决方案,无论是小型项目还是开发测试,都能提供高效、可靠的数据库服务。其简洁的API、全面的SQL支持和灵活的存储选项,使其成为开发者们的理想选择。...

    h2 数据库驱动包

    h2 数据库驱动包, 为drools-server 提供数据库支持,放在tomcat lib目录下执行

    【graceup系列】h2db内嵌数据库demo

    【graceup系列】--h2db...基本h2db数据库demo,后续的系统用到数据库都会用到h2db。 使用h2db的原因:内嵌数据库,不用找其它数据源,能部署到免费的服务器上。 开发环境: 1、IDE:MyEclipse8.6 2、服务器:Tomcat 7

    H2嵌入式数据库的使用教程

    本教程将详细介绍H2数据库的界面操作使用,旨在帮助初学者快速上手并深入理解其核心功能。 一、安装与启动 1. 下载H2数据库的最新版本,通常是一个jar文件。 2. 运行H2 Console,可以通过命令行执行`java -jar h2-*...

    H2 Database 教程

    H2 Database是一款基于Java开发的开源内存数据库系统,它同时支持嵌入式模式和服务器模式运行,具备了小型、快速、易于使用的特点,并提供了JDBC接口用于数据库的连接。H2数据库适合嵌入到Java应用程序中,不需要...

    启动H2数据库并导入数据库脚本

    标题中的“启动H2数据库并导入数据库脚本”是指在计算机环境中启动H2数据库服务器,并将预先准备的SQL脚本(如`schema.sql`)导入到该数据库中以创建或更新数据库结构的过程。H2是一个轻量级、开源的Java数据库,常...

    windows下h2数据库使用

    本文将深入探讨在Windows环境下如何有效地开启并使用H2数据库控制台,以及其基本操作流程。 ### H2数据库概述 H2数据库是一款用Java编写的嵌入式数据库,支持SQL标准,并具备良好的性能和可靠性。它既可以作为一个...

    H2数据库讲解(教程)

    "**H2数据库使用.doc**"文档将详细介绍如何创建数据库、表和执行SQL查询。H2数据库支持常见的数据类型,如"**H2Database数据类型.doc**"中所述,包括INT、VARCHAR、DATE等,同时也提供了一些特殊类型,如BINARY和...

    java H2DB 1.4 Docs

    用户指南是H2DB的重要资源,它详细阐述了如何安装、配置和使用H2数据库。在指南中,你可以找到关于启动数据库服务器、创建数据库、编写SQL语句以及连接数据库的步骤。对于初学者,用户指南提供了逐步教程,帮助他们...

    H2数据库完整版-安装服务和说明

    一、H2数据库介绍 H2数据库以其高效、易用和灵活的特点,在Java开发者中受到欢迎。它支持多种数据库模式,包括单用户模式、服务器模式和内存模式,适应不同场景的需求。H2还兼容SQL标准,使得迁移其他数据库系统的...

    h2数据库驱动jar包

    h2数据库驱动jar包, 更多其他数据库驱动jar包(包括db2,derby,exasol,h2,jtds,mimer,mysql,nuodb,oracle,postgresql,redshift,sqlite,vertica)请看楼主其他资源贴

    H2数据库demo展示

    8. **易用性**:H2提供了直观的Web界面(DB Console)和命令行工具,方便用户进行数据库管理和操作。 9. **丰富的函数和特性**:H2提供了大量的内置函数和存储过程,如全文搜索、空间数据支持、自定义函数等。 在...

    DBUnit与H2内存数据库结合(单元测试)

    这篇文章将详细介绍如何利用DBUnit和H2内存数据库来构建单元测试环境。 首先,DBUnit是一个开源的Java库,专门用于在JDBC兼容的数据库上执行数据驱动的测试。它提供了对数据导入、导出以及数据验证的强大支持,使得...

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

    这个压缩包包含了使用H2DB所需的基本资源,特别是对于初学者来说,是一个理想的入门工具。 首先,我们关注的是"H2db"这个标签,这表明压缩包中的核心组件是H2数据库的实现。H2数据库以其小巧、快速和功能强大而著名...

    H2数据库使用.doc

    H2数据库使用.doc

Global site tag (gtag.js) - Google Analytics