PostgreSQL JDBC 查询时的错误

      最近在使用Greenplum ,用greenplum_jdbc_5.1.4 驱动时偶然出现

[Pivotal][Greenplum JDBC Driver][Pivotal][Greenplum JDBC Driver](Internal Error) Message 1001 not found 异常。

一通查询所得资料甚少,开始一直认为多数据源切换时,连接没有自动重连问题,但是测试时通过断网等手段发现在连接断开时

的异常并不是org.springframework.jdbc.UncategorizedSQLException: StatementCallback; 由于Spring中

DatabaseDriver里面并没有Greenplum 的驱动定义,考虑更换驱动 POSTGRESQL来操作Greenplum 。依赖包如下:

<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.5</version>

测试过程中,又出现新的问题,当sql中入参与数据库中字段类型不符时:

org.postgresql.util.PSQLException: ERROR: operator does not exist: integer = character varying
No operator matches the given name and argument type(s). You might need to add explicit type casts.

而同样的sql在使用greenplum_jdbc_5.1.4 驱动执行时却是正常的。

虽说使用||''方式将字段与操作类型进行了统一解决bug,问题原因并没有深查。

以上提到的greenplum_jdbc_5.1.4 存在网盘

https://pan.baidu.com/s/1flRUVhzeKmAMaVr2TJr9uQ 
提取码:d4ts 

 

 

 

 

    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package com; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class TestJDBC {       private Connection con ;       private String user = "gpadmin" ;       private String password = "123456" ;       private String className = "com.pivotal.jdbc.GreenplumDriver" ;       private String url = "jdbc:pivotal:greenplum://172.20.4.161:5432;DatabaseName=testDB" ;          public static void main(String[] args) {              // TODO Auto-generated method stub             TestJDBC c = new TestJDBC();              c.Connect();              c.getCon();              c.closed();      }       public void Connect() {              try {                    Class. forName(className);                    System. out.println("加载数据库驱动成功!" );             } catch (ClassNotFoundException e ) {                    System. out.println("加载数据库驱动失败!" );                     e.printStackTrace();             }      }       /** 创建数据库连接 */       public Connection getCon() {              try {                     con = DriverManager. getConnection(url, user, password);                    System. out.println("创建数据库连接成功!" );             } catch (SQLException e ) {                    System. out.print(con );                    System. out.println("创建数据库连接失败!" );                     con = null;                     e.printStackTrace();             }              return con ;      }       public void closed() {              try {                     if (con != null) {                           con.close();                    }             } catch (SQLException e ) {                    System. out.println("关闭con对象失败!" );                     e.printStackTrace();             }      }   }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值