gpt4 book ai didi

java - 无法返回值

转载 作者:行者123 更新时间:2023-12-01 06:01:25 25 4
gpt4 key购买 nike

我是 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com