H2数据库使用

常用的开源数据库:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB类似,十分适合作为嵌入式数据库使用,其它的数据库大部分都需要安装独立的客户端和服务器端。
H2的优势:
1、h2采用纯Java编写,因此不受平台的限制。
2、h2只有一个jar文件,十分适合作为嵌入式数据库试用。
3、性能和功能的优势

H2比HSQLDB的最大的优势就是h2提供了一个十分方便的web控制台用于操作和管理数据库内容,这点比起HSQLDB的swing和awt控制台实在好用多了。

H2和各数据库特征比较。

准备工作

 
1、h2-2011-04-04.zip  下载地址:http://www.h2database.com/html/download.html
2、解压文件,这里以%H2_HOME%表示为解压的文件目录。运行%H2_HOME%\bin\h2.bat 将会自动打开下面网址。(请确认是否安装了jdk,并设置了JAVA_HOME环境变量)
http://192.168.140.1:8082/login.jsp?jsessionid=244e36a683f97f0d4f3b000f33530ed1

3、点击 connect ,登录。

4、执行上图中红色部分sql语句,成功创建test表。

因为没有指定数据库文件位置,会自动输出到输出到C:\Users\Administrator下。

H2文件结构

 
%H2_HOME%
-h2
  -bin
    h2-1.3.154.jar //jar包
    h2.bat         //Windows控制台启动脚本
    h2.sh          //Linux控制台启动脚本
    h2w.bat        //Windows控制台启动脚本(不带黑屏窗口)
  +docs 帮助文档
  +service //通过wrapper包装成服务。
  +src  //源代码
  build.bat  windows构建脚本
  build.sh   linux构建脚本

H2的使用
支持Embedded,server和in-memory模式以及内存模式。
Embedded模式

1、新建java project工程 H2Test。

 

2、%H2_HOME%\bin\h2-1.3.154.jar 复制到 \H2Test\lib下,并加入工程引用。
3、新建Generic H2 (Embedded)数据库,指定:JDBC ,然后执行上面的test sql语句,来创建一个test表。

4、新建 TestH2类 主要代码

public static void main(String[] a)
      throws Exception {
   Class.forName("org.h2.Driver");
   Connection conn = DriverManager.
       getConnection("jdbc:h2:E:\\research\\workspace\\H2Test\\db\\test", "sa", "");
   // add application code here
   Statement stmt = conn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");   
      while(rs.next()) {   
       System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));
      }
   conn.close();
 }

 
控制台打印出:1,Hi

server模式

1、直接将jdbc url 改为:jdbc:h2:tcp://localhost/~/test  就行了。因为我们在上面第一步的时候已经在C:\Users\Administrator创建了test数据库。
你也可以再创建新的数据库,默认都是保存在C:\Users\Administrator下的。
注意:你必须启动服务:%H2_HOME%\bin\h2.bat 或者 以服务模式启动:%H2_HOME%\service\0_run_server_debug.bat ,里面有好几个脚本把H2部署为服务模式。每次机器启动后自动启动H2服务。
2、新建 TestServerH2类 主要代码

public static void main(String[] a)
    throws Exception {
   Class.forName("org.h2.Driver");
   Connection conn = DriverManager.
       getConnection("jdbc:h2:tcp://localhost/~/test", "sa", "");
   // add application code here
   Statement stmt = conn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST ");   
    while(rs.next()) {   
     System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));
    }
   conn.close();
 }

运行的结果和上面一样。

内存模式数据只保存在内存中)

1、新建 TestMemH2类 主要代码

public static void main(String[] a)
    throws Exception {
   Class.forName("org.h2.Driver");
   Connection conn = DriverManager.
       getConnection("jdbc:h2:tcp://localhost/mem:test2", "sa", "");
   // add application code here
   Statement stmt = conn.createStatement();
  
   stmt.executeUpdate("CREATE TABLE TEST_MEM(ID INT PRIMARY KEY,NAME VARCHAR(255));");
   stmt.executeUpdate("INSERT INTO TEST_MEM VALUES(1, 'Hello_Mem');");
   ResultSet rs = stmt.executeQuery("SELECT * FROM TEST_MEM");   
    while(rs.next()) {   
     System.out.println(rs.getInt("ID")+","+rs.getString("NAME"));
    }
   conn.close();
 }

控制台打印出:1,Hello_Mem

2、上面的 URL 改为 jdbc:h2:~/mem:test 也是可以的。如果是localhost必须启动服务。

资源下载

H2Test工程

### 如何配置 Navicat 连接 H2 数据库 要通过 Navicat 成功连接到 H2 数据库,需完成以下几个方面的设置: #### 1. 下载并安装 JDBC 驱动程序 H2 数据库依赖于 Java 的 JDBC 驱动来实现外部工具的连接。因此,在使用 Navicat 前,需要下载适合版本的 H2 JDBC 驱动文件 `h2*.jar` 并将其路径保存下来以便后续导入[^1]。 #### 2. 创建新的连接 在 Navicat 中创建一个新的数据库连接时,应选择 **JDBC** 类型作为目标数据库接口。以下是具体操作步骤: - 打开 Navicat 软件后点击菜单栏中的 “新建连接”。 - 在弹出窗口里找到支持自定义驱动选项的部分(通常标记为 Other 或 Custom),输入必要的参数如下表所示[^2]: | 参数名 | 描述 | |----------------|--------------------------------------------------------------------------------------| | Connection Name| 自定义名称用于识别此链接 | | Driver Type | 设置为 `org.h2.Driver`,这是官方推荐的标准类全限定名 | | URL | 形如 jdbc:h2:<path_to_db>;如果运行嵌入模式可设成类似 `jdbc:h2:~/test`;如果是服务器模式则可能是 `jdbc:h2:tcp://localhost/~/test` | 注意:URL 字符串的具体形式取决于您的 H2 实例是以何种方式部署——即本地单机版还是远程网络服务端口监听状态下的实例化过程[^3]。 #### 3. 导入 JDBC 文件至 Navicat 为了使 Navicat 可以加载来自第三方厂商开发的支持包(这里指的就是 h2*.jar),还需要手动指定其物理存储位置给应用程序读取。这一步骤一般位于高级属性或者附加组件管理界面下执行[^4]: ```bash Tools -> Options -> Drivers & Translators -> Add/Edit existing driver details. ``` 随后按照提示上传之前获取到的那个 jar 包即可生效。 #### 4. 测试连接成功与否 当以上所有前期准备工作都完成后就可以尝试发起实际握手请求验证整个流程是否通畅无误了。只需返回初始页面按下 Test Button 即能迅速得知结果反馈消息[^5]。 ```python import jaydebeapi as jd conn_str = 'jdbc:h2:/path/to/dbfile' driver_name='org.h2.Driver' username="sa" password="" jars=['path/to/h2*.jar'] try: conn = jd.connect(driver_name, conn_str , [username,password], jars ) except Exception as e: print(f'Error occurred:{e}') finally: if 'conn' in locals(): conn.close() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值