2013-05-08 66 views
1

我想連接一個java程序,我正在關於我在MS Access中創建的大學數據庫。使用java連接數據庫 - 驅動程序錯誤

我的代碼是這樣的:

package Uni; 
    import java.util.*; 
    import java.sql.*; 

    public class College { 
     static final String database_URL = "H:/CSCI 213/Labs/Lab 11 - 12/src/Uni/Uni.accdb"; 
     static Scanner input = new Scanner(System.in); 
     static Scanner in = new Scanner(System.in); 

     @SuppressWarnings("unused") 
     public static void main(String[] args) { 
      Connection connection = null; 
      Statement statement = null; 
      ResultSet resultset = null; 
      String name; 
      int age; 
      int id; 
      String choice = "y"; 

      while(choice.equalsIgnoreCase("y")) { 
     System.out.println("What Would you like to do"); 
     System.out.println("1- Insert"); 
     System.out.println("2- Update"); 
     System.out.println("3- Search"); 
     System.out.println("4- Delete"); 
     System.out.println("5- Exit"); 

     int x = input.nextInt(); 
     try { 
        connection = DriverManager.getConnection(database_URL); 
        //connection.commit(); 
        //statement = connection.createStatement(); 
        switch(x) { 
         case 1: 
         System.out.println("Enter the name:"); 
         name = input.nextLine(); 
         System.out.println("Enter the Age:"); 
         age = input.nextInt(); 
         //statement.executeQuery("INSERT INTO Database VALUES ('"+name+"','"+age+"')"); 
         Statement sta1 = connection.createStatement(); 
         sta1.executeQuery("INSERT INTO Database VALUES ('"+name+"','"+age+"')"); 
         sta1.close(); 
         System.out.println("Your ID is: "); 
         //statement.executeQuery("select ID from Database where Name='"+name+"';"); 
         Statement sta2 = connection.createStatement(); 
         sta2.executeQuery("select ID from Database where Name='"+name+"';"); 
         connection.commit(); 
         sta2.close(); 
         break; 

         case 2: 
         System.out.println("Enter the id of the person you'd like to update:"); 
         id = input.nextInt(); 
         System.out.println("Enter the name:"); 
         name = input.nextLine(); 
         System.out.println("Enter the Age:"); 
         age = input.nextInt(); 
         //statement.executeUpdate("UPDATE Database SET Age="+age+", Name='"+name+"' WHERE ID="+id+";"); 
         Statement sta3 = connection.createStatement(); 
         sta3.executeQuery("UPDATE Database SET Age="+age+", Name='"+name+"' WHERE ID="+id+";"); 
         connection.commit(); 
         sta3.close(); 
         break; 

        case 3: 
         System.out.println("Enter the Name of the person you'd like to search for:"); 
         name = input.nextLine(); 
         //statement.executeQuery("select Name, Age from Database where Name='"+name+"';"); 
         Statement sta4 = connection.createStatement(); 
         sta4.executeQuery("select Name, Age from Database where Name='"+name+"';"); 
         connection.commit(); 
         sta4.close(); 
         break; 

        case 4: 
         System.out.println("Enter the id of the person you'd like to delete:"); 
         id = input.nextInt(); 
         //statement.execute("DELETE FROM Database where ID='"+id+"';"); 
         Statement sta5 = connection.createStatement(); 
         sta5.executeQuery("DELETE FROM Database where ID='"+id+"';"); 
         connection.commit(); 
         sta5.close(); 
         break; 

        case 5: 
         System.out.println("Terminating"); 
         System.exit(0); 

        default: 
         System.out.println("Wrong Entry"); 
        } 

       } 

      catch (SQLException e) { 
       System.out.println("SQLException: "+e.getMessage()); 
      } 


      System.out.println("Would you like to try again ? (enter y for yes)"); 
      choice = in.nextLine(); 
      } 
    } 
    } 

現在確切的輸出如下

你想怎麼辦 1-插入 2-更新 3-搜索 4-刪除 5退出 SQLException:找不到合適的H:/ CSCI 213/Labs/Lab 11 - 12/src/Uni/Uni.accdb驅動程序 您想再試一次嗎? (輸入y代表是)

如何解決這個任何想法是非常讚賞

回答

0

H:/CSCI 213/Labs/Lab 11 - 12/src/Uni/Uni.accdb是一個文件的路徑,而不是一個有效的JDBC URL。

您需要爲特定數據庫獲取JDBC驅動程序JAR文件,並在運行程序時將其放入類路徑中,並使用正確的JDBC URL。 JDBC URL的準確外觀取決於您使用的數據庫和驅動程序(請參閱文檔)。

對於通過JDBC使用Microsoft Access數據庫,請參閱例如:How to connect Java to MS Access或搜索「Microsoft Access JDBC驅動程序」。

有關更多詳細信息,請參閱Oracle的JDBC Getting Started tutorial

相關問題