일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 박싱
- wrapper
- 언박싱
- 루프
- maven
- 컬렉션
- Java
- unboxing
- start.spring.io
- 싱글턴
- boxing
- https://start.spring.io
- 무한
- suvlet
- dependency
- bootstrap
- 내장객체
- 메소드
- 인텔리제이
- 자동형변환
- 클래스
- 싱글톤
- 제너릭
- 빌드
- 스프링
- 콜렉션
- Scanner
- 제네릭
- Jenkins
- Short
- Today
- Total
목록K-DigitalTraining 강의 (333)
Developer Gonie
* 쿼리문 실행시 명령어별로 사용해야할 메소드가 다름 - executeQuery() 메소드 : select -> 타입의 조회된 결과를 가져온 ResultSet 타입의 객체를 반환한다. - executeUpdate() 메소드 : insert, update, delete -> 성공적으로 삽입, 수정, 삭제 실행된 개수를 반환함 * executeQuery() 혹은 executeUpdate() 위치에서 에러가 발생한 경우 쿼리문에 오타가 있어서 그럴 가능성이 크다. * conn.close() 하면 자동으로 commit 됨 1. 가장 원시적으로 insert 문을 실행하는 방법 import java.sql.Connection; import java.sql.DriverManager; import java.sql.Pr..
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class Select { public static void main(String[] args) { String driver = "oracle.jdbc.driver.OracleDriver"; String url = "jdbc:oracle:thin:@localhost:1521:orcl"; String id = "jspid"; String pw = "jsppw"; try { // 1. 드라이버 로드 Class.forName(dri..
1. Project 폴더 - Properties 클릭 2. Java Build Path - Libraries - Classpath - Add External JARs... 3. 오라클 설치당시 선택했던 경로에 가서 아래의 파일 선택 & Apply and Close 나는 당시에 오라클을 C\Oracle 에 설치해뒀었으므로 선택해야 하는 파일은 아래의 경로에 위치했음 C:\Oracle\product\12.2.0\dbhome_1\jdbc\lib\ojdbc8.jar 4. 프로젝트 폴더 안에 새로 생긴 폴더들이 보여진다. ojdbc8.jar 파일 가져오기 성공 5. 정상연결 확인 import java.sql.Connection; import java.sql.DriverManager; import java.sql...
JDBC(Java Database Connectivity) 란? JDBC는 자바 언어에서 같은 코드로 다양한 데이터베이스를 다룰 수 있도록 하는 Java API 이다.(일종의 라이브러리) 이는 인터페이스 및 클래스들로 이루어져 있으며, 다음과 같은 기능들을 포함한다. - 자바에서 데이터베이스로의 연결을 만드는 것 - SQL문 생성 - 데이터베이스에 대한 SQL문 실행 - 결과 레코드들을 수정하거나 보는 것 등 JDBC CRUD 사용예시 코드 https://www.tutorialspoint.com/jdbc/jdbc-create-tables.htm JDBC Driver 란? 같은 코드여도 다른 데이터베이스에 대해 작동할 수 있는 이유는 각 DBMS를 위한 JDBC Driver가 준비되어있어 같은 코드였던 것..
예외의 종류 - others : Java에서의 Exception 클래스와 같이 모든 예외를 받을 수 있음. - too_many_rows : 2줄 이상의 레코드가 조회되었을 때 발생하는 예외 - no_data_found : 발견된 레코드가 없을 때 발생하는 예외 이외에도 구글에 plsql 예외처리 라고 입력하면 더 다양한 예외를 볼 수 있다. 1개의 예외만을 다루는 예시 declare i number; begin i := 6/0; dbms_output.put_line('i:' || i); end; / 1행에 오류: ORA-01476: 제수가 0 입니다 ----------------------------------------------------------------- declare i number; beg..
커서를 이용해 한 줄 씩 가져와 모든 행의 레코드를 출력하는 방법 커서란? 쿼리문의 결과를 담을 수 있는 공간으로, 이 공간에 접근하기 위해서는 접근 시작전 open, 마무리 후 close를 해줘야 한다. 또한, 루프를 빠져나오기 위해 exit ... NOTFOUND를 사용해줘야 함. 커서 선언은 declare 부분에서 이뤄진다. declare vno book.no%type; vtitle book.title%type; vpublisher book.publisher%type; cursor book_cursor is select no, title, publisher from book; begin open book_cursor; loop fetch book_cursor into vno, vtitle, vpub..
프로시저란? 내부에서의 동작은 함수와 같지만 함수와 다르게 반환값이 없음. void procedure()와 같이 반환값이 없는 메소드와 같음. 반환값이 없기 때문에 select 에서 함수를 호출하듯이 특정 열의 값을 연산하여 대치해주는 것이 불가하다. 프로시저 동작 방식을 이해하기 위한 초간단 예시 * as 대신에 is 도 사용가능한데 별차이 없음 -- 특정 레코드를 update 하는 프로시저 create or replace procedure ptest(no number) -- 이름이 ptest인 프로시저 as -- 함수와 다르게 return, return 타입이 없음 begin update members set salary = salary*1.1 where id = no; end; / -- 함수는 호출..
* 만드려는 함수이름이 존재하는 테이블의 이름과 같으면 오류가 뜨는데, 이럴 땐 테이블을 삭제해주던지 함수의 이름을 다르게 지정해 주어야 한다. * 반환타입에 varchar2타입을 사용할 경우 사이즈는 지정하지 않고 'varchar2' 까지만 써줘야 한다. 1. 파라미터를 받지않는 함수 정의 및 호출방법 --test 라는 함수가 있으면 만들고 만들어놓은게 있다면 내가 만드는대로 변경해라 create or replace function test -- 'test' 부분은 함수의 이름, 함수를 만들지만 test 라는 이름을 가진 테이블이 존재하면 에러남에 주의 return number as -- return 타입이 number 라는 것, 이 부분은 declare를 대신해서 변수를 선언하는 부분이기도 함 x n..
* 변수를 선언할 때 sum, avg 등의 함수의 이름은 사용할 수 없음에 주의하자. * 반복횟수가 정해져 있을 때는 for~loop 를 사용하고, 이외의 상황은 loop 혹은 while문을 사용하면된다. 1. loop -- loop를 이용해 1~10까지 출력하는 코드 declare i number := 1; begin loop dbms_output.put_line('i: ' || i); exit when i = 10;-- 조건을 만족하면 루프를 빠져나옴 i := i + 1;-- java처럼 i++, ++i은 없음 end loop; dbms_output.put_line('loop를 빠져나옴'); end; / i: 1 i: 2 i: 3 i: 4 i: 5 i: 6 i: 7 i: 8 i: 9 i: 10 loo..
변수의 타입을 간편하게 지정하는 방법 "변수 테이블.컬럼%type" declare vid members.id%type; -- members테이블의 id 컬럼과 같은 타입으로 지정한다는 의미. vname members.name%type;-- members테이블의 name 컬럼과 같은 타입으로 지정한다는 의미. vsalary members.salary%type;-- members테이블의 salary 컬럼과 같은 타입으로 지정한다는 의미. begin select id, name, salary into vid, vname, vsalary from members where id = 3; dbms_output.put_line(vid || ' ' || vname || ' ' || vsalary); end; / 1줄의..
-- 첫번째 방법, 일반적인 구조 case(변수명) when 변수값 혹은 변수 비교 then 실행부; when 변수값 혹은 변수 비교 then 실행부; else 실행부; -- 생략가능 end case; -- 두번째 방법, 실행부에서 변수에 값을 할당하는 코드만 들어가있는 경우 활용가능한 변수 := case(변수명) when 변수값 then 할당값 -- 세미콜론 제거 when 변수값 then 할당값 -- 세미콜론 제거 else 할당값 -- 생략가능 end; -- 이땐 case 키워드를 빼준다. -- 세번째 방법, if문과 같이 수식을 이용해 구현하는 구조(Java는 case 문에서 수식을 넣는게 불가능한데 오라클은 가능) case -- 여기에서 변수를 받지 않음 when 수식 then 실행부; when 수..
declare x number := 2; result varchar2(15); begin if x = 1 then result := 'one'; elsif x = 2 then result := 'two'; elsif x = 3 then result := 'three'; else result := '그 밖의 수'; end if; dbms_output.put_line('result: ' || result); end; / result: two PL/SQL 처리가 정상적으로 완료되었습니다. declare vsabun number := '&조회할사번'; -- 조회할 사번을 입력받음 vname varchar2(12); vdeptno number; vdept varchar(20); begin select sabun,..