通过JdbcTemplate对kudu的查询操作,这是springboot上集成的。
有问题,可以提提意见啥的哈,一起交流,我是程序员s。
1.导入相应的maven
impalajdbc41 下载地址:
https://download.csdn.net/download/u012448904/10663555
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!--连接-->
<dependency>
<groupId>owinfo</groupId>
<artifactId>impalajdbc41</artifactId>
<version>1.0.0</version>
</dependency>
<!--驱动-->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.2.1</version>
</dependency>
2.application.yml(我在这配置的)
impala:
url: jdbc:impala://192.168.1.1 //ip
port: 21050 //端口
schema: h2kyd_db //数据库
user: YD2000
password: 1qaz!QAZ
driverClass: org.apache.hive.jdbc.HiveDriver //驱动
3.连接
package com.xdl.service.entity;
import com.cloudera.impala.jdbc41.DataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
@Configuration
public class ImpalaConfig {
@Value("${impala.url}")
private String impalaUrl;
@Value("${impala.port}")
private String impalaPort;
@Value("${impala.schema}")
private String impalaScheme;
@Value("${impala.user}")
private String impalaUser;
@Value("${impala.password}")
private String impalaPassword;
@Bean(name = {"impalaJdbcTemplate"})
public JdbcTemplate getImpalaJdbcTemplate() {
String connUrl = this.impalaUrl + ":" + this.impalaPort + "/" + this.impalaScheme + ";auth=noSasl";
DataSource dataSource = new DataSource();
dataSource.setURL(connUrl);
return new JdbcTemplate(dataSource);
}
}
4.在启动类添加注解
@SpringBootApplication
//告诉Spring Boot开始添加基于类路径设置,其他bean和各种属性设置的bean。
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class, args);
}
}
5.测试(这是一个查询的)
package owinfo.bigdatasetvicetwo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import owinfo.bigdatasetvicetwo.common.ImpalaConfig;
import java.sql.*;
import java.util.List;
import java.util.Map;
@RunWith(SpringRunner.class)
@SpringBootTest
public class BigdataSetviceTwoApplicationTests {
@Autowired
private JdbcTemplate impalaJdbcTemplate;
@Test
public void JdbcTemplate01(){
String sql="SELECT * FROM arrival_head";
List<Map<String, Object>> maps = impalaJdbcTemplate.queryForList(sql);
for (Map<String, Object> map : maps) {
System.out.println(map.toString());
}
}
}
6.结果