【1】H2介绍
【2】SpringBoot使用H2内嵌数据库
=================================================================================
【1】H2介绍
```
H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
1.内嵌模式(Embedded Mode)
内嵌模式下,应用和数据库同在一个JVM中,通过JDBC进行连接。可持久化,但同时只能一个客户端连接。内嵌模式性能会比较好。
2.服务器模式(Server Mode)
使用服务器模式和内嵌模式一样,只不过它可以跑在另一个进程里。
3.混合模式
第一个应用以内嵌模式启动它,对于后面的应用来说它是服务器模式跑着的。混合模式是内嵌模式和服务器模式的组合。
第一个应用通过内嵌模式与数据库建立连接,同时也作为一个服务器启动,于是另外的应用(运行在不同的进程或是虚拟机上)可以同时访问同样的数据。
第一个应用的本地连接与嵌入式模式的连接性能一样的快,而其它连接理论上会略慢。
```
【2】SpringBoot使用H2内嵌数据库
[参考链接](https://blog.csdn.net/weixin_34309543/article/details/94097602?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.edu_weight)
[SpringBoot2.x系列教程45--整合H2数据库之代码实现](https://blog.csdn.net/qianfeng_dashuju/article/details/105858621)
```
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:~/h2/test
spring.datasource.username=root
spring.datasource.password=123456
spring.h2.console.settings.web-allow-others=true
spring.h2.console.path=/h2
spring.h2.console.enabled=true
spring.datasource.schema=classpath:db/schema.sql
spring.datasource.data=classpath:db/data.sql
spring.datasource.platform=h2
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
1.本地文件
连接语法([] 可选,<>可变):jdbc:h2:[file:][<path>]<databaseName>
示例:
jdbc:h2:~/test //连接位于用户目录下的test数据库,~表示用户目录
jdbc:h2:file:/data/sample
jdbc:h2:file:E:/H2/gacl
2.内存数据库
连接语法:jdbc:h2:mem:<databasename>
示例:jdbc:h2:mem:test_mem
3.远程连接
这种连接方式就和其他数据库类似了,是基于Service的形式进行连接的,因此允许多个客户端同时连接到H2数据库。
连接语法:jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>
示例:
jdbc:h2:tcp://localhost/~/test //用户目录下
jdbc:h2:tcp://localhost/E:/H2/gacl //指定目录
jdbc:h2:tcp://localhost/mem:gacl //内存数据库
使用内嵌模式的数据库,在项目运行时,通过客户端连接工具时连不上数据库的,会提示already in use,只能通过项目的web console连接。
web console 只能是服务器本机才能连接,其他机器是没有权限连的.
```
发表评论