2014-03-06 131 views
4

我試圖通過JDBC連接到teredata DB。我正在使用罐'terajdbc4.jar'和'tdgssconfig.jar',但我得到一個ClassNotFoundExceptionNoClassDefFoundError某種com.ncr.teradata.jtdgss.TdgssManager未找到。JDBC-Teradata連接錯誤

請幫我找到解決辦法。我提供了我的代碼片段,後面跟着錯誤日誌。 使用該ID通過UNIX連接到teradata數據庫的用戶名和密碼是正確的。

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(); 
    } 
    } 
} 

錯誤:

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 

回答

2

這將工作。驅動程序名稱是com.teradata.jdbc.TeraDriver而不是com.ncr.teradata.TeraDriver,我相信這是過時的。

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

有指定爲我使用terajdbc4.jar罐子「com.teradata.jdbc.TeraDriver」沒有這樣的包和類。 請寄出截至目前爲止的罐子的鏈接。 缺少的類是'com.ncr.teradata.jtdgss.TdgssManager'。 – Tirthankar

+0

它在這裏可用。 http://downloads.teradata.com/download/connectivity/jdbc-driver –

+0

非常感謝.... – Tirthankar