23.01.20(Java)

MH S·2023년 1월 20일

Java

목록 보기
9/16

DB(MySQL)

MySQL(8.0 version) 사용

https://dev.mysql.com/downloads/mysql/
MySQL 8.0 다운로드 사이트

HeidiSQL(데이터베이스 도구)

https://www.heidisql.com/download.php
HeidiSQL 다운로드 사이트

우편번호 DB 다운

  • 우정사업본부 -> 우편번호찾기 -> 우편번호 내려받기(DB)
  • 다음 -> 우편번호 서비스(사이트)

위 경로를 통해 우편변호 DB를 다운받거나 사용할 수 있음.

  • 다운로드 방법 (MySQL)


Excute -> Next


cancel 누르기



설치 취소후 다시 다운로드 파일 클릭


add 버튼 클릭

next 클릭

excute

visual 다운 안받았으면 visual 다운 받기


Excute -> Next



MySQL Root Password: 1234
Repeat Password: 1234
next 누르기

체크하거나 안해도 상관없음






다운로드 완료

  • MySQL 커맨드 사용법


Password: 1234 누를시 db접속 완료

각종 명령어를 통해 db 사용






  • 다운로드 방법 (HeidiSQL)




설치


신규 버튼 누르기

암호 : 1234 -> 열기



확인

세션관리자 -> 데이터베이스 mydb

  • 테이블 생성 및 데이터 삽입(쿼리에서 작성)
/*테이블 생성*/
CREATE TABLE tblEx1(
	id INT ,
	name CHAR(10),
	pwd CHAR(10),
	adds CHAR(10)
)

SELECT * FROM tblex1;

INSERT INTO tblex1 VALUES(1, '홍길동', '1234', '서울')
INSERT INTO tblex1 VALUES(2, '장동건', '1234', '서울');
INSERT INTO tblex1 VALUES(3, '강호동', '1234', '서울');

UPDATE tblex1 SET NAME = '홍길자' WHERE id = 1
DELETE FROM tblex1 WHERE id = 2;

/*primart key ㅣ unique, auto_increment(1,1) : 자동증가 */
CREATE TABLE tblEx2(
id INT PRIMARY KEY AUTO_INCREMENT,/*PRIMARY  중복값 허용 불가*/
NAME CHAR(10) NOT NULL,
pwd CHAR(10)
) 

SELECT * FROM tblex2;
INSERT tblex2 (NAME,pwd) VALUES('aaa', '1234');
INSERT tblex2 (pwd) VALUES('1234');
INSERT tblex2 (name) VALUES('bbb');

UPDATE tblex2 SET pwd = '1234' WHERE id = 2;

DELETE FROM tblex2 WHERE id = 1;



Eclipse db 연동



1. 프로젝트 -> Properties -> mysql-connector-j-8.0.32.jar 파일 추가

  1. HeidiSQL 에서 zipcode.txt 에 있는 서울 주소 관련 파일 insert 하기
  1. 자바 자동완성
Connection con = null;
		PreparedStatement pstmt = null;
		ResultSet rs = null;
		String sql = null;
		try {
			con = pool.getConnection();
			sql = "";
			pstmt = con.prepareStatement(sql);
			rs = pstmt.executeQuery();
		
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			pool.freeConnection(con, pstmt, rs);
		}
		return ;

db1 템플릿

Connection con = null;
		PreparedStatement pstmt = null;
		String sql = null;
		try {
			con = pool.getConnection();
			sql = "";
			pstmt = con.prepareStatement(sql);
			
			pstmt.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			pool.freeConnection(con, pstmt);
		}
		return ;

db2 템플릿

  • 각각 자바 템플릿에 추가하여 자동완성기능 만들기

  1. eclipse 에 각각의 클래스 파일 추가
package member;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.List;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class ZipcodeFrame extends MFrame implements ActionListener {

	JLabel label;
	JButton searchBtn, selectBtn;
	List list;
	TextField tf;
	JPanel p1, p2;
	MemberMgr mgr;
	DialogBox err;

	public ZipcodeFrame() {
		super(300, 500);
		setTitle("ZipcodeFrame");
		mgr = new MemberMgr();
		p1 = new JPanel();
		p1.setBackground(Color.LIGHT_GRAY);
		p1.add(label = new JLabel("도로명 : ", label.CENTER));
		p1.add(tf = new TextField("밤고개로", 15));
		p1.add(searchBtn = new JButton("검색"));
		tf.addActionListener(this);
		searchBtn.addActionListener(this);
		//////////////////////////////////////
		list = new List();
		list.addActionListener(this);
		//////////////////////////////////////
		p2 = new JPanel();
		p2.add(selectBtn = new JButton("선택"));
		selectBtn.addActionListener(this);
		p2.setBackground(Color.LIGHT_GRAY);
		add(p1, BorderLayout.NORTH);
		add(list, BorderLayout.CENTER);
		add(p2, BorderLayout.SOUTH);
		tf.requestFocus();
		setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		Object obj = e.getSource();
		if (obj == tf || obj == searchBtn) {
			if (list.getItemCount() != 0)
				list.removeAll();
			Vector<ZipcodeBean> vlist = mgr.zipcodeSearch(tf.getText());
			// System.out.println(vlist.size());
			if (vlist.isEmpty()) {
				if (err == null)
					err = new DialogBox(this, "검색 결과가 없습니다", "알림");
				else
					err.setVisible(true);
			} else {
				for (int i = 0; i < vlist.size(); i++) {
					ZipcodeBean bean = vlist.get(i);
					String str = bean.getZipcode() + " ";
					str += bean.getArea1() + " ";
					str += bean.getArea2() + " ";
					str += bean.getArea3() + " ";
					list.add(str);
				}
			}
		} else if (obj == list) {
			// 더블클릭하면 호출한 Frame 으로 주소 전달
		}
	}

	public static void main(String[] args) {
		new ZipcodeFrame();
	}
}


db 적용 예제

0개의 댓글