2013-03-02 78 views
2

好吧,我變得非常煩躁,因爲我意識到這很容易,但在這一點上,我不知道還有什麼要嘗試。該計劃簡單地應該創建一個存儲硬幣的名稱,數量和價值的硬幣表。我已經開始從命令行啓動程序,但沒有完成這項工作後,我將其更改爲在NetBeans中執行。我不斷收到相同的錯誤信息。我搜索瞭解決方案,並且找不到問題,因爲我的驅動程序類似乎是需要的。我目前使用的驅動程序爲com.mysql.jdbc.Driver。com.mysql.jdbc.Driver嘗試創建數據庫時拋出ClassNotFoundException

public class CoinDataBase { 

    static String file = "C:\\Users\\Dan\\Desktop\\database.properties.txt"; 

    public static void main(String[] args) throws SQLException, IOException, 
     ClassNotFoundException { 


    SimpleDataSource.init(file); 

    Connection conn = SimpleDataSource.getConnection(); 
    try 
    { 
     Statement stat = conn.createStatement(); 

     stat.execute("CREATE TABLE Coin (Name VARCHAR(12),Value " 
       + "DECIMAL(5,2),QTY DECIMAL(5,0),Value DECIMAL(5,2)" 
       + ",Total DECIMAL(5,2))"); 
     stat.execute("INSERT INTO Coin VALUES('Penny',.01,5,.05)"); 
     stat.execute("INSERT INTO Coin VALUES('Nickel',.05,2,.10)"); 
     stat.execute("INSERT INTO Coin VALUES('Dime',.10,3,.30)"); 
     stat.execute("INSERT INTO Coin VALUES('Quarter',.25,2,.50)"); 
     stat.execute("INSERT INTO Coin VALUES('Half Dollar',.50,3,1.50)"); 
     stat.execute("INSERT INTO Coin VALUES('Dollar',1.00,2,2.00)"); 

     ResultSet result = stat.executeQuery("SELECT * FROM Coin"); 
     result.next(); 
     System.out.println(result.getString("Name")); 
    } 
    finally 
    { 
     conn.close(); 
    } 
    } 
    } 

我的第二類...

class SimpleDataSource { 

    private static String url, username, password; 

    static void init(String fileName) throws IOException, ClassNotFoundException 
    { 
     Properties props = new Properties(); 
     FileInputStream in = new FileInputStream(fileName); 
     props.load(in); 

     String driver = props.getProperty("jdbc.driver"); 
     url = props.getProperty("jdbc.url"); 
     username = props.getProperty("jdbc.username"); 
     if (username == null) username = ""; 
     password = props.getProperty("jdbc,password"); 
     if (password == null) password = ""; 
     if (driver != null) 
     Class.forName(driver); 
    } 

    static Connection getConnection() throws SQLException{ 
    return DriverManager.getConnection(url, username, password); 
    } 
    } 

和錯誤消息在全:

Exception in thread "main" java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:186) 
    at coindatabase.SimpleDataSource.init(SimpleDataSource.java:28) 
    at coindatabase.CoinDataBase.main(CoinDataBase.java:20) 
Java Result: 1 

我真的很感激任何幫助。我不知道我哪裏錯了。我可以通過瀏覽NetBeans中的服務來連接和創建數據庫,所以我認爲它不配置錯誤。

+0

確保ojdbc6.jar是在你的項目屬性運行時類路徑:http://netbeans.org/kb/docs/java/project-setup.html – 2013-09-13 21:33:08

回答

2

1)確保oracle.jar是在項目的運行類路徑:

http://netbeans.org/kb/docs/java/project-setup.html

2)這是值得嘗試oracle.jdbc.Driver.OracleDriver

「希望幫助

+0

好吧,這確實幫助了一些,因爲我現在越來越一批新的錯誤消息。我將它在運行時類路徑中更改爲mysql.jar,因爲它是我正在使用的驅動程序。該驅動程序也列爲com.mysql.jdbc.Driver。我之前一直在修改oracle,但那個運行時類路徑並沒有改變,所以我得到了同樣的信息。我會更新這篇文章,以免造成混淆。 – 2013-03-02 05:56:13

+0

好吧,它現在正在工作。在運行時添加類路徑是什麼。我已經爲該網站添加了書籤,以備將來使用。我得到的另一個錯誤只是一個簡單的重複列標題,可能是因爲剪切和粘貼過多。非常感謝你的幫助。 – 2013-03-02 06:44:06

0

什麼工作我嘗試在Ubuntu上使用Eclipse連接到Postgresql DB(javaSE 1.6)時發生同樣的錯誤。我去了Eclipse - > Project - > Proprieties - > Java Build Path - > Libraries - >添加外部jar並添加了postgresql-9.3-1100.jdbc4.jar從http://jdbc.postgresql.org/download.html

Connection con = null; 
    Statement st = null; 
    ResultSet rs = null; 


    String url = "jdbc:postgresql://localhost:5432/unnamed_db"; 
    String user = "postgres"; 
    String password = "*"; 

    try { 
     con = DriverManager.getConnection(url, user, password); 
     st = con.createStatement(); 
     rs = st.executeQuery("select * from table;"); 

     if (rs.next()) { 
      System.out.println(rs.getString(1)); 
     } 

    } catch (SQLException ex) { 
     Logger lgr = Logger.getLogger(Version.class.getName()); 
     lgr.log(Level.SEVERE, ex.getMessage(), ex); 

    } finally { 
     try { 
      if (rs != null) { 
       rs.close(); 
      } 
      if (st != null) { 
       st.close(); 
      } 
      if (con != null) { 
       con.close(); 
      } 

     } catch (SQLException ex) { 
      Logger lgr = Logger.getLogger(Version.class.getName()); 
      lgr.log(Level.WARNING, ex.getMessage(), ex); 
     } 
    } 
相關問題