JAVA:JDBC-ODBC Bridge

JAVA:JDBC-ODBC Bridge

הגרסא שלי היא j2sdk1.4.2_04 אני מקבל שגיאה: Exception in thread "main" java.lang.NoClassDefFoundError נראה לי שחסר לי רכיב כלשהו, מאיפה בדיוק אני מוריד אותו? import java.sql.*; public class CreateCoffees { public static void main(String args[]) { String url = "jdbc:eek:dbc:test;UID=Admin"; Connection con; String createString; createString = "create table COFFEES " + "(COF_NAME VARCHAR(32), " + "SUP_ID INTEGER, " + "PRICE FLOAT, " + "SALES INTEGER, " + "TOTAL INTEGER)"; Statement stmt; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage()); } try { con = DriverManager.getConnection(url, "Admin", ""); stmt = con.createStatement(); stmt.executeUpdate(createString); stmt.close(); con.close(); } catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); } } }
 

voguemaster

New member
הורדת דרייבר ODBC ?

שים לב לשורה הבאה:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");​
פה אתה בעצם מבקש לטעון את JdbcOdbcDriver בכדי להיות מסוגל לדבר עם משהו שיודע לדבר ODBC. בד"כ כשאתה מקבל את השגיאה NoClassDefFoundError זה אומר שהוא לא מצא את המחלקה שאתה רוצה לטעון (זה נכון גם באופן כללי, לא רק במחלקות שנטענות ע"י Class.forName). מה מכיל ה-CLASSPATH שלך ? אתה צריך לכוון אותו בהתאם. אם המחלקה נמצאת בתוך JAR אתה צריך נתיב אל ה-JAR עצמו. הנה דוגמא עבור PostgreSQL:
Class.forName("org.postgresql.Driver");​
כאשר ה-CLASSPATH שלי הוא:
.:/usr/share/java:/usr/share/java/postgresql.jar​
עבור המקרה הזה כמובן. הנתיב הוא כל המחלקות בספריה הנוכחית, הנתיב אל ה-JAR שמכיל את הדרייבר JDBC של PostgreSQL ואז ה-JAR עצמו (חשוב במידה וזה אכן JAR אצלך). בקיצור, כוון את ה-CLASSPATH בנאדם
 
זאת הבעיה

שאני לא יודע לאיפה לכוון את ה classpath. אני עובד במערכת הפעלה windowsXP. כתבתי: set CLASSPATH=E:\j2sdk1.4.2_04\jre\lib\rt.jar אבל זה לא עזר וקיבלתי את אותה שגיאה. אני גם לא יודע מאיפה להוריד את הדרייבר של odbc-jdbc ואיך להתקין אותו כי לפי התיעוד כתוב שהוא בא עם java עצמה. אני אנסה להוריד javabuilder או IDE אחר. חבל, כי רציתי לדעת איך לעשות את זה בשורת הפקודה.
 
למעלה