0
여기에 "path"변수의 데이터베이스 주소가 있고 "tb"는 데이터베이스의 테이블 이름입니다. 내가 오류를 다음있어이 코드를 실행하려고 할 때 나는() 함수 getExportedKeys를 사용하여 ResultSet 객체를 생성하려고 할 때 여기에 나는 테이블 Java를 사용하여 외래 키를 검색하는 중 오류가 발생했습니다.
Connection con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq="+path);
ResultSet rs = null;
DatabaseMetaData meta = con.getMetaData();
rs = meta.getExportedKeys(con.getCatalog(), null, "tb");
while (rs.next()) {
String fkTableName = rs.getString("FKTABLE_NAME");
String fkColumnName = rs.getString("FKCOLUMN_NAME");
int fkSequence = rs.getInt("KEY_SEQ");
System.out.println("getExportedKeys(): fkTableName="+fkTableName);
System.out.println("getExportedKeys(): fkColumnName="+fkColumnName);
System.out.println("getExportedKeys(): fkSequence="+fkSequence);
}
에서 외래 키 열 슈퍼 테이블을 검색하기 위해 노력했다.
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Driver does not support
this function
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
at sun.jdbc.odbc.JdbcOdbc.SQLForeignKeys(JdbcOdbc.java:3313)
at sun.jdbc.odbc.JdbcOdbcDatabaseMetaData.getExportedKeys(JdbcOdbcDataba
seMetaData.java:3139)
at Frm.actionPerformed(next.java:303)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
86)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
이것은 MySQL과 어떤 관련이 있습니까? 오래되지 않은 JDBC/ODBC 드라이버를 사용하고 있으며 MySQL이 아닌 MS Access를 사용하고 있습니다. –
죄송합니다.하지만 작동하지 않습니다. 무엇을 할 지 말해주십시오. – user1500872
그건 내 질문에 정말로 답하지 않습니다. 왜 MS Access를 사용하고 있기 때문에 질문의 제목과 태그에서 MySQL에 대해 이야기합니까? –