转载

SpringBoot2.x:整合H2数据库之代码实现

我在上一章节中详细讲解了H2数据库,接下来我带大家在Spring Boot中整合H2数据库,实现代码操作。

一. Spring Boot中整合H2数据库

1. 创建Web项目

我们按照之前的经验,创建一个web程序,并将之改造成Spring Boot项目,具体过程略。

SpringBoot2.x:整合H2数据库之代码实现

2. 添加依赖包

<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>

3. 创作sql文件

在resource目录下创建一个db文件夹,里面创建一个scheme.sql脚本文件,供程序员启动时创建数据库中的表:

create table if not exists USER (

USE_ID int not null primary key auto_increment,

USE_NAME varchar(100),

USE_SEX varchar(1),

USE_AGE NUMBER(3),

USE_ID_NO VARCHAR(18),

USE_PHONE_NUM VARCHAR(11),

USE_EMAIL VARCHAR(100),

CREATE_TIME DATE,

MODIFY_TIME DATE,

USE_STATE VARCHAR(1));

在db文件夹中再创建另一个data.sql,用来插入数据。

INSERT INTO USER (USE_ID,USE_NAME,USE_SEX,USE_AGE,USE_ID_NO,USE_PHONE_NUM,USE_EMAIL,CREATE_TIME,MODIFY_TIME,USE_STATE) VALUES(

1,’一一哥’,’0′,20,’240928198810051234′,’12345678910′,’2312119590@qq.com’,sysdate,sysdate,’0′);

INSERT INTO USER (USE_ID,USE_NAME,USE_SEX,USE_AGE,USE_ID_NO,USE_PHONE_NUM,USE_EMAIL,CREATE_TIME,MODIFY_TIME,USE_STATE) VALUES(

2,’孙一一’,’0′,22,’240928198810051234′,’12345678911′,’2312119590@qq.com’,sysdate,sysdate,’0′);

INSERT INTO USER (USE_ID,USE_NAME,USE_SEX,USE_AGE,USE_ID_NO,USE_PHONE_NUM,USE_EMAIL,CREATE_TIME,MODIFY_TIME,USE_STATE) VALUES(

3,’三胖’,’1′,24,’240928198810051234′,’12345678912′,’2312119590@qq.com’,sysdate,sysdate,’0′);

4. 设置配置文件

#h2配置

spring:

jpa:

show-sql: true #启用SQL语句的日志记录

hibernate:

ddl-auto: update #设置ddl模式

datasource:

url: jdbc:h2:F:/H2/db/db02 #配置h2数据库的连接地址

username: root #配置数据库用户名

password: syc123 #配置数据库密码

driverClassName: org.h2.Driver #配置JDBC Driver

schema: classpath:db/schema.sql #进行该配置后,每次启动程序,程序都会运行resources/db/schema.sql文件,对数据库的结构进行操作。

data: classpath:db/data.sql #进行该配置后,每次启动程序,程序都会运行resources/db/data.sql文件,对数据库的数据操作。

platform: h2 #表明使用的数据库平台是h2

h2: #h2 web console设置

console:

settings:

web-allow-others: true #进行该配置后,h2 web consloe就可以在远程访问了。否则只能在本机访问。

path: /h2 #进行该配置,你就可以通过YOUR_URL/h2访问h2 web consloe。YOUR_URL是你程序的访问URl。

enabled: true #进行该配置,程序开启时就会启动h2 web consloe。当然这是默认的,如果你不想在启动程序时启动h2 web consloe,那么就设置为false。

5. 创建启动类

package com.yyg.boot;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* @Author 一一哥Sun

* @Date Created in 2020/3/31

* @Description Description

*/

@SpringBootApplication

public class H2Application {

public static void main(String[] args) {

SpringApplication.run(H2Application.class, args);

}

}

6. 启动程序,进行测试

当我们启动了程序,就会在控制台看到如下信息:

SpringBoot2.x:整合H2数据库之代码实现

这就意味着我们在jdbc:h2:F:/H2/db/db02路径上创建了一个db02数据库。

SpringBoot2.x:整合H2数据库之代码实现

并且我们可以打开H2的web控制台,可以看到已经成功的自动帮我们创建出了db02这个数据库。

SpringBoot2.x:整合H2数据库之代码实现

执行查询,看到如下结果:

SpringBoot2.x:整合H2数据库之代码实现

二. 以服务器模式连接H2,实现增删改查

我们在上面的基础之上,对案例进行改造,把H2的连接模式从内嵌模式改成服务器模式,这种连接方式可以同时允许连接多个客户端,而内嵌模式默认情况下只能连接一个客户端。

1. 添加依赖包

<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>

2. 创建User实体类

package com.yyg.boot.domain;

import lombok.Data;

import javax.persistence.Entity;

import javax.persistence.Id;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/1

* @Description Description

*/

@Entity

@Data

public class User {

@Id //主键

private Integer id;

private String name;

private String sex;

}

3. 创建Repository

package com.yyg.boot.repository;

import com.yyg.boot.domain.User;

import org.springframework.data.jpa.repository.JpaRepository;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/1

* @Description Description

*/

public interface UserRepository extends JpaRepository<User,Integer> {

}

4. 手动创建一个H2数据库

我们可以首先手动创建出一个H2中新的数据库db05。

SpringBoot2.x:整合H2数据库之代码实现

SpringBoot2.x:整合H2数据库之代码实现

5. 修改application.yml配置文件

#h2配置

spring:

jpa:

database: h2 #指定数据库类型

show-sql: true #启用SQL语句的日志记录

hibernate:

ddl-auto: update #设置ddl模式

datasource:

url: jdbc:h2:tcp://localhost/F:/H2/db/db05;AUTO_SERVER=TRUE #配置h2数据库的连接地址;此为service链接模式,只允许一个链接,如果想多个链接,比如测试代码链接和页面的h2控制台链接,请使用混合模式链接,将 JDBC URL 后加上 AUTO_SERVER=TRUE

username: root #配置数据库用户名

password: syc123 #配置数据库密码

driverClassName: org.h2.Driver #配置JDBC Driver

#schema: classpath:db/schema.sql #进行该配置后,每次启动程序,程序都会运行resources/db/schema.sql文件,对数据库的结构进行操作。

#data: classpath:db/data.sql #进行该配置后,每次启动程序,程序都会运行resources/db/data.sql文件,对数据库的数据操作。

platform: h2 #表明使用的数据库平台是h2

h2: #h2 web console设置

console:

settings:

web-allow-others: true #进行该配置后,h2 web consloe就可以在远程访问了。否则只能在本机访问。

path: /h2 #进行该配置,你就可以通过YOUR_URL/h2访问h2 web consloe。YOUR_URL是你程序的访问URl。

enabled: true #进行该配置,程序开启时就会启动h2 web consloe。当然这是默认的,如果你不想在启动程序时启动h2 web consloe,那么就设置为false。

注意:

嵌入式连接模式,只允许一个连接,如果想多个连接,比如在代码中进行连接和h2控制台中连接,可以使用服务器模式或者混合模式来连接。

我们需要将 JDBC URL 后面加上 AUTO_SERVER=TRUE配置属性!

6. 编写Controller测试接口方法

package com.yyg.boot.web;

import com.yyg.boot.cache.CacheService;

import com.yyg.boot.domain.User;

import com.yyg.boot.repository.UserRepository;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;

import java.util.List;

/**

* @Author 一一哥Sun

* @Date Created in 2020/4/1

* @Description Description

*/

@RestController

@RequestMapping(“/user”)

public class UserController {

@Autowired

private UserRepository userRepository;

@PostMapping(“/{id}”)

public String saveUser(@PathVariable(“id”) Integer id) {

User user = new User();

user.setId(id);

user.setName(“特没谱”);

user.setSex(“女”);

userRepository.save(user);

return “success”;

}

@GetMapping(“”)

public List<User> getUser() {

return userRepository.findAll();

}

}

7. 编写启动类

package com.yyg.boot;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* @Author 一一哥Sun

* @Date Created in 2020/3/31

* @Description Description

*/

@SpringBootApplication

public class H2Application {

public static void main(String[] args) {

SpringApplication.run(H2Application.class, args);

}

}

8. 接口测试

我们在postman中执行添加请求,插入一个id为3的信息。

SpringBoot2.x:整合H2数据库之代码实现

我们在浏览器中输入:http://localhost:8082/login.do地址,进入到H2的web控制台,可以看到插入了一个新的数据。

SpringBoot2.x:整合H2数据库之代码实现

然后我们在浏览器中再执行查询请求,可以查到所有的数据信息。

SpringBoot2.x:整合H2数据库之代码实现

至此,我们就实现了Spring Boot中整合H2数据库,实现数据的CRUD操作。

原文  http://www.maidouvr.com/40718.html
正文到此结束
Loading...