1

私はnetbeansを使用していますが、私のコンピューターでコードをコンパイルすることはできません。友人のコンピューターで動作します

そして、データベースにMicrosoft Access 2007を使用しています。Windows 7 64ビットを使用しています。ここにエラーがありますが、それはドライバーエラーですか?

実行: 2012 年 12 月 19 日 7:26:55 PM DBConnect SEVERE: null java.sql.SQLException: [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、sun.jdbc.odbc.JdbcOdbc.createSQLException で指定されたデフォルト ドライバがありません(JdbcOdbc.java:6956) で sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) で sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072) で sun.jdbc.odbc.JdbcOdbcConnection で。初期化(JdbcOdbcConnection.java:323) で sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) で java.sql.DriverManager.getConnection(DriverManager.java:579) で java.sql.DriverManager.getConnection(DriverManager) .java:243) で DBConnect.(DBConnect.java:18) で LoginForm.(LoginForm.java:31) で MainForm.(MainForm.java:23) で MainForm$10.run(MainForm.java:265) で Java. awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) で java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721) で java.awt.EventQueue.access$200(EventQueue.java:103) で java.awt.EventQueue$3.run(EventQueue) .java:682) で java.awt.EventQueue$3.run(EventQueue.java:680) で java.security.AccessController.doPrivileged(Native Method) で java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) でjava.awt.EventQueue.dispatchEvent(EventQueue.java:691) で java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) で java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) で java.awt.EventDispatchThread .pumpEventsForHierarchy(EventDispatchThread.java:151) で java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) で java.awt.java.awt.EventDispatchThread.run(EventDispatchThread.java:97) の EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

2012 年 12 月 19 日 7:26:55 PM DBConnect SEVERE: null java.sql.SQLException: [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc で指定されたデフォルト ドライバーがありません.java:6956) で sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113) で sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3072) で sun.jdbc.odbc.JdbcOdbcConnection.initialize( JdbcOdbcConnection.java:323) で sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174) で java.sql.DriverManager.getConnection(DriverManager.java:579) で java.sql.DriverManager.getConnection(DriverManager.java) で:243) で DBConnect.(DBConnect.java:18) で MasterEmployee.(MasterEmployee.java:33) で MainForm.(MainForm.java:24) で MainForm$10.run(MainForm.java:265) で java.awt. event.InvocationEvent.dispatch(InvocationEvent.java:251) で java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721) で java.awt.EventQueue.access$200(EventQueue.java:103) で java.awt.EventQueue$3.run(EventQueue) .java:682) で java.awt.EventQueue$3.run(EventQueue.java:680) で java.security.AccessController.doPrivileged(Native Method) で java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) でjava.awt.EventQueue.dispatchEvent(EventQueue.java:691) で java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) で java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) で java.awt.EventDispatchThread .pumpEventsForHierarchy(EventDispatchThread.java:151) で java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) で java.awt.java.awt.EventDispatchThread.run(EventDispatchThread.java:97) の EventDispatchThread.pumpEvents(EventDispatchThread.java:139)

スレッド "AWT-EventQueue-0" での例外 java.lang.NullPointerException at DBConnect.query(DBConnect.java:28) at MasterEmployee.(MasterEmployee.java:35) at MainForm.(MainForm.java:24) at MainForm$10. (MainForm.java:265) で java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) で java.awt.EventQueue.dispatchEventImpl(EventQueue.java:721) で java.awt.EventQueue.access$200( EventQueue.java:103) で java.awt.EventQueue$3.run(EventQueue.java:682) で java.awt.EventQueue$3.run(EventQueue.java:680) で java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) で java.awt.EventQueue.dispatchEvent(EventQueue.java:691) で java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244) で java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163) で java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) で java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147) でjava.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139) at java.awt.EventDispatchThread.run(EventDispatchThread.java:97) ビルド成功 (合計時間: 2 秒)run(EventDispatchThread.java:97) BUILD SUCCESSFUL (合計時間: 2 秒)run(EventDispatchThread.java:97) BUILD SUCCESSFUL (合計時間: 2 秒)

4

1 に答える 1

0

少し前に、.accdb データベースで同じ問題が発生しました。Java 6 は .mdb 形式をかなりうまくサポートしているように見えますが、.accdb ファイル形式はそれほどうまくサポートしていません。または、少なくとも Windows に MS-Access Data Connectivity Components をインストールして動作させる必要があります。

これが、あなたのコンピューターではコンパイルされず、友達のコンピューターではコンパイルされる原因である可能性があります。

とにかく、私はこれを MSDN で見つけました。

class MyConnection 
{
  public static Connection getConnection() throws Exception 
  {
   Driver d = (Driver)Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
   Connection c = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver   (*.mdb, *.accdb)};DBQ=*.accdb");
return c;
}

これを機能させるには、Microsoft Web サイトから「MS-Access Data Connectivity Components」をダウンロードしてインストールする必要があります。

于 2012-12-21T17:22:09.390 に答える