다음 문제)
1. best_sandwiches_list_chicago_price_address.xls 읽어서
오라클에 저장 (Rank, Cafe, Menu, Price, Address)
2. 이미지 파일명을 저장 (30, 34번은 이미지가 없다. => default.jpg 대체)
오라클에 저장 (이미지.jpg)
오라클 : rank, cafe, menu, price, addr, img <== 필드명
저장된 데이터를 html 로 출력 (10행 5열)
rank menu img price addr => 순으로 되도록
데이터 확인
cafe => Al's Deli // Longman & Eagle
price => 9.5
address => 2109 W, Chicago Ave.,
이러한 데이터들은 엑셀 파일로 읽어 들일수는 있으나 오라클에 저장 되지가 않는다.
SQL> insert into table values ('Al's Deli');
ERROR:
ORA-01756: quoted string not properly terminated
=> 'Al' 이렇게 받아들이기에 오류
SQL> insert into test_tb (cafe) values ('Longman & Eagle');
Enter value for eagle:
old 1: insert into test_tb (cafe) values ('Longman & Eagle')
new 1: insert into test_tb (cafe) values ('Longman ')
=> 중간에 사용된 & 때문에 값이 제대로 저장 되지 않는다.
String클래스의 replace() 메소드 활용
테스트용 테이블을 만들어서 애매한 값을을 대입시켜 제대로 들어가는지 확인해야한다.
create table test_tb (
cafe varchar2(50), => ' 빼고 삽입 // &를 and로 변경
menu varchar2(100), => & 를 and로 변경
price number(5,2), => 타입 크기를 5개로 하되 소수점 아래 2자리까지 읽는다.
addr varchar2(100),
imag varchar2(100)
);
데이터 확인이 끝났으면 정확히 테이블을 다시 만들어 준다. // 위에는 랭크가 빠진 잘못된 테이블
create table chicago_tbl ( // tbl => table약자
rank number(5) => 정수타입이니 별 문제가 없을 것이다.
cafe varchar2(50), => ' 빼고 삽입 // &를 and로 변경
menu varchar2(100), => & 를 and로 변경
price number(5,2),
addr varchar2(100),
img varchar2(100)
);
** 특수한 경우 빼고는 이미지 자체는 데이터베이스에 저장 하지 않는다!!
(파일명을 저장하지만, 이미지 자체를 저장 안함 => 요량이 너무 크기 때문)
MainClass => 작업 순서에 맞춰 실행
CafeClass => 사용할 객체 생성 (img는 set을 통해 나중에 추가)
DataClass => 전체 데이터를 위한 객체 생성
JdbcClass => 오라클 관련 메소드 정의
PrintClass => 1. HTML파일 생성을 위한 태그 생성 메소드 2. HTML 파일 생성 메소드 정의
LoadFileReaderClass => 1. 엑셀파일 읽기, 2. 폴더안에 있는 이미지파일 읽기
전체 데이터를 담을 객체 생성
' 와 &를 바꿔주기위한 메소드를 만들었고 또한 img를 후에 추가 할것이기 때문에 setter메소드까지 만들었다.
엑셀 파일을 읽어 올때는 문자열로 들어오기 때문에 정수형과 실수형인 rank와 price는 형변환이 필요하다.
Integer.pareInt()와 Float.parseFloat()을 사용
while문이 종료 시점이 없기 때문에 그냥 실행 시키게 되면 무한루프에 빠진다. 그래서 강제로 에러를 발생시켜 무한루프를 빠져나온다.
이미지를 저장하기 위해 File클래스에 있는 list() 메소드를 사용하였다. => 배열로 반환
전체 데이터를 가지고 있는 cafeData에 setter를 통하여 이미지 파일명을 저장 시켰다.
다음 작업)
오라클 연결 및 데이터 저장
자바와 오라클을 연결 시켜주고 만들어둔 데이터를 오라클에 옮겨담았다.
다음 작업)
데이터가 중복 저장 되지않게 오라클 실행 부분을 if문을 통하여 바꿀것이다.
=> 데이터 수를 세는 메소드(count) 이용
HTML파일을 만들기 위한 준비
=> HTML Tag생성 메소드와 HTML파일 만드는 메소드
이제 값이 들어있으면 insertData메소드를 실행 시키지 않는다.
이제 HTML 파일 만들기 준비
tag를 생성하기 위해서는 오라클에 저장되어있는 값을 불러와야한다. (select)
조회된 값을 ResultSet에 담아 태그 생성 메소드에 넘겨준다.
다음 작업은 update메소드와 delete메소드. close메소드를 추가 시키는것!
아.. 오라클 데이터를 자바에서 실행시키는것은 상관없지만 SQL Command Line에서 데이터를 조작한 경우에는 반드시 commit을 하자.. 오늘 저거 때문에 계속 실행안됐다..
'Learn > KH정보교육원' 카테고리의 다른 글
[KH정보교육원 당산] 22일차 (데이터베이스) (0) | 2021.04.08 |
---|---|
[KH정보교육원 당산] 연습문제3 (데이터베이스) (0) | 2021.04.07 |
[KH정보교육원 당산] 20일차 (오라클과 엑셀파일을 이용한 실습 - 주유소) (0) | 2021.04.06 |
[KH정보교육원 당산] 19일차 ( 데이터베이스 - Oracle ) (0) | 2021.04.05 |
[KH정보교육원 당산] 18일차 ( socket예제 - 퀴즈 만들기) (0) | 2021.04.02 |