java - 无法返回值

标签 java spring

我是 Spring 的新手。这是我的代码,用于从 Access DB 文件返回值,我需要在返回中捕获响应。

我用不同的方式尝试过,但没有什么喜欢它。

无法捕获以下代码输出的返回值。

我正在我的 Jdeveloper 中运行它。

任何想法都会非常感激。

    package accessdatatoebs;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class AccessClass {
        public AccessClass() {
          super();
        }

        public static void main(String[] args) {

            // variables
            Connection connection = null;
            Statement statement = null;
            ResultSet resultSet = null;

            // Step 1: Loading or 
            // registering Oracle JDBC driver class
            try {
                Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
            }
            catch(ClassNotFoundException cnfex) {
                System.out.println("Problem in loading"
                        + " MS Access JDBC driver");
                cnfex.printStackTrace();
            }

            // Step 2: Opening database connection

                try {

                           String msAccDB = "G:\\RMMDB\\RM.mdb";
                            String dbURL = "jdbc:ucanaccess://" +msAccDB; 

                // Step 2.A: Create and 
                // get connection using DriverManager class
                connection = DriverManager.getConnection(dbURL); 

                // Step 2.B: Creating JDBC Statement 
                statement = connection.createStatement();

                // Step 2.C: Executing SQL and
                // retrieve data into ResultSet
                resultSet = statement
                        .executeQuery("SELECT * FROM tbl_Materials");

               // System.out.println("ID\tName\t\t\tAge\tMatches");
               System.out.println("Material\tAccount");
                System.out.println("====\t========");

                // processing returned data and printing into console
                while(resultSet.next()) {
                    System.out.println(resultSet.getInt(1) + "\t" + 
                            resultSet.getString(2) + "\t" + 
                            resultSet.getString(3) + "\t" +
                            resultSet.getString(4));
                }
            }

            catch(SQLException sqlex){
                sqlex.printStackTrace();
            }
            finally {
                // Step 3: Closing database connection
                try {
                    if(null != connection) {

                        // cleanup resources, once after processing
                        resultSet.close();
                        statement.close();

                        // and then finally close connection
                        connection.close();
                    }
                }
                catch (SQLException sqlex) {
                    sqlex.printStackTrace();
                }
            }
        return resultSet; 
        }
    }

最佳答案

从这里您可以捕获结果并以列表形式返回,

我已将每个新添加的代码解释为注释

public class AccessClass {
      public AccessClass() {
        super();
      }

      public static void main(String[] args) {
//and In here I am trying to call Static method of AccessClass and Stream it 
          AccessClass.getResutFromDB().stream().forEach(result->System.out.println(result));

            // above line I used to java 8 stream api 
   // in here you can use simple method to do it      
  //for (Integer integer : result) {
 // System.out.println("result from databse  "+integer);
//}
      }
// Added separated method  and It return Integer List
      public static List<Integer> getResutFromDB() {
// you can see i have declared integer list
          List<Integer> addIntegerResult=new ArrayList<>();

          // variables
          Connection connection = null;
          Statement statement = null;
          ResultSet resultSet = null;

          // Step 1: Loading or 
          // registering Oracle JDBC driver class
          try {
              Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
          }
          catch(ClassNotFoundException cnfex) {
              System.out.println("Problem in loading"
                      + " MS Access JDBC driver");
              cnfex.printStackTrace();
          }

          // Step 2: Opening database connection

              try {

                         String msAccDB = "G:\\RMMDB\\RM.mdb";
                          String dbURL = "jdbc:ucanaccess://" +msAccDB; 

              // Step 2.A: Create and 
              // get connection using DriverManager class
              connection = DriverManager.getConnection(dbURL); 

              // Step 2.B: Creating JDBC Statement 
              statement = connection.createStatement();

              // Step 2.C: Executing SQL and
              // retrieve data into ResultSet
              resultSet = statement
                      .executeQuery("SELECT * FROM tbl_Materials");

             // System.out.println("ID\tName\t\t\tAge\tMatches");
             System.out.println("Material\tAccount");
              System.out.println("====\t========");

              // processing returned data and printing into console
              while(resultSet.next()) {
// in here I have catch the result  and adding  to integer result to Integer List
                  addIntegerResult.add(resultSet.getInt(1));
                  addIntegerResult.add(resultSet.getInt(2));
                  addIntegerResult.add(resultSet.getInt(3));
                  addIntegerResult.add(resultSet.getInt(4));


              }

          }

          catch(SQLException sqlex){
              sqlex.printStackTrace();
          }
          finally {
              // Step 3: Closing database connection
              try {
                  if(null != connection) {

                      // cleanup resources, once after processing
                      resultSet.close();
                      statement.close();

                      // and then finally close connection
                      connection.close();
                  }
              }
              catch (SQLException sqlex) {
                  sqlex.printStackTrace();
              }
          }
//In here I am trying to return as List
      return addIntegerResult; 
      }

  }

关于java - 无法返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57871446/

相关文章:

java - 让 Eclipse 识别导入

java - 如何使用自定义名称和信息创建 MYSQL 备份

java - Guava: Iterables.frequency(Iterable<T>, Predicate<T>)

java - Netty 处理程序方法是否总是从单个执行程序调用?

java - 简单的 XML 框架 : XPath matching based on attribute value

java - 如何在 Spring 中为 Autowiring 指定默认 bean?

java - 使用 Spring MVC 提供静态内容并渲染 JSP

java - 通过多重部署和单独模式进行 Multi-Tenancy 的优缺点

java - 基于输入的二维数组大小

java - 使用 Heroku 在本地部署 Spring Boot 应用程序时出现异常