spring boot h2数据库连接示例

H2数据库配置
1.连接模式介绍 (参照附录)
1.1 内嵌模式
一次只能被一个客户端连接,应用和数据库同在一个JVM中,通过JDBC进行连接。
1.2 服务模式
支持多个客户端连接,支持远程连接。
1.3 内存模式
数据放在内存中,关闭后自动删除。

2.连接字符串

#spring.datasource.driverClassName = org.h2.Driver
#spring.datasource.url = jdbc:h2:/dbfile2/h2Db
#spring.datasource.username =xxx
#spring.datasource.password =xxx

#也可以用自己的
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
2.1 内嵌模式
  例如:
jdbc:h2:~/test //连接位于用户目录下的test数据库
jdbc:h2:file:/data/sample //数据库文件存放的相对地址
jdbc:h2:file:E:/H2/gacl(Windows only)
2.2 服务模式
jdbc:h2:tcp://localhost/~/test使用用户主目录
jdbc:h2:tcp://localhost//data/test使用绝对路径
jdbc:h2:tcp://dbserv:8444/~/sample 指定端口号
2.3 内存模式
jdbc:h2:mem:<databaseName>
jdbc:h2:mem:test_mem
如果不指定DBName,则以私有方式启动,只允许一个连接
2.2 连接字符串参数
DB_CLOSE_DELAY:要求最后一个正在连接的连接断开后,不要关闭数据库
MODE=MySQL:兼容模式,H2兼容多种数据库,该值可以为:DB2、Derby、HSQLDB、MSSQLServer、MySQL、Oracle、PostgreSQL
AUTO_RECONNECT=TRUE:连接丢失后自动重新连接
AUTO_SERVER=TRUE:启动自动混合模式,允许开启多个连接,该参数不支持在内存中运行模式
TRACE_LEVEL_SYSTEM_OUT、TRACE_LEVEL_FILE:输出跟踪日志到控制台或文件, 取值0为OFF,1为ERROR(默认值),2为INFO,3为DEBUG
SET TRACE_MAX_FILE_SIZE mb:设置跟踪日志文件的大小,默认为16M
3.控制台下连接数据库的方式
java -jar jar包位置 -web -webPort 指定端口号(不指定则默认为8082) -browser
java -jar h2-1.3.168.jar -web -webPort 8090 -browser

4.假如要保证多个连接能够连接同一个数据库

(1)启动数据库

java -jar h2-1.3.160.jar -webAllowOthers -tcpAllowOthers

(2)使用服务模式连接数据库

jdbc:h2:tcp://localhost/d:/data/file/park

参考:https://cloud.tencent.com/developer/ask/83328

 

 


附录:H2数据库不同模式连接字串

URL Format and Examples

Embedded (local)

connection
jdbc:h2:[file:][<path>]<databaseName>

jdbc:h2:~/test

jdbc:h2:file:/data/sample

jdbc:h2:file:C:/data/sample

(Windows only)
In-memory (private)

jdbc:h2:mem:

In-memory (named)

jdbc:h2:mem:<databaseName>

jdbc:h2:mem:test_mem

Server mode (remote

connections) using TCP/IP
jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName>

jdbc:h2:tcp://localhost/~/test

jdbc:h2:tcp://dbserv84/~/sample

jdbc:h2:tcp://localhost/mem:test


Server mode (remote

connections) using TLS
jdbc:h2:ssl://<server>[:<port>]/<databaseName>

jdbc:h2:ssl://localhost85/~/sample;

Using encrypted

files
jdbc:h2:<url>;CIPHER=AES

jdbc:h2:ssl://localhost/~/test;CIPHER=AES

jdbc:h2:file:~/secure;CIPHER=AES

File locking

methods
jdbc:h2:<url>;FILE_LOCK={FILE|SOCKET|NO}

jdbc:h2:file:~/private;CIPHER=AES;FILE_LOCK=SOCKET

Only open if it

already exists
jdbc:h2:<url>;IFEXISTS=TRUE

jdbc:h2:file:~/sample;IFEXISTS=TRUE

Don't close the

database when the VM exits
jdbc:h2:<url>;DB_CLOSE_ON_EXIT=FALSE

Execute SQL on

connection
jdbc:h2:<url>;INIT=RUNSCRIPT

FROM '~/create.sql'
jdbc:h2:file:~/sample;INIT=RUNSCRIPT

FROM '~/create.sql'\;RUNSCRIPT FROM '~/populate.sql'
User name and/or

password
jdbc:h2:<url>[;USER=<username>][;PASSWORD=<value>]

jdbc:h2:file:~/sample;USER=sa;PASSWORD=123

Debug trace

settings
jdbc:h2:<url>;TRACE_LEVEL_FILE=<level

0..3>
jdbc:h2:file:~/sample;TRACE_LEVEL_FILE=3

Ignore unknown

settings
jdbc:h2:<url>;IGNORE_UNKNOWN_SETTINGS=TRUE

Custom file access

mode
jdbc:h2:<url>;ACCESS_MODE_DATA=rws

Database in a zip

file
jdbc:h2:zip:<zipFileName>!/<databaseName>

jdbc:h2:zip:~/db.zip!/test

Compatibility mode

jdbc:h2:<url>;MODE=<databaseType>

jdbc:h2:~/test;MODE=MYSQL

Auto-reconnect

jdbc:h2:<url>;AUTO_RECONNECT=TRUE

jdbc:h2:tcp://localhost/~/test;AUTO_RECONNECT=TRUE

Automatic mixed

mode
jdbc:h2:<url>;AUTO_SERVER=TRUE

jdbc:h2:~/test;AUTO_SERVER=TRUE

Page size

jdbc:h2:<url>;PAGE_SIZE=512

Changing other

settings
jdbc:h2:<url>;<setting>=<value>[;<setting>=<value>...]

jdbc:h2:file:~/sample;TRACE_LEVEL_SYSTEM_OUT=3

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里提供一个基于 Spring Boot 和 Vue3 的示例项目,可以作为参考: 后端 Spring Boot 部分: 1. 创建一个 Spring Boot 项目,添加以下依赖: ``` <dependencies> <!-- Spring Boot Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- H2 Database --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <!-- Spring Boot Test --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` 2. 在 `application.properties` 文件中配置数据库连接: ``` spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.jpa.database-platform=org.hibernate.dialect.H2Dialect spring.jpa.hibernate.ddl-auto=update ``` 3. 创建一个实体类 `User`: ``` @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false, unique = true) private String username; @Column(nullable = false) private String password; // getters and setters omitted for brevity } ``` 4. 创建一个 `UserRepository` 接口: ``` public interface UserRepository extends JpaRepository<User, Long> { User findByUsername(String username); } ``` 5. 创建一个 `UserController` 类,处理用户相关的请求: ``` @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/{username}") public User getUserByUsername(@PathVariable String username) { return userRepository.findByUsername(username); } @PostMapping("/") public User createUser(@RequestBody User user) { return userRepository.save(user); } } ``` 前端 Vue3 部分: 1. 安装 Vue CLI: ``` npm install -g @vue/cli ``` 2. 创建一个 Vue3 项目: ``` vue create my-project ``` 3. 安装 axios: ``` npm install axios ``` 4. 在 `src/main.js` 文件中添加以下代码: ``` import { createApp } from 'vue' import App from './App.vue' import axios from 'axios' axios.defaults.baseURL = 'http://localhost:8080/api' const app = createApp(App) app.config.globalProperties.$http = axios app.mount('#app') ``` 5. 创建一个 `Users.vue` 组件,显示用户列表: ``` <template> <div> <h1>Users</h1> <ul> <li v-for="user in users" :key="user.id"> {{ user.username }} </li> </ul> </div> </template> <script> export default { data() { return { users: [] } }, mounted() { this.$http.get('/users').then(response => { this.users = response.data }) } } </script> ``` 6. 在 `App.vue` 中添加一个路由: ``` <template> <div> <router-view /> </div> </template> <script> import { createRouter, createWebHashHistory } from 'vue-router' import Users from './Users.vue' const routes = [ { path: '/', component: Users } ] const router = createRouter({ history: createWebHashHistory(), routes }) export default { router } </script> ``` 这样,我们就完成了一个基于 Spring Boot 和 Vue3 的示例项目,可以通过 `npm run serve` 命令启动前端应用,通过 `mvn spring-boot:run` 命令启动后端应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值