Reputation: 75
I have tried connecting to teredata DB through JDBC. I am using the jars 'terajdbc4.jar' and 'tdgssconfig.jar', but I am getting a ClassNotFoundException
and NoClassDefFoundError
for something kind of com.ncr.teradata.jtdgss.TdgssManager
is not found.
Please help me to find a solution. I have provided my code snippet followed by the error log. The user name and passwords are correct as connect to the teradata DB through UNIX using that ID.
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
Upvotes: 4
Views: 4203
Reputation: 11587
This will work. THe Driver name is com.teradata.jdbc.TeraDriver instead of com.ncr.teradata.TeraDriver which I believe is dated.
Class.forName("com.teradata.jdbc.TeraDriver");
conn = DriverManager.getConnection("jdbc:teradata://"+servername+"/databasename="+this.username+",user="+this.username+",password="+this.password);
Upvotes: 2