如何将两个不同的excel文件作为数据库连接到java中的同一台服务器上?

我有两个Excel数据库连接使用两个不同的连接variablescon1和con2.I想通过匹配两个数据库中的列从我的第二个数据库检索数据。如何在java中这样做?我已经尝试了这么多。 我运行此代码时得到NullPointerException。

try { sql10 = "select [Data$].Species,[Plot$].District,[Plot$].State from [Plot$],[Data$] where [Data$].Plot_ID = ? "; pst10=con.prepareStatement(sql10); pst10.setString(1, tmp1); rs14=pst10.executeQuery(); while(rs14.next()) { String st=rs14.getString("State"); String dis=rs14.getString("District"); String sp=rs14.getString("Species"); System.out.println(sp); sql11="select * from [database$] where State = st and District = dis and Species = sp"; pst11=con1.prepareStatement(sql11); pst11.setString(1, tmp1); rs15=pst11.executeQuery(); while(rs15.next()) { System.out.println(rs15.getString("Local_equation")); } } 

堆栈跟踪是:

 java.lang.NullPointerException at sun.jdbc.odbc.JdbcOdbcPreparedStatement.clearParameter(JdbcOdbcPreparedStatement.java:1022) at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setChar(JdbcOdbcPreparedStatement.java:3056) at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setString(JdbcOdbcPreparedStatement.java:765) at biomasscal.GLA14.buttonCALCULATEActionPerformed(GLA14.java:599) at biomasscal.GLA14.access$400(GLA14.java:60) at biomasscal.GLA14$5.actionPerformed(GLA14.java:279) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6504) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6269) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4860) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) 

当你查询你的第二个Excel数据库时,你需要传递第一个查询中的variables作为参数(就像你之前做的那样):

  sql11="select * from [database$] where State = ? and District = ? and Species = ?"; pst11=con1.prepareStatement(sql11); pst11.setString(1, st); pst11.setString(2, dis); pst11.setString(3, sp); rs15=pst11.executeQuery(); 

但是,看不到完整的堆栈跟踪,我不能确定。