为什么要使用H2数据库

H2数据库是可以嵌入到JAVA项目中的,因为只需要导入一个jar包即可,所以非常的方便。

项目中导入H2

将H2的jar包放到classpath里即可,我是用的maven,maven的配置如下

       <dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.192</version>
</dependency>

版本我用的现在的最新版

然后需要修改JDBC的配置,主要是下面两个属性跟其他数据库(如MySQL)不同,其他都一样

<property name="connection.driver_class">org.h2.Driver</property>
<property name="connection.url">jdbc:h2:tcp://localhost/~/test</property>

上面jdbc:h2:tcp://localhost/~/test中的test是数据库的名字,H2默认如果数据库不存在的话,会自动创建一个数据库的。

我用的是hibernate,所以还要修改一下Dialect的配置

<property name="dialect">org.hibernate.dialect.H2Dialect</property>

到这为止,项目里面就可以使用H2了。

使用WEB控制台管理H2数据库

建表、建数据的话,可以通过H2自带的WEB控制台来做(当然H2也提供命令行的方式)
WEB控制台可以通过命令行来启动,但为了方便,可以从H2官网上下载一个安装包,运行里面的bat文件直接启动。

 
H2\bin目录

这是H2安装完以后bin目录下的内容,运行h2w.bat打开web控制台

 
H2 web控制台Login画面

Connect

之后的玩法就跟其他数据库差不多了,可以点击下面的Sample SQL Script部分来感受一下建表和插入数据等,help命令,可以显示所有的命令。关于命令的详细可以去H2官网里面看。

 
H2 控制台

关于H2 数据库的连接方式

连接H2数据库有以下方式

  • 服务式 (Server)
  • 嵌入式(Embedded)
  • 内存(Memory)

还没太仔细研究,到目前的理解:
嵌入式的话,就是这个H2数据库只能给一个应用使用,连接是有排他机制的。当一个应用用嵌入式连接方式连接了以后,其他的应用就不能再连接了。
服务式的话,就跟MySQL、Oracle这种数据库差不多,服务器单独运行,可以多个客户端同时连接。
内存方式,顾名思义,数据仅保持在内存中

嵌入式和服务式主要体现在JDBC连接的URL方式不同,上面例子中给的是服务式的。

  • 服务式 (Server)
    jdbc:h2:tcp://localhost/~/test
  • 嵌入式(Embedded)
    jdbc:h2:~/test
  • 内存式(Memory)
    jdbc:h2:tcp://localhost/mem:test

这个不用记,在H2控制台的Login画面选择连接方式,就会生成不同的URL

作者:枝头残月野狼嚎嗷嗷呜
链接:https://www.jianshu.com/p/5bcee8eb170c
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

JAVA 项目中使用 H2 数据库的更多相关文章

  1. Java嵌入式数据库H2学习总结(三)——在Web应用中嵌入H2数据库

    H2作为一个嵌入型的数据库,它最大的好处就是可以嵌入到我们的Web应用中,和我们的Web应用绑定在一起,成为我们Web应用的一部分.下面来演示一下如何将H2数据库嵌入到我们的Web应用中. 一.搭建测 ...

  2. Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库

    一.搭建测试环境和项目 1.1.搭建JavaWeb测试项目 创建一个[H2DBTest]JavaWeb项目,找到H2数据库的jar文件,如下图所示: H2数据库就一个jar文件,这个Jar文件里面包含 ...

  3. Java Web项目中连接Access数据库的配置方法

    本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...

  4. XML在JAVA项目中的作用

    java项目中,xml文件一般都是用来存储一些配置信息 一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重 ...

  5. JAVA项目中常用的异常处理情况总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

  6. UCenter在JAVA项目中实现的单点登录应用实例

    Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准. 基于UCenter,可以将Comsenz旗下的Discuz! ...

  7. JAVA项目中常用的异常知识点总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

  8. 对java异常的总结及java项目中的常用的异常处理情况

    文章涉及内容来源:黑马程序员自学整理的笔记,网上查阅资料,以及转载名为墨钺的博客大佬,附上博客转载地址:https://www.cnblogs.com/gothic-death/p/9946415.h ...

  9. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

随机推荐

  1. df -h命令卡死解决办法

    1.现象 同事突然反应说有个服务器进入/目录运行 ls  -l 无反应,同时运行df  -h也卡死了.如果你的机器有用到nfs请直接看第四大点. 2.分析 运行mount [conversant@sw ...

  2. NET 异步多线程,THREAD,THREADPOOL,TASK,PARALLEL

    .NET 异步多线程,THREAD,THREADPOOL,TASK,PARALLEL,异常处理,线程取消 今天记录一下异步多线程的进阶历史,以及简单的使用方法 主要还是以Task,Parallel为主 ...

  3. pip 安装包提速

    豆瓣源 pip3 install 第三方库名 -i https://pypi.doubanio.com/simple/ --trusted-host pypi.doubanio.com

  4. 8.4 正睿暑期集训营 Day1

    目录 2018.8.4 正睿暑期集训营 Day1 A 数对子 B 逆序对 C 盖房子 考试代码 A B C 2018.8.4 正睿暑期集训营 Day1 时间:4.5h(实际) 期望得分:30+50+3 ...

  5. BZOJ.4571.[SCOI2016]美味(主席树 贪心)

    题目链接 要求 \(b\ xor\ (a_j+x)\) 最大,应让 \(a_j+x\) 的最高位尽可能与b相反.带个减法Trie树好像很难做?反正我不会. 从最高位开始,如果这位b是0/1,判断是否存 ...

  6. BZOJ.1951.[SDOI2010]古代猪文(费马小定理 Lucas CRT)

    题目链接 \(Description\) 给定N,G,求\[G^{\sum_{k|N}C_n^k}\mod\ 999911659\] \(Solution\) 由费马小定理,可以先对次数化简,即求\( ...

  7. ScrollView中嵌套GridView,Listview的办法

    按照android的标准,ScrollView中是不能嵌套具有滑动特性的View的,但是有时如果设计真的有这样做的需要,或者为了更方便简单的实现外观(比如在外在的大布局需要有滑动的特性,并且内部有类似 ...

  8. 如何用dat批处理文件关闭某端口对应程序-Windows自动化命令

    如何用dat批处理文件关闭某端口对应程序? 网上找到的大部分都是手动操作,第一步先查出端口,第二步在根据上一步查到的端口手动去关闭进程.但我的需求不是这样的,我需要全自动处理.用于 dubbo 服务进 ...

  9. app分组

    将项目中中的urls.py复制到app当中 清空项目名称文件夹下的urls.py文件中的内容,并写入一下内容 from django.conf.urls import url,include urlp ...

  10. Lvs+Keepalived+Mysql

    环境 [root@node1 ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@node1 ~]# uname -a Linu ...