quarkus框架集成mysql、pg数据库

        quarkus框架相关资料较少,现将quarkus框架集成mysql和pg以及通过impala连接hive数据库以及的实现记录下来。

        quarkus集成各类数据库,可以通过mybatis作为桥梁,这样我们只需求引入不同的数据库连接包以及不同的数据库连接配置即可,以下即为实现过程。

集成mysql配置

引入pom

<dependency>
   <groupId>io.quarkus</groupId>
   <artifactId>quarkus-jdbc-mysql</artifactId>
</dependency>

配置application.yml

quarkus:
  datasource:
    db-kind: mysql
    jdbc:
      driver: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://${ip}:${port}/${database}?useUnicode=true&characterEncoding=UTF-8&createDatabaseIfNotExist=true&autoReconnect=true&allowMultiQueries=true&serverTimezone=GMT%2B8&useSSL=false
      initial-size: 5
      min-size: 5
      max-size: 10
    username: ${username}
    password: ${password}

集成pg配置

引入pom

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-jdbc-postgresql</artifactId>
</dependency>

配置application.yml

quarkus:
  datasource:
    db-kind: postgresql
    jdbc:
      driver: 'org.postgresql.Driver'
      url: jdbc:postgresql://${ip}:${port}/${database}
      initial-size: 10
      min-size: 10
      max-size: 30
    username: ${username}
    password: ${password}

集成impala连接hive数据库配置

引入pom

<dependency>
   <groupId>impala</groupId>
   <artifactId>impala-jdbc41</artifactId>
   <version>2.6.30</version>
</dependency>

配置application.yml

quarkus:
  datasource:  
    dw:
      db-kind: hive
      jdbc:
        driver: 'com.cloudera.impala.jdbc41.Driver'
        url: jdbc:impala://${ip}:${port}/${database}
        initial-size: 10
        min-size: 10
        max-size: 30
        background-validation-interval : 5m
        acquisition-timeout: 20
      username: ${username}

集成mybatis配置

使用时可以集成mybatis,集成mybatis需引入下面包

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

配置增加开启驼峰命名规则映射

quarkus: 
  mybatis:
    map-underscore-to-camel-case: true

业务调用

定义接口,可以调用baseMapper里的默认方法,也可以自定义sql语句实现业务逻辑

@Mapper
public interface TestMapper extends BaseMapper<Test> {
 
   //自定义sql实现业务
   @Select("SELECT * from test where id=#{id}")
   List<Test> selectByid(int id);
}
@ApplicationScoped
public class TestService {

    @Inject
    TestMapper testMapper;

    public List<Test> getList(int id){
        List<Test> dataDates = testMapper.selectById(id);

        return dataDates;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值