반응형

'JAVA > Android' 카테고리의 다른 글

[Android] alert Dialog 예제  (0) 2014.11.18
[Android] keyboard 예제  (0) 2014.11.18
[Android] 이벤트 시간 예제  (0) 2014.11.18
[Android] 이벤트 처리 예제  (0) 2014.11.18
[Android] socket 예제 통신하기  (0) 2014.11.18
반응형

'JAVA > Android' 카테고리의 다른 글

[Android] alert Dialog 예제  (0) 2014.11.18
[Android] keyboard 예제  (0) 2014.11.18
[Android] 이벤트 예제2  (0) 2014.11.18
[Android] 이벤트 처리 예제  (0) 2014.11.18
[Android] socket 예제 통신하기  (0) 2014.11.18
반응형

'JAVA > Android' 카테고리의 다른 글

[Android] alert Dialog 예제  (0) 2014.11.18
[Android] keyboard 예제  (0) 2014.11.18
[Android] 이벤트 예제2  (0) 2014.11.18
[Android] 이벤트 시간 예제  (0) 2014.11.18
[Android] socket 예제 통신하기  (0) 2014.11.18
반응형

mainActivity.java



package com.example.socket;

import java.io.*;
import java.net.*;

import android.app.Activity;
import android.os.*;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;

public class MainActivity extends Activity {

	EditText input;
	// 서버에서 전송된 메시지를 저장할 변수
	String mes = "";

	// 서버에서 메시지가 전송되었을 때 호출될 핸들러
	Handler handler = new Handler() {
		public void handleMessage(Message msg) {
			Toast.makeText(MainActivity.this, mes, Toast.LENGTH_LONG).show();
		}
	};
	
	//실제 서버에서 접속해서 데이터를 전송하고 전송받을 스레드
	class ConnectThread extends Thread{
		
		String hostname;
		
		public ConnectThread(String addr){
			hostname = addr;
		}
		
		public void run(){
			try{
				int port = 11001;
				//소켓 생성
				Socket socket =
						new Socket(hostname,port);
				//데이터를 전송하귀 위한 스트림 생성
				
				ObjectOutputStream oos =
						new ObjectOutputStream(socket.getOutputStream());
				oos.writeObject("클라이언트가 전송하는 메시지");
				oos.flush();
				
				//서버로부터 하나의 객체를 전송받기 위한 스트림
				ObjectInputStream ois =
						new ObjectInputStream(socket.getInputStream());
				mes = ois.readObject().toString();
				handler.sendEmptyMessage(0);
				socket.close();
				
				
			}catch(Exception e){
				
			}
		}
		
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		input = (EditText)findViewById(R.id.input01);
		
		Button btn = (Button)findViewById(R.id.button01);
		
		btn.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				
				ConnectThread th = new ConnectThread("127.0.0.1");
				th.start();
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// Handle action bar item clicks here. The action bar will
		// automatically handle clicks on the Home/Up button, so long
		// as you specify a parent activity in AndroidManifest.xml.
		int id = item.getItemId();
		if (id == R.id.action_settings) {
			return true;
		}
		return super.onOptionsItemSelected(item);
	}
}



20141112_socket.zip

'JAVA > Android' 카테고리의 다른 글

[Android] alert Dialog 예제  (0) 2014.11.18
[Android] keyboard 예제  (0) 2014.11.18
[Android] 이벤트 예제2  (0) 2014.11.18
[Android] 이벤트 시간 예제  (0) 2014.11.18
[Android] 이벤트 처리 예제  (0) 2014.11.18
반응형
import java.io.*;
import java.net.*;

public class SocketServer {

	public static void main(String[] args) {

		try {
			// 서버에서 사용할 포트 번호
			int portNumber = 11001;

			ServerSocket aServersocket = new ServerSocket(portNumber);

			System.out.println("서버 소켓 준비 완료");

			while (true) {
				// 클라이언트의 요청이 올때까지 대기하다가
				// 클라이언트의 요청이 오면 그 정보를 저장
				Socket aSocket = aServersocket.accept();

				// 접속한 클라이언트의 주소 정보를 저장
				InetAddress client = aSocket.getInetAddress();
				// 클라이언트의 주소 정보 출력
				System.out.println(client);

				// 클라이언트가 보낸 객체를 확인하기 위한 스트림 생성

				ObjectInputStream ois = new ObjectInputStream(
						aSocket.getInputStream());

				// 데이터 1개 읽기
				Object obj = ois.readObject();
				// 데이터 출력
				System.out.println("보낸 데이터 : " + obj);

				// 클라이언트에게 객체를 전송하기 위한 스트림을 생성

				ObjectOutputStream oos = new ObjectOutputStream(
						aSocket.getOutputStream());
				
				oos.writeObject("서버에서 전송한 메시지");
				oos.flush();
				//클라이언트와 연결된 소켓 닫기
				aSocket.close();

			}

		} catch (Exception e) {

		}

	}

}

반응형

JFrame을 이용하여 폼을 만든 후 Mysql DB에 접속하여 select, insert, delete 을 해보자!!



CustomerDBUse.java


package CustomerDB;

import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.*;

import javax.print.attribute.standard.*;
import javax.swing.*;
import javax.swing.table.*;

public class CustomerDBUse extends JFrame implements ActionListener {

	JPanel panWest;
	JPanel panSouth;

	// 레이블과 텍스트 필드를 묶어서 panWest에 배치될 패널
	JPanel p1, p2, p3, p4;

	// 텍스트 필드
	JTextField txtName, txtEmail, txtTel;

	// 아래쪽의 버튼
	JButton btnTotal, btnAdd, btnDel, btnSearch, btnCancel;

	// 데이터를 출력할 테이블
	JTable table;

	// 누른 버튼의 이름을 기억하기 위한 상수 선언 및 변수 선언
	private static final int NONE = 0;
	private static final int ADD = 1;
	private static final int DELETE = 2;
	private static final int SEARCH = 3;
	private static final int TOTAL = 4;

	int cmd = NONE;

	// 데이터베이스 연결을 저장할 변수
	Connection con;

	// sql 수행을 위한 변수
	Statement stmt;
	PreparedStatement pstmtInsert;
	PreparedStatement pstmtDelete;

	// 데이터베이스 연결 클래스 이름과 위치 및 아이디와 패스워드 저장
	private String driver = "oracle.jdbc.driver.OracleDriver";
	private String url = "jdbc:oracle:thin:@211.183.0.100:1521:orcl";
	private String user = "user12";
	private String pwd = "user12";

	// 데이터베이스 접속하는 메서드

	private void dbConnect() {
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(url, user, pwd);
			stmt = con.createStatement();
			JOptionPane.showMessageDialog(this, "접속 성공");
		} catch (Exception e) {
			JOptionPane.showMessageDialog(this, e.getMessage());
		}

	}

	private String sqlInsert = "insert into customer2 values(id_sequence.nextval,?,?,?,sysdate)";

	private String sqlDelete = "delete from customer2 where name = ?";

	PreparedStatement pstmtTotal;
	private String sqlTotal = "select * from customer2";

	PreparedStatement pstmtSearch;
	private String sqlSearch = "select * from customer2 where name =?";

	// 생성자 - 화면 구성과 이벤트 연결
	public CustomerDBUse() {
		dbConnect();
		panWest = new JPanel(new GridLayout(5, 0));

		p1 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
		p1.add(new JLabel("이 름"));
		p1.add(txtName = new JTextField(12));
		panWest.add(p1);

		p2 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
		p2.add(new JLabel("이 메 일"));
		p2.add(txtEmail = new JTextField(12));
		panWest.add(p2);

		p3 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
		p3.add(new JLabel("전화번호"));
		p3.add(txtTel = new JTextField(12));
		panWest.add(p3);

		p4 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
		p4.add(new JLabel(" "));
		panWest.add(p4);

		add(panWest, "West");

		panSouth = new JPanel();
		panSouth.add(btnTotal = new JButton("전체보기"));
		panSouth.add(btnAdd = new JButton("추 가"));
		panSouth.add(btnDel = new JButton("삭 제"));
		panSouth.add(btnSearch = new JButton("검 색"));
		panSouth.add(btnCancel = new JButton("취 소"));
		add(panSouth, "South");

		// 테이블을 생성해서 부착
		add(new JScrollPane(table = new JTable()), "Center");

		// 텍스트 필드를 사용할 수 없도록 설정
		txtEmail.setEditable(false);
		txtName.setEditable(false);
		txtTel.setEditable(false);

		setDefaultCloseOperation(EXIT_ON_CLOSE);

		setTitle("데이터베이스 연동");
		setBounds(100, 100, 500, 250);
		setVisible(true);

		btnAdd.addActionListener(this);
		btnTotal.addActionListener(this);
		btnDel.addActionListener(this);
		btnSearch.addActionListener(this);
		btnCancel.addActionListener(this);

		this.addWindowListener(new WindowAdapter() {

			public void windowClosing(WindowEvent e) {
				try {
					if (con != null) {
						con.close();
					}
				} catch (Exception e1) {

				}
			}
		});

	}

	// 사용자가 작업을 위해서 버튼을 처음 눌렀을 때 호출되서
	// 버튼의 활성화 여부를 설정하는 사용자 정의 메서드
	private void setButton(int command) {
		// 취소 버튼을 제외한 버튼 비 활성화
		btnTotal.setEnabled(false);
		btnAdd.setEnabled(false);
		btnCancel.setEnabled(false);
		btnDel.setEnabled(false);
		btnSearch.setEnabled(false);

		switch (command) {
		case ADD: {
			btnAdd.setEnabled(true);
			cmd = ADD;
			break;
		}
		case DELETE: {
			btnDel.setEnabled(true);
			cmd = DELETE;
			break;
		}
		case TOTAL: {
			btnTotal.setEnabled(true);
			cmd = TOTAL;
			break;
		}
		case SEARCH: {
			btnSearch.setEnabled(true);
			cmd = SEARCH;
			break;
		}
		case NONE: {
			btnTotal.setEnabled(true);
			btnAdd.setEnabled(true);
			btnCancel.setEnabled(true);
			btnDel.setEnabled(true);
			btnSearch.setEnabled(true);
			cmd = NONE;
			break;
		}
		default:
			break;
		}
	}

	private void setText(int command) {
		switch (command) {
		case ADD: {
			txtName.setEditable(true);
			txtEmail.setEditable(true);
			txtTel.setEditable(true);
			break;
		}
		case DELETE: {
			txtName.setEditable(true);
			txtEmail.setEditable(false);
			txtTel.setEditable(false);
			break;
		}
		case SEARCH: {
			txtName.setEditable(true);
			txtEmail.setEditable(false);
			txtTel.setEditable(false);
			break;
		}
		default:
			break;
		}
		setButton(command);
	}

	// 액션 리스너
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO 자동 생성된 메소드 스텁

		Object obj = e.getSource();
		if (obj == btnTotal) {
			System.out.println("전체보기를 눌렀습니다.");
			setTitle("전체보기");
			totel();

		} else if (obj == btnAdd) {
			System.out.println("추가를 눌렀습니다.");
			if (cmd != ADD) {
				setText(ADD);
				return;
			}
			setTitle("데이터 추가");
			add();

		} else if (obj == btnCancel) {
			System.out.println("닫기를 눌렀습니다.");

		} else if (obj == btnSearch) {
			System.out.println("찾기를 눌렀습니다.");
			search();

		} else if (obj == btnDel) {
			System.out.println("삭제를 눌렀습니다.");
			if (cmd != DELETE) {
				setText(DELETE);
				return;
			}
			setTitle("데이터 삭제");
			delete();

		}
		setText(NONE);

	}

	private void search() {
		// TODO 자동 생성된 메소드 스텁
		try {

			// txtname에 이름이 없으면 메시지 박스를 출력하고 return
			String Strname = txtName.getText();
			if (Strname.trim().length() < 1) {
				JOptionPane.showMessageDialog(null, "이름 적어");
				return;
			}

			pstmtSearch = con.prepareStatement(sqlSearch);
			pstmtSearch.setString(1, Strname);

			String[] columnNames = { "번호", "이름", "이메일", "전화번호", "가입일" };

			// select 구문실행
			ResultSet rs = pstmtSearch.executeQuery();

			ArrayList> data_arr = new ArrayList>();

			if (rs.next()) {
				do {
					ArrayList imsi = new ArrayList();
					imsi.add(rs.getString("CUSTOMER_ID"));
					imsi.add(rs.getString("NAME"));
					imsi.add(rs.getString("EMAIL"));
					imsi.add(rs.getString("TAL"));
					imsi.add(rs.getString("JOIDATE"));
					data_arr.add(imsi);
				} while (rs.next());

				String[][] data = new String[data_arr.size()][5];

				for (int i = 0; i < data_arr.size(); i++) {
					ArrayList al = data_arr.get(i);
					for (int j = 0; j < 5; j++) {
						data[i][j] = al.get(j);
					}
				}

				// 테이블에 출력하기 위한 데이터 모델 생성
				DefaultTableModel model = new DefaultTableModel(data,
						columnNames);

				// 테이블 모델 적용
				table.setModel(model);
				// 테이블 갱신
				table.updateUI();
			} else {
				JOptionPane.showMessageDialog(null, "데이터 없음");
			}

			rs.close();

		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, e.getMessage());
		} finally {

			try {
				if (pstmtSearch != null)
					pstmtSearch.close();
			} catch (SQLException e) {
				// TODO 자동 생성된 catch 블록
				e.printStackTrace();
			}

		}

	}

	// 모든 데이터를 보여주는 정의 메서드
	private void totel() {
		try {
			pstmtTotal = con.prepareStatement(sqlTotal);

			// select 구문 실행
			ResultSet rs = pstmtTotal.executeQuery();

			String[] columnNames = { "번호", "이름", "이메일", "전화번호", "가입일" };
			ArrayList> imsiData = new ArrayList>();

			if (rs.next()) {

				do {
					// 하나의 행 데이터를 저장할 가변 배열 생성
					ArrayList imsi = new ArrayList();
					imsi.add(rs.getString("CUSTOMER_ID"));
					imsi.add(rs.getString("NAME"));
					imsi.add(rs.getString("EMAIL"));
					imsi.add(rs.getString("TAL"));
					imsi.add(rs.getString("JOIDATE"));

					imsiData.add(imsi);

				} while (rs.next());

				// 테이블에 데이터를 출력하기 위해서
				// 테이버베이스에서 읽어온 데이터를 2차원 배열로 반환
				String[][] data = new String[imsiData.size()][5];
				for (int i = 0; i < imsiData.size(); i++) {
					ArrayList al = imsiData.get(i);
					for (int j = 0; j < 5; j++) {
						data[i][j] = al.get(j);
					}

				}

				// 테이블에 출력하기 위한 데이터 모델 생성
				DefaultTableModel model = new DefaultTableModel(data,
						columnNames);

				// 테이블 모델 적용
				table.setModel(model);
				// 테이블 갱신
				table.updateUI();
			} else {
				JOptionPane.showMessageDialog(null, "데이터가 없다");
			}

		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, e.getMessage());
		} finally {
			try {
				if (pstmtTotal != null)
					pstmtTotal.close();
			} catch (Exception e) {

			}
		}

	}

	// 데이터를 삭제하는 사용자 정의 메서드
	private void delete() {
		try {
			String strname = txtName.getText();
			if (strname.trim().length() < 1) {
				JOptionPane.showMessageDialog(null, "이름 필수 입력");
				return;
			}

			pstmtDelete = con.prepareStatement(sqlDelete);
			pstmtDelete.setString(1, strname);

			int result = pstmtDelete.executeUpdate();
			if (result > 0) {
				JOptionPane.showMessageDialog(null, "삭제 성공");
			} else {
				JOptionPane.showMessageDialog(null, "삭제할 이름 없음");
			}

		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, e.getMessage());
		} finally {
			try {
				if (pstmtDelete != null)
					pstmtDelete.close();
			} catch (Exception e) {

			}

		}
	}

	// 데이터를 추가하는 사용자 정의 메서드
	private void add() {
		try {
			// 유호성 검사 - txtname에 텍스트 확인
			String strname = txtName.getText();
			String strEmail = txtEmail.getText();
			String strTel = txtTel.getText();

			if (strname.trim().length() < 1) {
				JOptionPane.showMessageDialog(null, "이름 필수 입력");
				return;
			}
			// 삽입하는 sql 문장을 수행해 줄 Statement 생성
			pstmtInsert = con.prepareStatement(sqlInsert);
			pstmtInsert.setString(1, strname);
			pstmtInsert.setString(2, strEmail);
			pstmtInsert.setString(3, strTel);

			int result = pstmtInsert.executeUpdate();
			if (result > 0) {
				JOptionPane.showMessageDialog(null, "삽입 성공");
			} else {
				JOptionPane.showMessageDialog(null, "삽입 실패");
			}

		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, e.getMessage());
		} finally {
			try {
				if (pstmtInsert != null)
					pstmtInsert.close();
			} catch (Exception e) {

			}
		}
	}

}


Customer.java


package CustomerDB;

//customer 테이블의 데이터를 표현할 클래스
public class Customer {
	//변수명은 특별한 경우가 아니면 테이블의 컬럼 이름을 그래도 사용
	private String customer_id;
	private String name;
	private String email;
	private String tel;
	private String joidate;
	public Customer() {
		super();
		// TODO 자동 생성된 생성자 스텁
	}
	public Customer(String customer_id, String name, String email, String tel,
			String joidate) {
		super();
		this.customer_id = customer_id;
		this.name = name;
		this.email = email;
		this.tel = tel;
		this.joidate = joidate;
	}
	
	
	public String getCustomer_id() {
		return customer_id;
	}
	public void setCustomer_id(String customer_id) {
		this.customer_id = customer_id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getJoidate() {
		return joidate;
	}
	public void setJoidate(String joidate) {
		this.joidate = joidate;
	}
	@Override
	public String toString() {
		return "Customer [customer_id=" + customer_id + ", name=" + name
				+ ", email=" + email + ", tel=" + tel + ", joidate=" + joidate
				+ "]";
	}
	
	//디버깅을 위한 메서드
	
}


Main.java


package CustomerDB;

public class Main {

	public static void main(String[] args) {
		// TODO 자동 생성된 메소드 스텁
		
		//new CustomerDBUse();
		//new CopyOfCustomerDBUse_1();
		
		new CopyOfCustomerDBUse_hachmap();
	}

}


'JAVA > Java' 카테고리의 다른 글

java String Calss  (0) 2015.03.18
[JAVA] SocketServer  (0) 2014.11.18
[JAVA] Mysql DB 접속하기(Connect)  (0) 2014.11.18
[JAVA] Oracle DB 접속 후 Insert,select 하기  (0) 2014.11.18
[JAVA] oracle DB 접속하기  (0) 2014.11.18
반응형
<


package mysql_DB;

import java.sql.*;

public class MySQLconnect {

	public static void main(String[] args) {
		// TODO 자동 생성된 메소드 스텁

		try {
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("클래스 로드 성공");

			Connection con = DriverManager.getConnection(
					"jdbc:mysql://127.0.0.1:3306/db", "id", "password");
			System.out.println("접속 성공");

			con.close();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			
		}

	}

}


반응형



import java.sql.*;


public class OracleDB {

	public static void main(String[] args) {
		// 1. 데이터베이스 연동 클래스 로드
		try{
			Class.forName("oracle.jdbc.driver.OracleDriver");
		}
		catch(Exception e){
			System.out.println(e.getMessage());
			//프로그램 정상 종료
			System.exit(0);
		}
		
		//2. 데이터베이스에 접속해서 test1 테이블의 데이터 읽기
		
		//데이터베이스에 접속하기 위한 변수
		Connection con = null;
		//SQL 구문을 실행하기 위한 변수
		Statement stmt = null;
		//Select 구문 실행했을 때 결과를 저장하기 위한 변수
		ResultSet rs = null;
		
		//삽입을 위한 Statement 변수 선언
		PreparedStatement pstmt = null;
		try{
			con = DriverManager.getConnection(
					"jdbc:oracle:thin:@127.0.0.1:1521:orcl",
					"id","password");
			
			//sql 문장을 가지고 PreparedStatement 객체 생성
			pstmt = con.prepareStatement(
					"insert into test1 values(id_sequence.nextval, ?)");
			//?에 데이터를 바인딩
			pstmt.setString(1, "이순신");
			//실행
			int result = pstmt.executeUpdate();
			System.out.println("영향 받은 행의 개수:" + result);
			
			//sql 구문을 실행할 수 있는 객체 생성
			stmt = con.createStatement();
			//select 구문을 실행
			rs = stmt.executeQuery("select * from test1");
			//데이터가 있을 때
			if(rs.next()){
				do{
					System.out.println(rs.getInt(1) + ":" +
							rs.getString(2));
				}while(rs.next());
			}
			else{
				System.out.println("읽은 데이터가 없습니다.");
			}
			
		}
		catch(Exception e){
			System.out.println(e.getMessage());
		}
		finally{
			try{
				if(rs != null)rs.close();
				if(stmt != null)stmt.close();
				if(con != null)con.close();
			}
			catch(Exception e){}
		}

	}

}


반응형



import java.sql.*;
import java.util.*;

public class RunProc {

	public static void main(String arg[]) {
		
		Common.loadDrover();
		Connection con = null;

		CallableStatement cstmt = null;

		try {
			con = DriverManager.getConnection(
					"jdbc::oracle:thin:@127.0.0.1:1521:orcl", "사용자아이디",
					"사용자 패스워드");
			System.out.print("저장할 메시지: ");
			Scanner sc = new Scanner(System.in);
			String msg = sc.nextLine();
			sc.close();

			cstmt = con.prepareCall("{call myproc(?)}");
			cstmt.setString(1, msg);
			cstmt.executeQuery();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			try {
				if (cstmt != null)
					cstmt.close();
				if (con != null)
					con.close();

			}

			catch (Exception e) {
			}
		}

	}

}



반응형

DomThread.java


package xml_pasing;

import java.io.*;
import java.net.*;
import java.util.*;

import javax.xml.parsers.*;

import org.w3c.dom.*;

public class DomThread extends Thread {
	// 다운로드 받은 문자열을 저장할 변수
	String xml;
	// 파싱한 결과를 저정할 ArrayList
	
	
	//첫번째 방법
	ArrayList data = new ArrayList();
	//두번째 방법
	ArrayList> data_1 = new ArrayList>();

	// 스레드로 동작할 메서드
	public void run() {
		// 다운로드 받는 도중 데이터를 저장할 변수
		StringBuilder sBuffer = new StringBuilder();
		// 다운로드 처리
		try {
			// 다운로드 받을 변수
			String urlAddr = "http://www.kma.go.kr/weather/forecast/mid-term-xml.jsp?stnId=109";
			URL url = new URL(urlAddr);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			if (conn != null) {
				// 연결에 대한 설정
				conn.setConnectTimeout(10000);
				conn.setUseCaches(false);
				// 정상적으로 연결에 성명하면
				if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
					// 줄 단위로 읽어오기 위한 BufferedReader 객체 생성
					InputStreamReader isr = new InputStreamReader(
							conn.getInputStream());
					BufferedReader br = new BufferedReader(isr);
					while (true) {
						String line = br.readLine();
						if (line == null)
							break;
						sBuffer.append(line);
					}
					br.close();
					conn.disconnect();
					xml = sBuffer.toString();
				}
			}
		} catch (Exception e) {
			System.out.println(e.getMessage());

		}
		// xml이 가진 문자열을 파싱
		try {
			if (xml != null) {
				// xml을 파싱해주는 객체를 생성
				DocumentBuilderFactory factory = DocumentBuilderFactory
						.newInstance();
				DocumentBuilder documentBuilder = factory.newDocumentBuilder();

				// xml 문자열은 InputStream으로 변환
				InputStream is = new ByteArrayInputStream(xml.getBytes());
				// 파싱 시작
				Document doc = documentBuilder.parse(is);
				// 최상위 노드 찾기
				Element element = doc.getDocumentElement();
				// 원하는 태그 데이터 찾아오기
				NodeList items = element.getElementsByTagName("tmx");
				NodeList items1 = element.getElementsByTagName("tmn");
				NodeList items2 = element.getElementsByTagName("reliability");
				// 데이터 개수 찾이오기
				int n = items.getLength();
				for (int i = 0; i < n; i++) {

					HashMap map = new HashMap();

					Node item = items.item(i);
					Node text = item.getFirstChild();
					String itemValue = text.getNodeValue();
					map.put("최고온도", itemValue);

					Node item1 = items1.item(i);
					Node text1 = item1.getFirstChild();
					String itemValue1 = text1.getNodeValue();
					map.put("최저온도", itemValue1);

					Node item2 = items2.item(i);
					Node text2 = item2.getFirstChild();
					String itemValue2 = text2.getNodeValue();
					map.put("신뢰도", itemValue2);
					// 찾은 데이터 datadp 추가
					data_1.add(map);
					data.add(new Data_tansfer(itemValue,itemValue1,itemValue2));

				}
			}

		} catch (Exception e) {
			System.out.println(e.getMessage());

		}

		System.out.println(data);
		System.out.println(data_1);
	}
}


Data_tansfer.java


package xml_pasing;

import java.io.*;

public class Data_tansfer implements Serializable{
	
	private String tmx;
	private String tmn;
	private String reliability;
	
	public Data_tansfer() {
		super();
		// TODO 자동 생성된 생성자 스텁
	}

	public String getTmx() {
		return tmx;
	}

	public void setTmx(String tmx) {
		this.tmx = tmx;
	}

	public String getTmn() {
		return tmn;
	}

	public void setTmn(String tmn) {
		this.tmn = tmn;
	}

	public String getReliability() {
		return reliability;
	}

	public void setReliability(String reliability) {
		this.reliability = reliability;
	}

	@Override
	public String toString() {
		return "Data_tansfer [tmx=" + tmx + ", tmn=" + tmn + ", reliability="
				+ reliability + "]";
	}

	public Data_tansfer(String tmx, String tmn, String reliability) {
		this.tmx = tmx;
		this.tmn = tmn;
		this.reliability = reliability;
	}




	

}


Dom_main.java


package xml_pasing;

public class Dom_main {

	public static void main(String[] args) {
		// TODO 자동 생성된 메소드 스텁
		
		DomThread th =  new DomThread();
		th.start();

	}

}


+ Recent posts