spring boot 基础-操作h2数据库
前言
之前写过使用springboot操作mysql数据库,但有时候可能只想给某个服务写个小插件使用mysql或者Oracle会显得多余,这是就可以使用h2数据库。在此不做过多的介绍,想了解的直接去h2官网。 源码地址Github
使用前提
工具/jar包 | 版本 |
---|---|
idea | 2018.2.8 |
spring boot | 2.1.4.RELEASE |
Maven | 3.6.0 |
jdk | 1.8 |
pom.xml
<dependencies>
<!-- h2 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.197</version>
</dependency>
<!-- jpa -->
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
application-dev.yml
spring:
datasource:
url: jdbc:h2:~/test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
platform: h2
username: sa
password:
driverClassName: org.h2.Driver
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: update
properties:
hibernate:
show_sql: true
use_sql_comments: true
format_sql: true
h2:
console:
enabled: true
# path 访问h2数据库控制台 ip:port/h2
path: /h2
settings:
trace: false
web-allow-others: false
logging:
level:
root: INFO
server:
port: 8081
实体类 user.java
package cn.geoary.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* @program: spring-boot-jdbc-h2
* @description: user实体类
* @author: geoary
* @create: 2019-06-15 15:52
**/
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
@Column
private String name;
@Column
private Integer age;
@Column
private String address;
public User() {
}
public User(String name, Integer age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
数据接口 UserRepository.java
package cn.geoary.dao;
import cn.geoary.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Integer> {
}
服务 UserService.java
package cn.geoary.service;
import cn.geoary.entity.User;
import java.util.List;
public interface UserService {
List<User> getAll();
User getOneById(Integer id);
User addUser(User user);
User updateUser(User user);
void deleteUser(Integer id);
}
实现类 userServiceImpl.java
package cn.geoary.service.impl;
import cn.geoary.dao.UserRepository;
import cn.geoary.entity.User;
import cn.geoary.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @program: spring-boot-jdbc-h2
* @description: 实现类
* @author: geoary
* @create: 2019-06-15 16:00
**/
@Component("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public List<User> getAll() {
return userRepository.findAll();
}
@Override
public User getOneById(Integer id) {
return userRepository.getOne(id);
}
@Override
public User addUser(User user) {
return userRepository.save(user);
}
@Override
public User updateUser(User user) {
return userRepository.save(user);
}
@Override
public void deleteUser(Integer id) {
userRepository.deleteById(id);
}
}
控制层 UserController.java
package cn.geoary.controller;
import cn.geoary.entity.User;
import cn.geoary.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @program: spring-boot-jdbc-h2
* @description: user控制层
* @author: geoary
* @create: 2019-06-15 15:56
**/
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/findall")
public List<User> findAll() {
return userService.getAll();
}
@GetMapping("/add")
public User addOne() {
User user = new User("张三", 20, "北京市石景山区");
return userService.addUser(user);
}
@GetMapping("update")
public User updateOne() {
User user = userService.getOneById(33);
user.setName("李四");
user.setAddress("搬到了山西省太原市");
return userService.updateUser(user);
}
@GetMapping("delete")
public String deleteOne(){
try {
userService.deleteUser(35);
}catch (Exception e){
return "删除失败";
}
return "删除成功";
}
}
h2控制台
在浏览器输入 127.0.0.1:8081/h2
查看数据界面
标签:
Java
, Spring Boot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix