为什么不将Mybatis集成到quarkus的系统中呢? [已关闭]

问题描述 投票:0回答:2

很多项目都采用了Mybatis,如果能够集成MyBatis,可以快速将基于Spring框架的应用转换为基于Quarkus框架的应用。

orm mybatis quarkus
2个回答
2
投票

Quarkus 问题板上有一个扩展提案:https://github.com/quarkusio/quarkus/issues/1958

您可以对其进行 +1 反应以表达您的兴趣并关注它。

甚至有一个 PR 为其提供支持,但几个月后似乎没有取得任何进展。


0
投票

当然,你可以将Mybatis集成到quarkus系统中

quarkus-mybatis 0.0.1 第一个版本于 2020 年 10 月发布。 quarkus-mybatis 最新版本0.0.92021年6月发布。

许多公司在其技术堆栈中使用 Quarkus,包括 Backbase、Biting Bit 和 JustChunk。

演示:

使用 https://code.quarkus.io/

创建新的 Quarkus 项目

将 quarkus-mybatis 扩展添加到您的项目中。这里我使用Maven进行依赖管理。

Maven

<dependency>
    <groupId>io.quarkiverse.mybatis</groupId>
    <artifactId>quarkus-mybatis</artifactId>
    <version>0.0.9</version>
</dependency>

数据源配置:

application.properties
quarkus.datasource.db-kind = h2
quarkus.datasource.username = sa
# quarkus.datasource.password =
quarkus.datasource.jdbc.url = jdbc:h2:mem:test
quarkus.mybatis.initial-sql=schema.sql

schema.sql:

create table users
(
   id integer not null,
   firstName varchar(255) not null,
   lastName varchar(255) not null,
   emailId varchar(255) not null,
   primary key(id)
);

创建用户模型:

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private long id;
    private String firstName;
    private String lastName;
    private String emailId;

}

创建用户MyBatis存储库:

@Mapper
public interface UserRepository {

    @Select("select * from users")
    public List<User> findAll();

    @Select("SELECT * FROM users WHERE id = #{id}")
    public User findById(long id);

    @Delete("DELETE FROM users WHERE id = #{id}")
    public int deleteById(long id);

    @Insert("INSERT INTO users(id, firstName, lastName,emailId) " +
            " VALUES (#{id}, #{firstName}, #{lastName}, #{emailId})")
    public int insert(User user);

    @Update("Update users set firstName=#{firstName}, " +
            " lastName=#{lastName}, emailId=#{emailId} where id=#{id}")
    public int update(User user);
}

终点:

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

    @PUT
    @Consumes(MediaType.APPLICATION_JSON)
    public void updateUser(User user) {
        userResource.update(user);
    }

    @POST
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_JSON)
    public void addUser(User user) {
       userResource.insert(user);

    }

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

构建应用程序jar文件: mvn clean package

启动应用程序: java -jar quarkus-run.jar

2022 年 3 月 26 日星期六 - 更新

最新版本quarkus-mybatis 1.0.2

<!-- https://mvnrepository.com/artifact/io.quarkiverse.mybatis/quarkus-mybatis -->
<dependency>
    <groupId>io.quarkiverse.mybatis</groupId>
    <artifactId>quarkus-mybatis</artifactId>
    <version>1.0.2</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.