时间:2021-05-20
h2为轻量级数据库,使用特别方便,它可以不使用数据库服务器,直接嵌入到java程序中。可以配置持久化,同样也可以不持久化(数据在内存中)进程结束后,数据就释放,用做测试和演示特别方便。自带后台管理,非常方便,开源免费
maven依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> <version>1.4.193</version><!--低版本,支持访问内存数据库--> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.1</version> </dependency></dependencies>application.yml配置
server: port: 8080spring: datasource: driver-class-name: org.h2.Driver# schema: classpath:db/schema-h2.sql #初始化建表# data: classpath:db/data-h2.sql #初始化数据# url: jdbc:h2:mem:test #不持久化,放在内存中 url: jdbc:h2:~/test username: root password: test h2: console: path: /h2-console enabled: true #必须配置,不然无法访问启动Springboot应用类,访问http://localhost:8080/h2-console就可以使用数据库管理后台了
测试查询功能
完整代码参考:https://gitee.com/haimama/java-study/tree/master/h2db-demo-simple
Application.java
package demosimple.h2;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@MapperScan("demosimple.h2.mapper")public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); }}TestController.java
package demosimple.h2.controller;import demosimple.h2.mapper.UserMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController { @Autowired UserMapper userMapper; @GetMapping("/test") public Object test(){ return userMapper.getById(1L); }}UserMapper.java
package demosimple.h2.mapper;import demosimple.h2.pojo.User;import org.apache.ibatis.annotations.Select;public interface UserMapper { @Select("select * from user where id=#{id}") public User getById(Long id);}User.java
package demosimple.h2.pojo;import lombok.Data;@Datapublic class User { private Long id; private String name; private Integer age; private String email;}访问http://localhost:8080/test
返回结果{"id":1,"name":"Jone","age":18,"email":"test1@baomidou.com"}
问题收集
jdbc链接
控制台默认链接是jdbc:h2:~/test,如果我们使用的是内存jdbc:h2:mem:test,需要将链接改为jdbc:h2:mem:test
内存链接报错
当我们使用jdbc:h2:mem:test链接时,报如下错误
Database "mem:test" not found, and IFEXISTS=true, so we cant auto-create it [90146-199] 90146/90146 (Help)
这句话的意思是说数据库未找到。经查询,高版本的h2不再允许远程访问内存数据库,可以将maven依赖添加一个低版本的
<dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> <version>1.4.193</version> <!--低版本,支持访问内存数据库--> </dependency>初始化sql执行
到此这篇关于h2database在springboot中的使用教程的文章就介绍到这了,更多相关springboot使用h2database内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Springboot使用mysql实例详解开发阶段用H2即可,上线时,通过以下配置切换到mysql,springboot将使用这个配置覆盖默认的H2。1.建立数
开篇本例是在springboot整合H2内存数据库,实现单元测试与数据库无关性和使用RestTemplate消费springboot的Restful服务两个示例
前言在之前的SpringBoot基础教程系列中,已经通过《SpringBoot中使用@Async实现异步调用》一文介绍过如何使用@Async注解来实现异步调用了
1.概述在本教程中,我们将讨论如何使用SpringSecurityOAuth和SpringBoot实现SSO-单点登录。我们将使用三个单独的应用程序:̶
教程展示了如何在Spring应用程序中使用GenericApplicationContext。在该示例中,我们创建了一个SpringBoot控制台应用程序。Sp