在springboot中使用jdbcTemplate(7)-hivejdbc
在springboot中使用jdbcTemplate
在springboot中使用jdbcTemplate(2)-多数据源
在springboot中使用jdbcTemplate(3)
在springboot中使用jdbcTemplate(4)
在springboot中使用jdbcTemplate(5)
在springboot中使用jdbcTemplate(6)
大家都在知道,Java原生的jdbc有很多冗余代码,spring-jdbc在此原生的jdbc基础上进行了包装,包装成了JdbcTemplate.
以往,我们都是用JdbcTemplate连接关系型数据库,那hive可以用JdbcTemplate吗?
答案是肯定的!
首先application.properties定义连接四要素
#hive库 spring.datasource.hive.username= spring.datasource.hive.password= spring.datasource.hive.driverClassName=org.apache.hive.jdbc.HiveDriver spring.datasource.hive.url=jdbc:hive2://host:10000/default?useUnicode=true&characterEncoding=utf8&useSSL=false
在pom文件加入相关的驱动jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>2.1.0</version> </dependency>
有时候在springboot项目中加入hive-jdbc会报错
Error creating bean with name 'tomcatServletWebServerFactory'
这是因为hive-jdbc里面的jetty跟springboot的jetty冲突了,需要解决jar包依赖问题,重新引入hive-jdbc的pom文件,排除冲突的jar
<dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>2.3.0</version> <exclusions> <exclusion> <groupId>org.eclipse.jetty.aggregate</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency>
备注:hive-jdbc的版本要与hive本身的版本匹配,太高会报错
Required field 'client_protocol' is unset!
创建HiveJdbcTemplate bean
@Configuration public class HiveConfig { @Value("${spring.datasource.hive.url}") String url; @Value("${spring.datasource.hive.username}") String username; @Value("${spring.datasource.hive.password}") String password; @Value("${spring.datasource.hive.driverClassName}") String driverClassName; @Bean(name = "hiveDataSource") @Qualifier(value = "hiveDataSource") public DataSource createDataSource() { return DataSourceBuilder.create().type(HikariDataSource.class) .driverClassName(driverClassName) .url(url) .username(username) .password(password) .build(); } @Bean(name = "hiveJdbcTemplate") public JdbcTemplate jdbcTemplate(@Qualifier("hiveDataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } }
好了,大功告成。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
2018-06-20 spring boot单元测试之RestTemplate(三)——api详解
2018-06-20 spring boot单元测试之RestTemplate(二)