gpt4 book ai didi

java - 在 Java 中使用从一个类到另一个类的列表中的查询结果

转载 作者:行者123 更新时间:2023-11-29 18:35:14 26 4
gpt4 key购买 nike

我正在从类中的数据库中检索数据。我想使用该数据并对其进行处理,将其分成不同的部分(我有时间戳,并且会计算特定日期之间名称的频率)。我无法找到如何使用我在另一个类(class)中检索到的数据。这是我的检索源代码:

    package test;

import java.sql.DriverManager;
//import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
//import java.util.Arrays;
import java.util.List;

import javax.sql.rowset.CachedRowSet;
import javax.sql.rowset.RowSetProvider;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class EnterD {

private static String url = "url";
private static String user = "user";
private static String password = "pass" ;

private static String sqlQuery1 = "SELECT component_type, ctime FROM table;";

public static List<MyDataType> retrieveFromDB() throws SQLException {
List<MyDataType> dataList = new ArrayList<>();
try (Connection conn = (Connection) DriverManager.getConnection(url, user, password)) {
try (Statement stmt = (Statement) conn.createStatement()) {
try (CachedRowSet crs = RowSetProvider.newFactory().createCachedRowSet(); ) {
crs.setCommand(sqlQuery1);
crs.execute(conn);
conn.setAutoCommit(false);
while(crs.next()){
MyDataType dataType = new MyDataType();
dataType.setCpnType(crs.getString(1));
dataType.setCpnTimestamp(crs.getTimestamp(2));
dataList.add(dataType);
}
}
}
} catch (Exception e) {
e.printStackTrace(System.out);
}
return dataList;
}
public static void main(String[] args) throws SQLException {
retrieveFromDB();
}
}

最佳答案

  1. 如果您需要在主方法上处理列表,则只需创建一个列表变量,如下所示:List<MyDataType> listOfElements = retrieveFromDB(); .

  2. 如果您需要处理列表,但在其他类中,则转到测试包并创建一个新类,例如 MyListHandler

  3. 在 MyListHandler 中创建一个 List 类型的属性,如下所示: List<MyDataType> myList;

  4. 为 MyListHandler 创建构造函数

public MyListHandler(List<MyDataType> myList){
this.myList = myList;
}

  • 创建一些方法来处理 MyListHandler 中的列表]方法:

    公共(public)无效打印列表(){ for (MyDataType 项目: myList) { System.out.println(item); } }

    public void clearList(){
    System.out.println("My list size: " + myList.size());
    myList.clear();
    System.out.println("My list size after clear: " + myList.size());
    }
  • 最后在main方法中实例化MyListHandler:

  • EnterD 类:​​

       public static void main(String[] args) throws SQLException {
    List<MyDataType> listOfElements = retrieveFromDB();
    MyListHandler myListHandler = new MyListHandler(listOfElements);
    myListHandler.printList();
    myListHandler.clearList();
    }

    请参阅以下 MyListHandler 的完整示例:

    MyListHandler.class

    public class MyListHandler {

    List<MyDataType> myList;
    public MyListHandler(List<MyDataType> myList){
    this.myList = myList;
    }

    public void printList(){
    for (MyDataType item: myList) {
    System.out.println(item);
    }
    }

    public void clearList(){
    System.out.println("My list size: " + myList.size());
    myList.clear();
    System.out.println("My list size after clear: " + myList.size());
    }

    }

    问候。

    关于java - 在 Java 中使用从一个类到另一个类的列表中的查询结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45364504/

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