Web develop/JDBC_XML 10

[XML] DOM(Document Object Model)

XML Parser(xml 문서내의 데이터를 분석하는 도구) Tree 기반 API Parsing 후에 메모리상에 문서 전체의 트리구조를 만들어 사용 NodeList (DOM에 포함된 엘리먼트 집단) 속성은 NodeList에 포함되지 못하여 NamedNodeMap 사용 DOM API 메모리상의 데이터에 대한 프로그램 Document, Element, Node NodeList, NamedNodeMap Java hong Python sim Node XML문서를 구성하는 모든 요소를 상징하는 객체이다. 모든 객체의 공통적인 특성을 모아 놓은 추상화된 객체라고 할 수 있다. 알아야할 메소드 노드 정보를 얻거나 정하는(get,set) 메소드 nodeType (1~12 --> ELEMENT_NODE ... TEXT_..

[XML] XML 자주쓰이는 문법 정리

Well-formed(잘 구성된) xml 문서 문서 안에 최소 한개 이상의 element를 가져야함 문서 전체를 감싸는 단 한 개의 엘리먼트(Root Element)가 존재해야 함 ==> X ==> O. root 이름은 변경 가능 시작 태그가 있다면 그것에 매핑되는 끝태그가 반드시 존재해야 함 태그종류) -시작태그 -끝태그 -빈태그 xml은 대소문자를 구분함 (참고: HTML은 태그명에 대소문자 구분 안함) 엘리먼트는 포함관계가 꼬이면 안됨 ==> O. b,c 엘리먼트(자식)는 a엘리먼트(부모)에 포함됨 b와 c는 형제관계(sibling) ==> X. a,c 엘리먼트: 누가 부모이고 자식인지 알 수 없음 xml선언은 전체 생략가능하나 선언하는 것을 권장. ---------------- 현재 작성되는 XM..

[XML] XML 정의 및 구조

: eXtensible Markup Language (부가적인 마크업 언어) XML ⇒ 데이터 저장방식. Standard Text Data 어떤 플랫폼에서나 읽을 수 있는 포맷 제공, 고정된 형식이 아닌 확장이 가능한 언어 태그를 사용자가 직접 정의할 수 있으며 그 태그를 다른사람들이 사용하도록 할 수 있다. 다른언어를 기술하기 위한 언어, 즉 메타언어이다. 마크업: 원래의 내용에 특별한, 또는 추가적인 정보를 표시하는 모든 것을 의미. 예) 밑줄, 색상, 폰트의 변화, 번호매기기 등등 XML 문서구조 형태 [XML선언] [DTD] [도큐먼트 인스턴스] -- 엘리먼트 컨텐트 내용(데이터) 23 -- 속성값 //나길동:데이터 , 이름:데이터에 대한 설명 엘리먼트 컨텐트 : 태그명이 데이터에 대한 설명 속성..

[JDBC] Properties 사용법 및 사용예시

Properties : 속성데이터(문자열, text)를 담는 클래스 Properties pro = new Properties(); 데이터 저장(입력) pro.setProperty(String key, String value); pro.setProperty("k1","길동"); pro.setProperty("k2","라임"); key: 저장 또는 검색을 위한 값(유일한 값) value: 저장하고자 하는 문자열(text) 데이터 데이터 출력(조회) System.out.println("k1="+pro.getProperty("k1")); System.out.println("k2="+pro.getProperty("k2")); // 키값을 모르는 경우 Eumeration enu = pro.propertyNames(..

[JDBC] JDBC 프로그래밍

JDBC 관련클래스 : java.sql 패키지 DriverManager : JVM에서 JDBC전체를 관리하는 클래스. Driver등록, Connection 연결작업 등 Driver : DB를 만드는 Vendor(Oracle, MS-SQL, MYSQL등)을 implements하여 자신들의 DB를 연결할 수 있는 class를 만드는 인터페이스 Connection : DB와 연결성을 갖는 인터페이스 Statement : SQL문을 실행하는 인터페이스 ResultSet : 조회된 결과 데이터를 갖는 인터페이스 JDBC 프로그래밍 제품군 선택 (Oracle, Mysql, MS-SQL 등) 연결객체 생성 (Connection) [필요요소] DB서버의 주소 포트번호(0~63353개.한피시 안에서 서비스 종류를 판별하..

[JDBC] Swing에서 중복아이디 체크하기 (PrepareStatement 사용)

중복확인 JButton 클릭시 -------View--------- public JButton bt_checkId; public JTextField tf_id; --------Model(DAO)---------- public boolean findExistID(String id) { connect(); try { String sql = "SELECT count(*) cnt FROM membership WHERE id=?"; stmt = conn.prepareStatement(sql); stmt.setString(1, id); rs = stmt.executeQuery(); if (rs.next()) { int cnt = rs.getInt("cnt"); if (cnt > 0) { return true; } ..

[JDBC] Prepared Statement 사용법 및 사용예제

Statement (java.sql.Statement) : executeQuery("DQL문"), excecuteUpdate("DML문")메소드를 실행하는 시점에 파라미터로 SQL문을 DB에 전달한다. 장점 : 사용된 SQL문 전체를 명확히 알 수 가 있어서 디버깅이 쉽다. 단점 : 조건값이 틀린 많은 수의 SQL문을 반복 실행하게 되는 경우, DB서버에서 모두 새롭게 PARSING되어야 하므로 부하가 생길수 있다. SQL Injection에 취약. //SQL injection 예) //데이터 전달: a' 1=1 -- SELECT count(*) FROM membership WHERE id = 'a' or 1=1 --' AND pass='1234'; PreparedStatement (java.sql.Pr..

[JDBC] Properties MVC 사용예제 (+Swing)

파일 구성 Control : Controller.java Model : PersonDTO.java , PersonDAO.java View : InputForm.java, MainView.java, UpForm.java Conn 폴더 : conn.properties MODEL 테이블 이름, 혹은 조인된 도메인명 오른쪽에 역할 명시 PersonDTO : 속성 정의, 자바빈즈 역할 public Person(int no, String name, int age, String job) { this.no = no; this.name = name; this.age = age; this.job = job; } PersonDAO : DB 관련된 일 전담 CRUD 작성 (CREATE, READ, UPDATE, DELETE)..

[JDBC] Properties 객체 사용방법(저장, 출력, 데이터얻기)

Properties : 속성데이터(문자열, text)를 담는 클래스 Properties pro = new Properties(); DAO : Data Access Object DB 접근을 위한 DB전용 객체 각 메소드에는 sql문 실행에 관련된 코드들로 구성 하는것이 가장 이상적 CRUD 작업실행하는 메소드를 정의 DTO : Data Transfer Object VO : Value Object 계층간 데이터교환을 위한 자바빈즈 VO(Value Object)라는 단어를 많이 사용 데이터 저장(입력) pro.setProperty(String key, String value); pro.setProperty("k1","길동"); pro.setProperty("k2","라임"); key: 저장 또는 검색을 위한 ..

[JDBC] JDBC 관련클래스, 프로그래밍 순서 (Connection, Statement, ResultSet)

JDBC 관련클래스 : java.sql 패키지 DriverManager : JVM에서 JDBC전체를 관리하는 클래스. Driver등록, Connection 연결작업 등 Driver : DB를 만드는 Vendor(Oracle, MS-SQL, MYSQL등)을 implements하여 자신들의 DB를 연결할 수 있는 class를 만드는 인터페이스 Connection : DB와 연결성을 갖는 인터페이스 Statement : SQL문을 실행하는 인터페이스 ResultSet : 조회된 결과 데이터를 갖는 인터페이스 JDBC 프로그래밍 제품군 선택 (Oracle, Mysql, MS-SQL 등) 연결객체 생성 (Connection) [필요요소] DB서버의 주소 포트번호(0~63353개.한피시 안에서 서비스 종류를 판별하..