method not support的问题,比较蛋疼。
由于springboot2.0以后引入了新的连接池,变成了hikaricp,网上查了一下这个连接池号称是java性能最好的连接池。
但是和hive-jdbc的集成不是很好,如果你的hive版本在2.0以上,不会出现这个问题,但是现在大部分的hive版本都是2.0以下的。
解决的办法。
1.小项目不使用连接池,直接
@Bean(name = "hiveJdbcTemplate") JdbcTemplate getHiveJdbcTemplate(){ DataSource hiveDataSource = new SimpleDriverDataSource(new HiveDriver(), hiveUrl,hiveUser , hivePassword); return new JdbcTemplate(hiveDataSource); }
2.替换hikaricp连接池,继续使用tomcat-jdbc
实际做法只需要把hikaricp的jar包不引入,然后单独引入tomcat-jdbc的jar包即可。
#选择数据库连接池 spring.datasource.hadoop.type=org.apache.tomcat.jdbc.pool.DataSource #数据库连接地址,端口号,连接名,设置编码格式 spring.datasource.hadoop.url = jdbc:hive2://*/security #这是hikaricp的格式 #spring.datasource.hadoop.jdbc-url = jdbc:hive2://*/security #用户名 spring.datasource.hadoop.username = deployop #密码 spring.datasource.hadoop.password = Paic1234 #数据库驱动 spring.datasource.hadoop.driver-class-name = org.apache.hive.jdbc.HiveDriver
配置文件不要忘了把spring.datasource.hadoop.jdbc-url改成spring.datasource.hadoop.url
我的springboot版本为2.0.2.RELEASE,hive-jdbc版本为1.1.0,tomcat-jdbc的版本为8.5.23
希望能对大家有所帮助