전체 글 188

[오류/해결] jsp에서 db로 insert시 한글 깨짐 현상(오라클)

환경 : java 11, oracle 11g enterprise 직전에 한 프로젝트 파일에서는 한글로 추가 되었으나, 갑자기 글자가 깨지는 인코딩 오류가 발생하였다 WEB-INF -> web.xml에 아래의 코드를 추가해주면 된다 SetCharEncoding org.apache.catalina.filters.SetCharacterEncodingFilter encoding utf-8 SetCharEncoding /* 입력한 후 저장(ctrl + s)을 해준 후 다시 실행하면 한글로 추가된 것을 확인 가능하다

개인기록 2022.08.26

Jdbc(ojdbc) 사용자 인터페이스 | TIL_137

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 사용자 인터페이스 상수 값이 아닌 사용자에게 값을 입력받을 수 있도록 인터페이스를 만든다 웹 기반의 사용자 인터페이스 콘솔 기반의 사용자 인터페이스 **ui는 자바를 배운 이후에 듣는 것을 가정했기 때문에 콘솔 기반으로 작성한다 목록에서 작성할 내용 상세조회 이전 다음 글쓰기 페이지 넘기기 (옵션) NoticeConsole 클래스 생성 package com.newlecture.app.console NoticeConsole.java //콘솔이 데이터를 가지고 있어야 한다 private NoticeService service; public Notic..

백엔드/Database 2022.08.24

[오류/해결] sequence 번호 증가(1 -> 21 -> 41) | Oracle

개요 게시판 실습을 하면서 오라클 DB와 연결하여 insert를 하는데 게시물 번호가 이상하게 증가되었다 분명히 시퀀스 설정을 할 때 create sequence 시퀀스이름 increment by 1 start with 1; 로 설정을 했는데 예시 : create sequence movie_seq increment by 1 start with 1; 서버를 껐다 키니 번호가 임의로 늘어났다 이유를 찾아보니 기본 시퀀스 설정인 cache 옵션으로 인해 시퀀스 메모리가 20단위로 할당되어 있었고, 그 단위를 채우지 않고 DB 연결을 끊으면 할당된 메모리 이후의 번호인 21번부터 시작하게된다는 것이다 해결법 cache 설정을 끄면 된다 alter sequence 시퀀스이름 nocache; 예시 : alter s..

개인기록 2022.08.22

Jdbc(ojdbc) crud 서비스 클래스 | TIL_136

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 CRUD를 담당하는 NoticeService 생성하기 package명 –> com.newlecture.app.service 이름이 충돌되지 않게 하기 위해 도메인 이름으로 짓는다 -> 그동안 패키지 명을 com.name으로 짓는 이유가 궁금했는데 강의를 통해 알게되었다 Notice.java 일종의 그릇이 되는 개체 클래스이다 package com.newlecture.app.entity //클래스 생략 private int id; private String title; private String writerId; private Date regDat..

백엔드/Database 2022.08.19

[오류/해결] 오라클 TNS-12560: TNS:프로토콜 어댑터 오류

환경 : 오라클 18xe 버전, 윈도우 1. 간단한 해결법 cmd창을 관리자 권한으로 실행 후 lsnrctl start를 입력하여 리스너를 시작한다 리스너 상태 확인 > lsnrctl status 2. listener.log 파일 용량 초과 로그 파일의 용량이 4GB를 넘어가면 오류가 날 수 있다 로그 파일을 삭제 후 리스너를 재시작하면 해결된다고 한다 로그 파일 경로(사람마다 다름) : 드라이브:\app\사용자\product\오라클버전\diag\tnslsnr\시스템이름\listener\alert 3. 시스템의 이름을 바꾼경우 cmd 창에서 hostname을 치면 현재 네트워크 호스트의 이름이 나온다 listener.ora, tnsnames.ora의 host 부분의 이름이 다르다면 고친 후 서비스를 재시..

개인기록 2022.08.18

트랜잭션 / 데이터 추가 사이트 | TIL_135

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 트랜잭션 처리 트랜잭션이란? 하나의 단위로 수행되길 바라는 쿼리의 묶음이다 단위 = 업무 수행 단위, 논리적인 수행 단위 예시 UPDATE TABLE SET PUB = 1 WHERE ID IN (2,4,6,7,9); UPDATE TABLE SET PUT = 0 WHERE ID IN (1,3,5,8,10); 일괄 공개 여부를 나타내는 컬럼 PUB PUB = 1 공개 PUB = 0 비공개 -> 위 쿼리의 경우 SQL 구문이 별개로 존재하지만, 내용상으로 서로 연관된 쿼리이기 때문에 일괄 공개라는 하나의 단위로 이루어진 트랜잭션이라고 할 수 있다 ->..

백엔드/Database 2022.08.17

Jdbc(ojdbc) 데이터 추가, 수정, 삭제 | TIL_134

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 데이터 입력과 PreparedStement 결과 집합(ResultSet) ResultSet rs = st.executeQuery(sql); 을 사용하지 않고 st.executeUpdate(sql); 를 사용한다 데이터 추가 데이터 추가를 위한 SQL문 INSERT INTO notice (title, writer_id, content, files) values ('TEST', 'grape','test content', ''); java 코드 + JDBC를 이용한 데이터 추가 String title = "TEST"; String writerId = ..

백엔드/Database 2022.08.15

Jdbc(ojdbc) 연결 | TIL_133

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 실습용 사용자 추가 cmd sqlplus > sys as sysdba로 접속 후 사용자를 추가한다 create user 사용자이름 identified by 비밀번호; 예시 : create user test identified by 0000; 1행에 오류: ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 라는 메시지와 함께 추가가 되지 않는다면 생성할 계정명 앞에 C## 키워드를 붙이거나 ALTER SESSION SET“_ORACLE_SCRIPT”=TRUE; 를 입력하면 된다 모든 권한 부여(실 사용시 권장하지 않음) grand db..

백엔드/Database 2022.08.12

Jdbc(ojdbc) 초기 세팅 | TIL_132

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 기초적인 세팅 (이클립스 활용) Java Project 추가 후 Build Path > Configure Build Path > Libraries > add External Jars -> 다운받은 경로에 있는 ojbc8.jar 추가 후 apply 한다 오라클 11g의 경우 ojdbc6.jar을 받으면 된다 내 경우 Modulepath와 Classpath로 나눠졌는데 우선 Modulepath에 넣었다 -> 정상 작동 확인 본격적인 실습 전 사용할 코드에 대한 설명 JDBC 기본 코드의 이해 사용자의 요구에 따라 데이터를 쿼리할 때 JDBC 라이브러..

백엔드/Database 2022.08.10

TIL 정리_131(Jdbc - ojdbc)

https://www.youtube.com/playlist?list=PLq8wAnVUcTFWxwoc41CqmwnO-ZyRDL0og 강의를 듣고 정리한 내용입니다 JDBC 탄생 배경 오라클 데이터베이스 혹은 SQL을 사용했을 때 실행을 위해서 SQL developer와 같은 프로그램을 다운받아 사용했다 이러한 프로그램으로 연결/인증, 문장실행, 결과패치 등의 기능을 사용할 수 있었다 *SQL을 작성할 수 없는 사람도 데이터베이스를 이용할 수 있다 -> 만들어진 UI를 통해서 간접적으로 사용하는 경우 프로그래머는 데이터베이스를 이용하기 위해서 사용자의 요구에 따른 스키마를 설계하는데, 이때 코드에서 데이터베이스를 이용할 수 있게하는 라이브러리가 필요했다 -> DB API라고 한다 SQL의 코드를 연결하기 위..

백엔드/Database 2022.08.08