- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에

Similar documents
10.ppt

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밊

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint Presentation

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

웹의 뼈대, HTML

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2

PowerPoint 프레젠테이션

JAVA PROGRAMMING 실습 09. 예외처리

PowerPoint Presentation

PowerPoint Presentation

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - Java7.pptx

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - aj-lecture5.ppt [호환 모드]

개발문서 Oracle - Clob

PowerPoint Presentation

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

FileMaker ODBC and JDBC Guide

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

JAVA PROGRAMMING 실습 08.다형성

준비사항 } 실습조건 } MS-SQL Server 에연결가능한컴퓨터 } 실습용서버혹은별도의 MS-SQL 서버 } Northwind 데이터베이스 } MS-SQL 2000 에제공되는예제데이터베이스 } MS-SQL 2008 에는 Northwind 가기본으로제공되지않기때문에실

JAVA PROGRAMMING 실습 02. 표준 입출력

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

Design Issues

PowerPoint Presentation

PowerPoint Presentation

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

FileMaker ODBC and JDBC Guide

歯JavaExceptionHandling.PDF

Data Provisioning Services for mobile clients

뇌를 자극하는 JSP & Servlet 슬라이드

J2EE Concepts

Microsoft PowerPoint - CSharp-10-예외처리

17장

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

JAVA PROGRAMMING 실습 02. 표준 입출력

FileMaker 15 ODBC 및 JDBC 설명서

Cluster management software

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Java

제11장 프로세스와 쓰레드

PowerPoint 프레젠테이션

PowerPoint Presentation

rmi_박준용_final.PDF

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

쉽게

FileMaker ODBC 및 JDBC 가이드

자바-11장N'1-502

슬라이드 1

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - 03-TCP Programming.ppt

PowerPoint Presentation

Spring Data JPA Many To Many 양방향 관계 예제

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

Analyze Connection Failover Options.ppt

C++ Programming

4장.문장

02 C h a p t e r Java

쉽게 풀어쓴 C 프로그래밍

강의 개요

gnu-lee-oop-kor-lec06-3-chap7

SOFTBASE XFRAME DEVELOPMENT GUIDE SERIES Meta 연동가이드 서울특별시구로구구로 3 동한신 IT 타워 1215 호 Phone Fax Co

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

PowerPoint 프레젠테이션

Microsoft PowerPoint - 10Àå.ppt

중간고사

JAVA PROGRAMMING 실습 05. 객체의 활용

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

항상쌍 ( 키, 값 ) 으로만데이터를저장하는클래스 의최고조상 : Map - Map을조상으로하는클래스, HashTable, HashMap, LinkedHashMap, TreeMap 등은데이터를저장할때반드시 키 와 값 의쌍으로저장한다. - Map에저장되는 키 는중복되면안되

DB 에데이터저장을위한입력창설계 - JLabel, JTextField, JButton 을이용한입력창설계 - 2 -

PowerPoint Presentation

07 자바의 다양한 클래스.key

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

페이지 2 / 9 목차 개요웹취약점분류점검결과해결방안 주의사항 : 빛스캔 ( 주 ) 의취약성검사가대상웹사이트의취약점을 100% 진단하지못할가능성이있으며, 원격에서탐지 하는점검의특성상오탐지 (False Positive) 할가능성이있으므로충분한검토과정

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

[ 프로젝트이름 ] : Project_Car [ 프로젝트를만든목적 ] : 임의의자동차판매소가있다고가정하고, 고객이원하는자동차의각부분을 Java 를이용하여객 체로생성하고, 그것을제어하는메소드를이용하여자동차객체를생성하는것이목표이다. [ 프로젝트패키지와클래스의내용설명 ] [

PowerPoint Template

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

PowerPoint Presentation

Microsoft PowerPoint - Lect04.pptx

PowerPoint 프레젠테이션

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

Application Programming for Relational Databases

비긴쿡-자바 00앞부속

Transcription:

Statement 객체와 PreparedStatement 객체 Connection 객체 - Connection 객체가생성되면데이터베이스에접근이가능해진다. - Connection 객체는자바와데이터베이스의접속된상태의객체를말한다. 데이터베이스에 DML작업을위해서는반드시접속을먼저해야한다. 그리고, 작업후에는반드시접속을해제한다. - Connection 객체를생성할때두개의문자열이필요하다. 하나는, 오라클데이터베이스의드라이버를로드할때사용하는문자열, 다른하나는해당데이터베이스의로그인할때사용하는문자열 String driver = "oracle.jdbc.driver.oracledriver";// 오라클데이터베이스드라이버이름 - 대소문자에유의한다. String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";// 데이터베이스에로그인을위한문자열 - 맨끝의 "orcl" 은해당데이터베이스의이름이고, ""@127.0.0.1" 은해당데이터베이스의 IP 주소이다. - 다음은 Connection 객체를생성하는예 String driver = "oracle.jdbc.driver.oracledriver"; String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; Connection con = DriverManager.getConnection(url,"hr","hr"); Statement와 PreparedStatement - 쿼리를실행할때사용하는객체이다. - Statement는쿼리에직접데이터를입력하는경우에사용한다. - PreparedStatement는쿼리에데이터를입력할때? 를사용한다. - 다음은 PreparedStatement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values (?,?,?,?,?)"; PreparedStatement pstmt = con.preparestatement(sql);//preparedstatement 객체생성 - PreparedStatement 객체는 Connection 객체로접근해서 preparestatement() 메서드를호출해서생성한다. -? 자리에실제데이터를명시해서다음과같이사용한다. setxxx(int 순서, 실제데이터나 _ 변수 ); pstmt.setstring(1, s_code); pstmt.setstring(2, s_name); pstmt.setstring(3, s_id); pstmt.setstring(4, s_pwd); pstmt.setint(5, s_age); - 메소드에서지정된숫자는? 의위치를의미하며, 해당위치의? 에데이터가전달되어쿼리문이완성된다. - SQL을처리하기위해서는 executequery() 메소드와 executeupdate() 메소드를사용한다. pstmt.executequery() : select pstmt.executeupdate() : insert, update, delete - 1 -

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에콤머 (,) 가있어야한다. String name = " 홍길동 "; sql = sql + "'" + name +, ;//varchar2 데이터는앞뒤로작은따옴표를붙인다. int code = 505; sql = sql + code + ",";//code항목은숫자 (number) 형태이므로작은따옴표가없어야한다. String pwd = "1212"; sql = sql + "'" + pwd + "',"; int age = 35; sql = sql + age + ")";// 삽입할마지막항목이므로괄호 ( ) ) 가필요하다. Statement stmt = con.createstatement();//statement 객체생성 stmt.executeupdate(sql);// 삽입쿼리문실행 - Statement 객체는 Connection 객체로접근해서 createstatement() 메서드를호출해서생성한다. - 쿼리작업이종료되면해당객체를받드시닫는다. 예외가발생할수있으므로, 예외처리를해야한다. stmt.close(); catch(exception e) { - Statement 객체로 SQL 을처리하기위해서는 executequery() 메소드와 executeupdate() 메소드를사용한다. stmt.executequery() : select stmt.executeupdate() : insert, update, delete - 2 -

SELECT select 의결과는 ResultSet 객체에서관리한다. String str = "select * from employees"; ResultSet rs = stmt.executequery(str); rs.next() rs.first() 검색결과 ResultSet rs.previous() rs.last() ResultSet 에서다음의메소드를사용해서검색결과를처리한다. 메소드이름 next() previous() first() last() 설명현재행에서한행다음으로이동현재행에서한행앞으로이동현재행에서첫번째행의위치로이동현재행에서마지막행의위치로이동 위의메소드를성공적으로처리한경우에는 true, 그렇지않을경우에는 false 를반환한다. 조회결과를모두출력하기위해서는 ResultSet 객체에 next() 메소드를사용해서반복처리한다. String sql = "select * from employees"; ResultSet rs = stmt.executequery(sql); // 검색한결과를처리 위의 next() 메소드는검색된결과가존재하면 true를반환하고해당위치의정보로이동하지만, 결과가존재하지않으면 false를반환한다. 검색된각행에서실제로값을추출하기위해서는 get으로시작하는메소드를사용한다. 즉, getstring(), getint() 등의메소드를사용해서해당열에저장된데이터의형태에알맞는메소드를사용한다. getstring() 메소드는문자열형태의데이터를, getint() 메소드는정수형태의데이터를읽어오는데사용한다. - 3 -

다음과같은형태의테이블이존재한다고가정하고, 이테이블의모든검색결과를처리하는프로그램은다음과같다. code( 문자열 ) name( 문자열 ) id( 문자열 ) pwd( 문자열 ) age( 정수형 ) 1001 홍길동 hong hong123 20 1002 박길동 park park100 30 1003 이길동 lee lee 15 String s_code = rs.getstring("code"); String s_name = rs.getstring("name"); String s_id = rs.getstring("id"); String s_pwd = rs.getstring("pwd"); int s_age = rs.getint("age"); System.out.printf("%s \t %s \t %s \t %s \t %d \n", s_code, s_name, s_id, s_pwd, s_age); 위의 get 메소드에서열의이름을사용하는방법이외에인덱스값을사용하는방법도있다. String s_code = rs.getstring(1);// 인덱스는테이블의열의순서이며 1부터시작한다. String s_name = rs.getstring(2);// 성능면에서열의이름을사용하는것보다빠르다. String s_id = rs.getstring(3); String s_pwd = rs.getstring(4); int s_age = rs.getint(5); System.out.printf("%s \t %s \t %s \t %s \t %d \n", s_code, s_name, s_id, s_pwd, s_age); 도전과제 : ResultSet 을이용해서데이터베이스에저장된데이터를출력하세요. - 4 -

import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; public class Jdbc_Select { static String driver = "oracle.jdbc.driver.oracledriver"; static String url = "jdbc:oracle:thin:@localhost:1521:orcl"; static Connection con = null; static Statement stmt = null; static ResultSet rs = null; public static void main(string[] args) { String sql = "select * from employees"; Class.forName(driver); con = DriverManager.getConnection(url, "hr", "hr"); stmt = con.createstatement(); rs = stmt.executequery(sql);//select 수행 System.out.print(rs.getInt("employee_id") + "\t"); System.out.print(rs.getString("first_name") + "\t"); System.out.print(rs.getString("last_name") + "\t"); System.out.print(rs.getString("phone_number") + "\n"); catch(exception e) { System.out.println(" 데이터베이스에서예외가발생했습니다."); finally { if(rs!= null) rs.close(); if(con!= null) con.close(); if(stmt!= null) stmt.close(); catch(exception e) { System.out.println(" 데이터베이스를닫는중에예외가발생했습니다."); - 5 -

Meta 데이터이용하기메타데이터 (Meta-data) 란저장된데이터자체를의미하는것이아니라, 해당데이터와관련된정보를의미한다. 예를들어, 데이터의소유자, 데이터의크기, 데이터의열제목등데이터자체가아니라데이터와관련된유용한정보들을뜻한다. 이러한메타데이터를이용하면상당히다양한형태로데이터를처리할수있다. 메타데이터를사용하기위해서는 ResultSet 클래스의 getmetadata() 메소드를호출해서 ResultSetMetaData 객체를얻으면된다. ResultSetMetaData 의주요메서드는다음과같다. 메소드 기능 getcolumnname() 해당데이터의열의이름을알려준다. getcolumntype() 해당데이터의데이터형태를알려준다. getcolumncount() ResultSet의총열의갯수를알려준다. isreadonly() 읽기만가능한열인지알려준다. 도전과제 : 메타데이터를이용해서검색결과에열의제목을추가하세요. - 6 -

import java.io.bufferedreader; import java.io.inputstreamreader; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.resultsetmetadata; import java.sql.statement; public class Jdbc_Meta { static String driver = "oracle.jdbc.driver.oracledriver"; static String url = "jdbc:oracle:thin:@localhost:1521:orcl"; static Connection con = null; static Statement stmt = null; static ResultSet rs = null; public static void main(string[] args) { String sql; BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println("SELECT문입력하기 "); System.out.print(" 처리할 SELECT 문 : "); sql = br.readline();// 화면에서 SELECT 문을입력받는다. // 주의!!! 화면에서 SELECT문을입력할때에는쎄미콜론 (;) 은생략해야한다. Class.forName(driver);//JDBC 드라이버로드 con = DriverManager.getConnection(url, "hr", "hr"); stmt = con.createstatement(); rs = stmt.executequery(sql);// 입력된 select를실행한다. ResultSetMetaData rsm = rs.getmetadata();// 메다데이터를얻어온다. int cols = rsm.getcolumncount();// 조회한테이블의총열의갯수를얻어온다. // 조회한테이블의열제목을출력한다. for(int i = 1; i <= cols; i++) { System.out.print(rsm.getColumnName(i) + "\t"); System.out.println();// 테이블의열제목을모두출력한뒤한줄을띄운다. for(int i = 1; i <= cols; i++) { System.out.print(rs.getObject(i) + "\t"); // 무슨형태의데이터가저장되어있는지 - 7 -

// 알수없기때문에 Object형태로읽는다. System.out.println();// 한줄의데이터를출력한뒤한줄을띄운다. // 조회된모든데이터를출력한다. catch(exception e) { System.out.println(" 데이터베이스에서예외가발생했습니다."); finally { if(rs!= null) rs.close(); if(stmt!= null) stmt.close(); if(con!= null) con.close(); catch(exception e) { System.out.println(" 데이터베이스를닫는중에예외가발생했습니다."); - 8 -