使用H2,Hibernate在Spring Boot上创建一个简单的CRUD应用程序
#初学者 #编程 #java #basic

简介

使用H2创建CRUD(创建,读取,更新,删除)应用程序,Hibernate是快速开发功能强大且高效的Web应用程序的好方法。在本教程中,我们将浏览使用H2,Hibernate在Spring Boot上创建简单的CRUD应用程序的步骤。

先决条件

在启动本教程之前,您应该安装以下内容:

  • Java 8或更高
  • Apache Maven 3.x
  • Eclipse IDE

您还应该对Spring Boot框架以及H2和Hibernate数据库有基本的了解。

步骤1:创建一个春季启动项目

使用H2在Spring Boot上创建CRUD应用程序的第一步,Hibernate是创建Spring Boot项目。为此,请打开Eclipse IDE,然后从菜单栏中选择“文件>新>弹簧启动器”项目。

在下一个窗口中,输入项目名称,选择语言为Java,然后选择Spring Boot版本。然后,单击“下一步”。

在下一个屏幕上,选择项目的依赖项。对于本教程,我们将选择网络,H2数据库和JPA(Hibernate)。单击“完成”以创建项目。

步骤2:创建数据库表

现在我们已经创建了项目,我们需要创建数据库表。为此,打开位于src/main/resources文件夹中的Propertiesâ文件。

在此文件中,我们将设置数据库URL,用户名和密码。对于本教程,我们将使用JDBC:H2:MEM:TESTDBâ用作数据库URL。将用户名和密码设置为saâ。

接下来,我们将创建数据库表。为此,在src/main/resources文件夹中创建一个名为“ schema.sql”的新文件。在此文件中,我们将编写SQL代码以创建数据库表。例如:

CREATE TABLE users ( 
  id INTEGER PRIMARY KEY, 
  name VARCHAR(255), 
  email VARCHAR(255)
);

CREATE TABLE posts ( 
  id INTEGER PRIMARY KEY, 
  title VARCHAR(255), 
  content VARCHAR(255)
);

步骤3:创建实体类

下一步是创建实体类。这些类将用于将数据库表映射到Java对象。

在src/main/java文件夹中创建一个名为“实体”的新软件包。在此软件包中,创建两个称为“用户和帖子”的类。

对于用户类,添加以下代码:

@Entity
public class User {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  private String name;
  private String email;

  // Getters and setters

}

对于邮政课程,添加以下代码:

@Entity
public class Post {

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;

  private String title;
  private String content;

  // Getters and setters

}

步骤4:创建存储库类

下一步是创建存储库类。这些类将用于访问数据库并执行CRUD操作。

在src/main/java文件夹中创建一个名为“存储库”的新软件包。在此软件包中,创建两个称为“ UserRepository”和“ Postrepository”的类。

对于UserRepository类,添加以下代码:

@Repository
public interface UserRepository extends JpaRepository<User, Long> {

}

对于Postrepository类,添加以下代码:

@Repository
public interface PostRepository extends JpaRepository<Post, Long> {

}

步骤5:创建服务类

下一步是创建服务类。这些类将用于管理数据并执行操作。

在src/main/java文件夹中创建一个名为“服务”的新软件包。在此软件包中,创建两个称为“ userService”和“后服务”的类。

对于用户服务类,添加以下代码:

@Service
public class UserService {

  @Autowired
  private UserRepository userRepository;

  public List<User> getAllUsers() {
    return userRepository.findAll();
  }

  public User getUserById(Long id) {
    return userRepository.findById(id).get();
  }

  public User createUser(String name, String email) {
    User user = new User();
    user.setName(name);
    user.setEmail(email);
    return userRepository.save(user);
  }

  public User updateUser(Long id, String name, String email) {
    User user = userRepository.findById(id).get();
    user.setName(name);
    user.setEmail(email);
    return userRepository.save(user);
  }

  public void deleteUser(Long id) {
    userRepository.deleteById(id);
  }

}

对于后服务类,添加以下代码:

@Service
public class PostService {

  @Autowired
  private PostRepository postRepository;

  public List<Post> getAllPosts() {
    return postRepository.findAll();
  }

  public Post getPostById(Long id) {
    return postRepository.findById(id).get();
  }

  public Post createPost(String title, String content) {
    Post post = new Post();
    post.setTitle(title);
    post.setContent(content);
    return postRepository.save(post);
  }

  public Post updatePost(Long id, String title, String content) {
    Post post = postRepository.findById(id).get();
    post.setTitle(title);
    post.setContent(content);
    return postRepository.save(post);
  }

  public void deletePost(Long id) {
    postRepository.deleteById(id);
  }

}

步骤6:创建控制器类

最后一步是创建控制器类。这些类将用于将请求映射到服务类。

在src/main/java文件夹中创建一个名为“控制器”的新软件包。在此软件包中,创建两个称为“ UserController”和“ PostController”的类。

对于UserController类,添加以下代码:

@RestController
@RequestMapping("/users")
public class UserController {

  @Autowired
  private UserService userService;

  @GetMapping
  public List<User> getAllUsers() {
    return userService.getAllUsers();
  }

  @GetMapping("/{id}")
  public User getUserById(@PathVariable Long id) {
    return userService.getUserById(id);
  }

  @PostMapping
  public User createUser(@RequestBody User user) {
    return userService.createUser(user.getName(), user.getEmail());
  }

  @PutMapping("/{id}")
  public User updateUser(@PathVariable Long id, @RequestBody User user) {
    return userService.updateUser(id, user.getName(), user.getEmail());
  }

  @DeleteMapping("/{id}")
  public void deleteUser(@PathVariable Long id) {
    userService.deleteUser(id);
  }

}

对于PostController类,添加以下代码:

`@RestController
@RequestMapping("/posts")
public class PostController {

  @Autowired
  private PostService postService;

  @GetMapping
  public List<Post> getAllPosts() {
    return postService.getAllPosts();
  }

  @GetMapping("/{id}")
  public Post getPostById(@PathVariable Long id) {
    return postService.getPostById(id);
  }

  @PostMapping
  public Post createPost(@RequestBody Post post) {
    return postService.createPost(post.getTitle(), post.getContent());
  }

  @PutMapping("/{id}")
  public Post updatePost(@PathVariable Long id, @RequestBody Post post) {
    return postService.updatePost(id, post.getTitle(), post.getContent());
  }

  @DeleteMapping("/{id}")
  public void deletePost(@PathVariable Long id) {
    postService.deletePost(id);
  }

}`

结论

在本教程中,我们浏览了使用H2,Hibernate在Spring Boot上创建一个简单的CRUD应用程序的步骤。我们创建了我们的项目,创建了数据库表,创建了实体类,创建了存储库类,创建了服务类并创建了控制器类。

使用此应用程序,我们现在可以使用H2和Hibernate数据库轻松地创建,阅读,更新和删除数据。