h2database为我们提供了十分轻量,十分快捷方便的内嵌式数据库
* H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。
* 可以同应用程序打包在一起发布
* 它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态
* 提供JDBC访问接口,提供基于浏览器的控制台,可以执行sql
* 免费,开源,够快
还方便了程序刚开始dao层单元测试测试,不需要搭建oracle,不需要加载mysql,快速测试写的dao
一、下载与安装
h2database 官网地址:http://www.h2database.com/html/main.html
<http://www.h2database.com/html/main.html>
点击下载,解压即可。
解压缩后的目录结构:
h2
|---bin
| |---h2-1.1.116.jar //H2数据库的jar包(驱动也在里面)
| |---h2.bat //Windows控制台启动脚本
| |---h2.sh //Linux控制台启动脚本
| |---h2w.bat //Windows控制台启动脚本(不带黑屏窗口)
|---docs //H2数据库的帮助文档(内有H2数据库的使用手册)
|---service //通过wrapper包装成服务。
|---src //H2数据库的源代码
|---build.bat //windows构建脚本
|---build.sh //linux构建脚本
此时就算“安装”完成了。
切换到h2解压目录。
➜ ~ cd Downloads/h2 ➜ h2 nohup ./bin/h2_server.sh appending output to nohup.out
弹出h2管理页面,启动成功。
浏览器访问:http://localhost:8082/
二、后台代码
创建SpringBoot工程,https://start.spring.io/ <https://start.spring.io/>
添加maven依赖:
<!--h2--> <dependency> <groupId>com.h2database</groupId>
<artifactId>h2</artifactId> <version>1.4.195</version> </dependency>
配置application.yml
spring: datasource: driver-class-name: org.h2.Driver url: jdbc:h2:~/test
username: sa password:
此处的url跟classname均可在页面管理中找到。
此为嵌入式链接模式,只允许一个链接,如果想多个链接,比如测试代码链接和页面的h2控制台链接,请使用混合模式链接
将 JDBC URL 后加上 AUTO_SERVER=TRUE
同理 在yml文件中修改链接数据URL 后加上 AUTO_SERVER=TRUE
spring: datasource: driver-class-name: org.h2.Driver url:
jdbc:h2:~/test;AUTO_SERVER=TRUE username: sa password:
添加 jpa 依赖
<dependency> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
修改yml,新增show-sql、ddl-auto设为update
jpa: show-sql: true hibernate: ddl-auto: update
添加简单实体类
@Entity @Data public class User { @Id //主键 private Integer id; private Integer
age; private String name; private String address; private String city; }
添加UserRepository
public interface UserRepository extends JpaRepository<User,Integer> { }
三、开始测试
添加测试类UserRepositoryTest
* 数据新增测试 @SpringBootTest @RunWith(SpringRunner.class) public class
UserRepositoryTest { @Autowired private UserRepository userRepository; @Test
public void addUser() { User user = new User(); user.setId(1);
user.setName("张三"); user.setAddress("北京"); user.setAge(19); user.setCity("北京");
userRepository.save(user); } }
console->
查看h2控制台
* 数据添加成功,测试修改 @Test public void editUser(){ User user = new User();
user.setId(1); user.setName("李四"); user.setAddress("上海"); user.setAge(20);
user.setCity("上海"); userRepository.save(user); }
查看h2控制台->
* 数据修改成功,测试查询 @Test public void queryUser(){ User user =
userRepository.findOne(1); System.out.println(user);
Assert.assertEquals("李四",user.getName());
Assert.assertEquals("上海",user.getAddress()); }
console->
* 数据查询成功,测试删除 @Test public void delUser(){ userRepository.delete(1); }
查看h2控制台
数据删除测试成功。
代码github:[email protected]:ChenHaoXFN/h2Demo.git
参考文献: https://blog.csdn.net/fanpeizhong/article/details/73543260
热门工具 换一换