JDBC-Teradata Connection Error

I tried to connect to the TEEDAT database via JDBC. I use jars 'terajdbc4.jar' and 'tdgssconfig.jar', but I get ClassNotFoundExceptionand NoClassDefFoundErrorfor something like com.ncr.teradata.jtdgss.TdgssManagernot found.

Please help me find a solution. I have provided my code snippet followed by an error log. The username and passwords are correct because they connect to the Teradata database through UNIX using this identifier.

public class HelloTeradataJDBC {


  public static void main(String[] args) throws Exception {

    String url="jdbc:teradata://10.10.***.**/DBS_PORT= 1025/DATABASE= ******/TMODE=ANSI,CHARSET=UTF8";

    try{
    Class.forName("com.ncr.teradata.TeraDriver");
    Connection conn=DriverManager.getConnection(url, "*****", "******");
    //Connection conn=DriverManager.getConnection(connurl, "javauser1", "password1");

    String query="select * from xi.san_emp";


    PreparedStatement stmt=conn.prepareStatement(query);
    ResultSet rs=stmt.executeQuery();
    while(rs.next()) {
        String col1=rs.getString(1);
        System.out.println("col1="+col1);
    }
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }
  }
}

Error:

Exception in thread "main" java.lang.NoClassDefFoundError: com/ncr/teradata/jtdgss/TdgssManager
    at com.ncr.teradata.TeraEncrypt.getTDgssVersion(TeraEncrypt.java:548)
    at com.ncr.teradata.jdbc_4.parcel.ConfigFeatureTdgss.<init>(ConfigFeatureTdgss.java:44)
    at com.ncr.teradata.jdbc_4.statemachine.InitDBConfigState.action(InitDBConfigState.java:68)
    at com.ncr.teradata.jdbc_4.statemachine.LogonController.run(LogonController.java:50)
    at com.ncr.teradata.jdbc_4.TDSession.<init>(TDSession.java:150)
    at com.ncr.teradata.jdbc_3.ifjdbc_4.TeraLocalConnection.<init>(TeraLocalConnection.java:89)
    at com.ncr.teradata.jdbc.ConnectionFactory.createConnection(ConnectionFactory.java:50)
    at com.ncr.teradata.TeraDriver.connect(TeraDriver.java:214)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:185)
    at HelloTeradataJDBC.main(HelloTeradataJDBC.java:15)
Caused by: java.lang.ClassNotFoundException: com.ncr.teradata.jtdgss.TdgssManager
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 11 more
+4
source share
1 answer

It will work. The driver name is com.teradata.jdbc.TeraDriver instead of com.ncr.teradata.TeraDriver, which, it seems to me, is dated.

Class.forName("com.teradata.jdbc.TeraDriver");
conn = DriverManager.getConnection("jdbc:teradata://"+servername+"/databasename="+this.username+",user="+this.username+",password="+this.password);
+2
source

Source: https://habr.com/ru/post/1530386/


All Articles