강서구사람
20
2019-05-16 10:03:17
9
185

자바 db 배열로 출력하는법


자바 배열 공부중인데요

어레이리스트와 자바빈을 통해선 db 데이터가 잘 출력이 되는데

이걸 일반배열을 통해서 출력하는 법은 전혀 감이 오지 않네요..

배열 객체를 생성하고...그다음 어떻게 해야되나요..힌트 부탁드립니다...


package inosys.db; 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;


public class DbConnection3 {


public static void main(String[] args) {


Connection conn = null; // DB 접속처리

Statement stmt = null; // sql 실행

ResultSet rs = null; // 레코드 탐색


String url = "jdbc:oracle:thin:@localhost:1522:orcl";

String userid = "test3";

String userpw = "1234";

String sql = "SELECT * FROM member ";


try {

Class.forName("oracle.jdbc.driver.OracleDriver"); /

conn = DriverManager.getConnection(url, userid, userpw);

stmt = conn.createStatement();

rs = stmt.executeQuery(sql);

ArrayList<JobBean> jobList = new ArrayList<JobBean>(); 


while (rs.next()) {

JobBean bean = new JobBean(); 

bean.setId(rs.getString("ID")); 

bean.setName(rs.getString("name")); 

bean.setPasswd(rs.getString("passwd")); 

bean.setAddress(rs.getString("address")); 

jobList.add(bean);

}


for (int i = 0; i < jobList.size(); i++) {

System.out.println("아이디:" + jobList.get(i).getId());

System.out.println("이름:" + jobList.get(i).getName());

System.out.println("비밀번호:" + jobList.get(i).getPasswd());

System.out.println("지역:" + jobList.get(i).getAddress());

}

} catch (Exception e) {

System.out.println("SQL Error:" + e.getMessage());

} finally { // 객체 생성한 역순으로 종료(객체 수와 동일하게 close)

try {

if (rs != null)

rs.close();

if (stmt != null)

stmt.close();

if (conn != null)

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

0
0
  • 답변 9

  • 잘모르겠고
    126
    2019-05-16 10:07:26

    단순히 출력하고싶으신건가요 배열에 담고싶으신건가요

    0
  • 강서구사람
    20
    2019-05-16 10:17:14
    배열에 담아서 출력하고싶어요!
    0
  • EIKIN
    65
    2019-05-16 10:19:25 작성 2019-05-16 10:21:55 수정됨


    List<Map<String, String>> jobList = new ArrayList<Map<String, String>>();
    while (rs.next()) {
      Map<String, String> map = new HashMap<String, String>();
      map.put("id", rs.getString("ID"));
      map.put("name", rs.getString("name"));
      map.put("passwd", rs.getString("passwd"));
      map.put(rs.getString("address")); 
      jobList.add(map);
    }
    
    for (int i = 0; i < jobList.size(); i++) {
      System.out.println("아이디:" + jobList.get("id"));
      System.out.println("이름:" + jobList.get("name"));
      System.out.println("비밀번호:" + jobList.get("passwd"));
      System.out.println("지역:" + jobList.get("address"));
    }


    0
  • 강서구사람
    20
    2019-05-16 10:25:32

    map 말고 일반배열을 통해서는 출력이 불가능한건가요?

    0
  • EIKIN
    65
    2019-05-16 11:01:44

    데이터 적재 룰을 정하시면 될거같은대요

    String[] 에 0번째는 아이디 1번째는 이름 2번째는 비번 3번째는 주소

    위 정한 룰에 따라서 반복문에서 출력하면 될거같내요

    1
  • 강서구사람
    20
    2019-05-16 11:21:18

    제가 자바를 공부한지 한달밖에 안되서...아직 정확하게 무슨말인지를 이해를 못하겠네요..ㅠㅠ

    0
  • 잘모르겠고
    126
    2019-05-16 11:48:12

    리스트 0번을 배열 0번에 담고

    리스트 1번을 배열 1번에 담고 ...

    이 for문을 만들어서

    배열을 for문돌아 출력하던

    배열을 출력하던 하면 됩니다.

    근데 이게 리스트를 그냥 출력하는거랑 뭐가 다른가요?

    0
  • EIKIN
    65
    2019-05-16 11:54:50


    List<String[]> jobList = new ArrayList<String[]>();
    while (rs.next()) {
      String[] arrStr = {rs.getString("ID"),rs.getString("name"),rs.getString("passwd"), s.getString("address")};
      jobList.add(arrStr);
    }
    
    
    for (int i = 0; i < jobList.size(); i++) {
      System.out.println("아이디:" + jobList.get(i)[0]);
      System.out.println("이름:" + jobList.get(i)[1]);
      System.out.println("비밀번호:" + jobList.get(i)[2]);
      System.out.println("지역:" + jobList.get(i)[3]);
    }
      


    1
  • 강서구사람
    20
    2019-05-16 12:55:13

    elkin 님이 말씀해주신대로 하니까 출력이 제대로 되던데...


    list<String[]> jobList = new ArrayList<String[]>();

    이게 어레이리스트를 일반배열로 선언하는거라고 보면 되나요??

    그다음 while문으로

    rs.get 값을 가져오고

    for문으로 출력이라고 생각이 되는데 출력문에서

    get(i)[0] get(i)[1] 이걸로 id,name 등의 순서라고 보면 되는걸까요??

    그리고 while문에 arrstr 은 어떻게 나오는걸까요??


    설명 좀 부탁드려요...



    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.