前言
内存数据库。Springboot提供了3种内嵌数据库,H2、HSQL、Derby,非常小巧,可以在springboot中运行。
内嵌数据库H2
1 导入依赖
<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.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
- 配置h2允许访问
spring:
h2:
console:
path: /h2
enabled: true
-
启动项目,并访问h2, 地址:http://127.0.0.1:8080/h2,账号sa,密码123456, 点击连接,提示失败。 -
发现C盘下没有对应的配置文件,配置数据源
spring:
h2:
console:
path: /h2
enabled: true
datasource:
url: jdbc:h2:~/test
hikari:
username: sa
password: 123456
driver-class-name: org.h2.Driver
- 在配置数据源后重新启动,并登录连接h2
- 创建表并插入数据
create table book (id int,name varchar,type varchar,description varchar)
插入记录
INSERT INTO `book` (`id`, `name`, `type`, `description`) VALUES ('1', '明朝的那点事儿', '历史', '明朝永乐年间,朱元璋...');
INSERT INTO `book` (`id`, `name`, `type`, `description`) VALUES ('2', '明朝的那点事儿2', '历史2', '明朝永乐年间,朱元璋2...');
- (不需要启动服务器,直接执行测试用例)测试插入数据
@Test
void testUpdate(@Autowired JdbcTemplate jdbcTemplate){
String sql="insert into book (name,type,description) VALUES ('hello','测试','测试内容')";
int i=jdbcTemplate.update(sql);
System.out.println(i);
}
可以看到影响记录行1,表示插入成功
- (不需要启动服务器,直接执行测试用例)查询数据
@Test
void testQuery(@Autowired JdbcTemplate jdbcTemplate){
String sql="select * from book ";
RowMapper<Book> rm=new RowMapper<Book>() {
@Override
public Book mapRow(ResultSet rs, int rowNum) throws SQLException {
Book book=new Book();
book.setId(rs.getInt("id"));
book.setName(rs.getString("name"));
book.setType(rs.getString("type"));
book.setDescription(rs.getString("description"));
return book;
}
};
List<Book> books=jdbcTemplate.query(sql,rm);
System.out.println(books);
}
可以查询到刚刚插入的数据
9 启动服务器,查看h2控制台,可以查看到刚刚插入的数据
扩展内容
HSQL的依赖
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
</dependency>
Derby的依赖
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
</dependency>
|