返回

无需数据库也能使用 Quarkus 实现增删改查(开发模式)

后端





**概述** 

在进行应用程序开发时,通常需要使用数据库来存储和管理数据。然而,在开发初期或进行原型开发时,使用数据库可能会带来一些不便,例如需要花费时间来设置和配置数据库、需要编写额外的代码来与数据库交互等。

Quarkus 提供了一种名为 Zero Config Setup (Dev Services) 的工具,可以帮助开发人员在不使用数据库的情况下运行增删改查操作。此工具能够在内存中创建模拟数据库,并提供与实际数据库类似的 API,以便开发人员能够轻松地进行数据操作。

**使用 Dev Services 工具** 

1. **添加 Dev Services 依赖项** 

在项目中添加如下依赖项:

```xml
<dependency>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-hibernate-orm-panache</artifactId>
</dependency>
  1. 配置数据源

application.properties 文件中添加以下配置:

quarkus.hibernate.orm.default.url=jdbc:h2:mem:dev-database;DB_CLOSE_DELAY=-1
quarkus.hibernate.orm.database.generation=drop-and-create

上述配置将使用 H2 内存数据库作为模拟数据库,并将其命名为 dev-databaseDB_CLOSE_DELAY=-1 意味着数据库将在应用程序关闭后一直保持打开状态,这在开发期间非常有用。drop-and-create 意味着每次启动应用程序时都会删除并重新创建数据库表。

  1. 编写实体类

接下来,我们需要编写一个实体类来表示数据库中的表。例如,如果我们想存储用户信息,我们可以编写如下实体类:

@Entity
public class User {

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

    private String name;

    private String email;

    // ...
}
  1. 编写 DAO 类

接下来,我们需要编写一个 DAO 类来提供对数据库的访问。例如,我们可以编写如下 DAO 类:

public class UserDAO {

    @PersistenceContext
    private EntityManager em;

    public List<User> getAllUsers() {
        return em.createQuery("SELECT u FROM User u", User.class).getResultList();
    }

    public User getUserById(Long id) {
        return em.find(User.class, id);
    }

    public void saveUser(User user) {
        em.persist(user);
    }

    public void updateUser(User user) {
        em.merge(user);
    }

    public void deleteUser(Long id) {
        em.remove(em.find(User.class, id));
    }
}
  1. 编写 RESTful API

最后,我们需要编写 RESTful API 来提供对数据的访问。例如,我们可以编写如下 RESTful API:

@Path("/users")
public class UserResource {

    private UserDAO userDAO = new UserDAO();

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<User> getAllUsers() {
        return userDAO.getAllUsers();
    }

    @GET
    @Path("/{id}")
    @Produces(MediaType.APPLICATION_JSON)
    public User getUserById(@PathParam("id") Long id) {
        return userDAO.getUserById(id);
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public void saveUser(User user) {
        userDAO.saveUser(user);
    }

    @PUT
    @Path("/{id}")
    @Consumes(MediaType.APPLICATION_JSON)
    public void updateUser(@PathParam("id") Long id, User user) {
        user.setId(id);
        userDAO.updateUser(user);
    }

    @DELETE
    @Path("/{id}")
    public void deleteUser(@PathParam("id") Long id) {
        userDAO.deleteUser(id);
    }
}

运行应用程序

现在,我们可以运行应用程序并测试是否能够正常使用 Dev Services 工具进行增删改查操作。

mvn quarkus:dev

应用程序启动后,我们可以使用浏览器访问以下 URL 来测试 RESTful API:

http://localhost:8080/users

如果一切正常,我们应该能够看到所有用户的信息。

结论

Zero Config Setup (Dev Services) 工具非常适合在原型开发和快速迭代时使用。它可以帮助开发人员在不使用数据库的情况下轻松地进行数据操作,从而提高开发效率。