반응형
'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 |
| [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 |
| [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 |
| [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| [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) {
}
}
}
| AES, SHA256 암 복호화 (0) | 2016.03.02 |
|---|---|
| java String Calss (0) | 2015.03.18 |
| [JAVA] JFrame 이용하여 Mysql 접속 후 프로그램 생성 (0) | 2014.11.18 |
| [JAVA] Mysql DB 접속하기(Connect) (0) | 2014.11.18 |
| [JAVA] Oracle DB 접속 후 Insert,select 하기 (0) | 2014.11.18 |
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 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 {
}
}
}
| [JAVA] SocketServer (0) | 2014.11.18 |
|---|---|
| [JAVA] JFrame 이용하여 Mysql 접속 후 프로그램 생성 (0) | 2014.11.18 |
| [JAVA] Oracle DB 접속 후 Insert,select 하기 (0) | 2014.11.18 |
| [JAVA] oracle DB 접속하기 (0) | 2014.11.18 |
| [JAVA] xml 파싱(Parsing) 하기 (0) | 2014.11.18 |
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){}
}
}
}
| [JAVA] JFrame 이용하여 Mysql 접속 후 프로그램 생성 (0) | 2014.11.18 |
|---|---|
| [JAVA] Mysql DB 접속하기(Connect) (0) | 2014.11.18 |
| [JAVA] oracle DB 접속하기 (0) | 2014.11.18 |
| [JAVA] xml 파싱(Parsing) 하기 (0) | 2014.11.18 |
| [JAVA] 간단한 UDP server, client (0) | 2014.11.18 |
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) {
}
}
}
}
| [JAVA] Mysql DB 접속하기(Connect) (0) | 2014.11.18 |
|---|---|
| [JAVA] Oracle DB 접속 후 Insert,select 하기 (0) | 2014.11.18 |
| [JAVA] xml 파싱(Parsing) 하기 (0) | 2014.11.18 |
| [JAVA] 간단한 UDP server, client (0) | 2014.11.18 |
| [JAVA] Thread 를 사용하여 URL 웹 파일 다운로드 (0) | 2014.11.18 |
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();
}
}
| [JAVA] Oracle DB 접속 후 Insert,select 하기 (0) | 2014.11.18 |
|---|---|
| [JAVA] oracle DB 접속하기 (0) | 2014.11.18 |
| [JAVA] 간단한 UDP server, client (0) | 2014.11.18 |
| [JAVA] Thread 를 사용하여 URL 웹 파일 다운로드 (0) | 2014.11.18 |
| [JAVA] UDP 를 사용한 파일 전송 (0) | 2014.11.18 |