본문 바로가기
MySql

MySQL mysql 테이블에서 arraylist로 요소 가져 오기

by 베이스 공부 2021. 2. 11.
반응형

다음과 같은 ArrayList가 있습니다.

[
1 2011-05-10  1  22.0, 
2 2011-05-10  2  5555.0, 
3 2011-05-11  3  123.0, 
4 2011-05-11  2  212.0, 
5 2011-05-30  1  3000.0, 
6 2011-05-30  1  30.0, 
7 2011-06-06  1  307.0, 
8 2011-06-06  1  307.0, 
9 2011-06-06  1  307.0, 
10 2011-06-08  2  3070.0, 
11 2011-06-03  2  356.0, 
12 2011-05-10  2  100.0, 
13 2011-05-30  1  3500.0, 
14 2011-05-10  3  1000.0, 
15 2011-05-10  3  1000.0, 
16 2011-05-07  1  5000.0, 
17 2011-05-07  4  500.0, 
18 2011-08-07  3  1500.0, 
19 2011-08-08  6  11500.0, 
20 2011-08-08  4  11500.0, 
21 2011-08-08  7  11500.0, 
22 2011-06-07  8  3000.0]

이 arraylist를 얻는 방법은 다음과 같습니다.

@Override
    public ArrayList<Expenses> getExpenses() {
        ArrayList<Expenses> expenses = new ArrayList<Expenses>();
        try {
            Statement stmt = myConnection.createStatement();
            ResultSet result = stmt.executeQuery("SELECT * FROM expenses");
            while(result.next()){

                Expenses expense = new Expenses();
                expense.setNum(result.getInt(1));
                expense.setPayment(result.getString(2));
                expense.setReceiver(result.getInt(3));
                expense.setValue(result.getDouble(4));

                expenses.add(expense);

                }
        }
            catch (SQLException e){
                 System.out.println(e.getMessage());
             }
        return expenses;
    }

하지만 내가 원하는 것은 배열의 각 요소가 테이블의 줄이 아니도록 배열 목록 (지금 내가 가지고있는 것)이 아니지만 테이블의 모든 개별 요소는 배열의 요소 여야합니다 ([1, 2011-05 -10, 1, 22.0, 2, 2011-05-10, 2, 5555.0, 3, 2011-05-11, 3, 123.0,]. 누구든지 도와 줄 수 있습니까?

 

해결 방법

 

다른 유형의 ArrayList 요소에 추가 할 수있는 유일한 방법은 일반 객체로 처리하는 것입니다. 그러나 이미 가지고있는 코드는 훨씬 우수합니다.

@Override
public ArrayList<Object> getExpenses() {
    ArrayList<Object> expenses = new ArrayList<Object>();
    try {
        Statement stmt = myConnection.createStatement();
        ResultSet result = stmt.executeQuery("SELECT * FROM expenses");
        while(result.next()) {

            expenses.add(new Integer(result.getInt(1)));

            expenses.add(result.getString(2));
            expenses.add(new Integer(result.getInt(3)));
            expenses.add(result.getDouble(4));
        }
    }
    catch (SQLException e) {
        System.out.println(e.getMessage());
    }
    return expenses;
}

 

참조 페이지 https://stackoverflow.com/questions/10595011

 

 

반응형

댓글