2013-03-02 46 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); 
     } 
    } 
相关问题