11.集成数据库H2
1.H2简介H2是一个开源的、内存型嵌入式数据库引擎,它是一个用Java开发的类库,可直接嵌入到应用程序中,与程序一起打包发布出去,不受平台的限制。2.引入依赖新建一个SpringBoot工程,并在pom.xml文件中添加集成H2所需要的dependency。<dependency><groupId>com.h2database</groupId><art
1.H2简介
H2是一个开源的、内存型嵌入式数据库引擎,它是一个用Java开发的类库,可直接嵌入到应用程序中,与程序一起打包发布出去,不受平台的限制。
2.引入依赖
新建一个SpringBoot工程,并在pom.xml文件中添加集成H2所需要的dependency。
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.2</version>
<scope>provided</scope>
</dependency>
3.添加配置
在application.properties文件中添加如下配置信息。
############################################################
#
# JPA配置
#
############################################################
### 是否生产ddl语句
spring.jpa.generate-ddl = false
### 是否打印sql语句
spring.jpa.show-sql = true
### 自动生成ddl,由于指定了具体的ddl,此处设置为none
spring.jpa.hibernate.ddl-auto = none
############################################################
#
# H2配置
#
############################################################
### 使用H2数据库
spring.datasource.platform = h2
### H2驱动
spring.datasource.driver-class-name = org.h2.Driver
### 指定生成数据库的schema文件位置
spring.datasource.schema = classpath:/db/schema.sql
### 指定插入数据库语句的脚本位置
spring.datasource.data = classpath:/db/data.sql
4.数据准备
在“resources/db”目录下创建schema.sql和data.sql文件,schema.sql用于定义数据库表结构,data.sql用于为数据表初始化数据。schema.sql和data.sql文件内容分别如下所示。
create table user (
id int(11) not null auto_increment,
name varchar(30) default null,
email varchar(50) default null,
primary key (id)
);
insert into user values (2, 'cherry', '258****996@qq.com');
insert into user values (3, 'owen', '490***112@qq.com');
5.开发
在启动类所在目录下创建User类和UserRepository类。
@Entity
@Table(name = "user")
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String email;
}
这里的@Id注解不是引入“import org.springframework.data.annotation.Id”包,而是引入“import javax.persistence.*;”包。
@Repository
public interface UserRepository extends JpaRepository<User,Integer>{
User findByName(String name);
}
6.测试用例
在单元测试类H2ApplicationTests中添加如下代码。
@SpringBootTest
@TestPropertySource("classpath:application.properties")
class H2ApplicationTests {
@Resource
private UserRepository userRepository;
/**
* @description SpringBoot集成H2单元测试,测试用户保存是否成功
* @author steven
* @date 2020-06-14
*/
@Test
public void testSave() {
User user = new User();
user.setId(1);
user.setName("steven");
user.setEmail("125****421@qq.com");
User rs = userRepository.save(user);
Assertions.assertNotNull(rs);
}
/**
* @description SpringBoot集成H2单元测试,测试通过用户名查找用户
* @author steven
* @date 2020-06-14
*/
@Test
public void testFindByName() {
User user = userRepository.findByName("steven");
Assertions.assertNotNull(user);
Assertions.assertEquals(user.getEmail(),"125****421@qq.com");
}
}
右键执行H2ApplicationTests单元测试,这时可以看到控制台显示“All 2 test passed”以及如下打印信息。
7.工程目录结构

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)