MS Access通过Java代码返回空记录集(MS Access returning empty recordset through Java code)
我试图检索一个简单的查询结果来检查我的连接是否正常工作。 连接成功,但只返回空记录集。 有问题的行标有评论
以下是我的代码
package ActualProject; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.*; import net.ucanaccess.jdbc.*; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class MainClass { static String strURL = null; public MainClass() { } public static void main(String[] args) { String strUserDir = System.getProperty("user.dir"); String strProjectPath = strUserDir.replaceAll("ActualProject", ""); String strDataPath = strProjectPath + "Data\\Data.xlsx"; String TestCaseDescription = null; String strTestCaseName = null; String TestCaseSheetPath = strProjectPath + "ActualProject\\TestCaseSheet\\TestCaseSheet.mdb"; //Code to read TestCaseSheet try { Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); System.setProperty("DUCANACCESS_HOME","C:/Users/mindurka/ Downloads/Selenium3.4/UCanAccess-4.0.2-bin/UCanAccess-4.0.2-bin"); String connURL = "jdbc:ucanaccess://"+TestCaseSheetPath; Connection objAccessCon = DriverManager.getConnection(connURL); DriverManager.getConnection(connURL1); Statement objRS = objAccessCon.createStatement(); // String strEnvQuery = "Select * from Env where Use = 'No'"; String strEnvQuery = "Select * from Env"; objRS.executeQuery(strEnvQuery); ResultSet objEnvRS = objRS.getResultSet(); while(objEnvRS.next()) { strURL = objEnvRS.getString("URL"); String strQuery = "Select * from TestCaseSheet where Execute = 'Yes'"; objRS.execute(strQuery); ResultSet RS = objRS.getResultSet(); if(RS != null) { while (RS.next()) { TestCaseDescription = RS.getString("TestCaseDescription"); strTestCaseName = RS.getString("TestCaseName"); FileInputStream objFIS = new FileInputStream(strDataPath); XSSFWorkbook objDataWB = new XSSFWorkbook(objFIS); Sheet objActiveSheet = objDataWB.getSheet("RegDetails"); for(int intRowCounter = 0 ; intRowCounter < objActiveSheet.getLastRowNum(); intRowCounter++) { Row objRow = objActiveSheet.getRow(intRowCounter); for(int intColumnCounter = 0; intColumnCounter < objRow.getLastCellNum(); intColumnCounter++) { System.out.println("Row=="+ intRowCounter + "Column =="+ intColumnCounter); } } objActiveSheet= null; //objRow = null; objRS.close(); RS.close(); objAccessCon.close(); } } else { System.out.println("No testcases selected for execution"); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ } } }
Java版本:8 Eclipse版本:Neon MS Access版本:2007
请让我知道是否需要其他细节。 编辑评论:添加MSAccessScreenshot文件的屏幕截图
I am trying to retrieve results of a simple query to check if my connection is working or not. The connection is successful but there is only empty recordset returned. The problematic line is marked by a comment
Below is my code
package ActualProject; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.*; import net.ucanaccess.jdbc.*; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class MainClass { static String strURL = null; public MainClass() { } public static void main(String[] args) { String strUserDir = System.getProperty("user.dir"); String strProjectPath = strUserDir.replaceAll("ActualProject", ""); String strDataPath = strProjectPath + "Data\\Data.xlsx"; String TestCaseDescription = null; String strTestCaseName = null; String TestCaseSheetPath = strProjectPath + "ActualProject\\TestCaseSheet\\TestCaseSheet.mdb"; //Code to read TestCaseSheet try { Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); System.setProperty("DUCANACCESS_HOME","C:/Users/mindurka/ Downloads/Selenium3.4/UCanAccess-4.0.2-bin/UCanAccess-4.0.2-bin"); String connURL = "jdbc:ucanaccess://"+TestCaseSheetPath; Connection objAccessCon = DriverManager.getConnection(connURL); DriverManager.getConnection(connURL1); Statement objRS = objAccessCon.createStatement(); // String strEnvQuery = "Select * from Env where Use = 'No'"; String strEnvQuery = "Select * from Env"; objRS.executeQuery(strEnvQuery); ResultSet objEnvRS = objRS.getResultSet(); while(objEnvRS.next()) { strURL = objEnvRS.getString("URL"); String strQuery = "Select * from TestCaseSheet where Execute = 'Yes'"; objRS.execute(strQuery); ResultSet RS = objRS.getResultSet(); if(RS != null) { while (RS.next()) { TestCaseDescription = RS.getString("TestCaseDescription"); strTestCaseName = RS.getString("TestCaseName"); FileInputStream objFIS = new FileInputStream(strDataPath); XSSFWorkbook objDataWB = new XSSFWorkbook(objFIS); Sheet objActiveSheet = objDataWB.getSheet("RegDetails"); for(int intRowCounter = 0 ; intRowCounter < objActiveSheet.getLastRowNum(); intRowCounter++) { Row objRow = objActiveSheet.getRow(intRowCounter); for(int intColumnCounter = 0; intColumnCounter < objRow.getLastCellNum(); intColumnCounter++) { System.out.println("Row=="+ intRowCounter + "Column =="+ intColumnCounter); } } objActiveSheet= null; //objRow = null; objRS.close(); RS.close(); objAccessCon.close(); } } else { System.out.println("No testcases selected for execution"); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ } } }
Java version: 8 Eclipse version: Neon MS Access version: 2007
Please let me know if any other details are required. Edited comment: Adding the screenshot of the fileMSAccessScreenshot
原文:https://stackoverflow.com/questions/43897194
最满意答案
相关问答
更多-
Perl模块的用法(Perl Module usage)[2022-04-04]
试试package My::ModuleTest; 在你的文件ModuleTest.pm - 你应该使用全名。 Try package My::ModuleTest; in your file ModuleTest.pm - you should use the full name. -
跨平台unicode支持(cross platform unicode support)[2022-06-13]
看看这个: http : //www.icu-project.org/ Have a look at this: http://www.icu-project.org/ -
C ++中的跨平台GUI窗口(Cross platform GUI window in C++)[2022-04-17]
为Tk尝试C ++绑定库。 它非常轻巧简单。 Try C++ bindings library for Tk. It's a very lightweight and simple. -
我会建议Wx 。 它是为跨平台使用而设计的元工具包,并将使用目标平台上提供的任何底层工具包。 I would suggest Wx. It is a meta-toolkit designed for cross platform usage and will use whatever underlying toolkit is available on your target platform.
-
看看AnyEvent::HTTP 。 根据CPAN测试人员平台矩阵,它可以在Windows上编译和工作。 以下是异步http_post ( http_post )的简单例子。 use 5.012; use warnings; use AnyEvent::HTTP; my $cv = AnyEvent->condvar; my @urls = ( [google => 'http://google.com', 'some body'], [yahoo => 'http://yahoo.c ...
-
跨平台的GUI [关闭](GUI for cross platform [closed])[2023-06-29]
如果您使用的是Java,我建议您使用Swing或Java FX:既基于Java又基于平台。 If you are using Java, I suggest you to use Swing or Java FX: both Java-based and of course, platform-independent.. -
如果 , $^O : use if $^O eq 'MSWin32', Win32::Console::ANSI::; 或者, use Win32::Console::ANSI (); 相当于 BEGIN { require Win32::Console::ANSI; } 所以你也可以使用 BEGIN { require Win32::Console::ANSI if $^O eq 'MSWin32'; } if, $^O: use if $^O eq 'MSWin3 ...
-
我要建议tkinter。 它是python的一部分,非常易于使用,当然也是非常跨平台的。 许多人基于多年的知识解雇tkinter,但是tkinter已经发展了很多。 有人说它看起来很难看,但通常功能和易用性更重要。 在我看来,Tkinter绝对是最好的实用选择。 然而,话虽如此,却没有“最好的”。 Qt,Wx和Tk都很好,几乎都是一样的,并且都是或多或少平等的跨平台。 挑选其中任何一个,不要回头看。 一旦你获得了一个tnem的经验,你将能够自己决定哪一个是“最好的” I'm going to suggest ...
-
我建议你使用SWT - Standard Widget Toolkit 。 它直接与操作系统交互,因此您可以拥有原生外观而无需任何附加层(例如在SWING中) I suggest you to use SWT - Standard Widget Toolkit. It interacts directly with the operating system, so you can have the native look and feel without any additional layer (like ...
-
CPAN提供了一系列工具,您可以在安装之前确定模块的有用性。 不幸的是,IO :: Compress :: Gzip是一个不太理想的例子。 当您访问模块的metacpan页面时,左列中有一个工具列表。 有趣的是 测试结果:这将带您进入一个页面,其中显示了不同操作系统和不同perl版本上的测试套件的结果。 不幸的是,这项服务在撰写本文时并未回应我的要求。 错误:这是该模块的bugtracker链接。 您可以浏览打开的错误列表以查找可能的交易撮合者。 如果您发现问题,可以在此处报告。 评论: Perl社区的一些 ...