| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 |
- MySQL
- JDBC
- MariaDB
- 오블완
- Linux
- wsdl
- 티스토리챌린지
- 컨트롤러
- cmd
- 안드로이드 스튜디오
- 스레드 덤프
- START WITH
- 톰캣
- http
- integer
- equals
- API
- 키보드
- Tomcat
- Database
- java
- 삼성증권
- 스레드
- ibatis
- oracle
- 영상편집
- Docker
- HTML
- 프로세스
- letterspacing
- Today
- Total
목록전체 글 (249)
블로그 이름
BITAND함수는 비트값을 AND 연산하는 함수이다. SELECT BITAND(7,4) FROM DUAL;7은 2진수로 111, 4는 2진수로 100이다.111과 100을 비트연산 시 100이 나오고 4로 표시된다. 사용하는 방법은 아래와 같다.ENUM 타입 설계 시 1, 2, 4, 7 과 같이 정의해 둔 뒤전체 조회 시 7, 1과 4 조회 시 5, 1과 2만 조회 시 3으로 조건을 걸면 된다. 업데이트 시 하나의 컬럼만 업데이트하면 되기 때문에 업데이트 성능은 높일 수 있으나 조회 시 문제가 생길 가능성이 있다.
ALTER TABLE [테이블명] MODIFY [컬럼명] [새 데이터 타입(길이)]ALTER TABLE emp MODIFY empName VARCHAR2(4); 컬럼의 데이터 타입 변경 시 ORA-01439: column to be modified must be empty to change datatype 오류가 발생할 때가 있다. VARCHAR -> VARCHAR 타입 (길이를 변경한다던지) 할때에는 괜찮지만VARCHAR 타입에서 CLOB 타입으로 변경하거나 할 때 발생한다. VARCHAR 타입과 CLOB 타입은 저장하는 공간이 다르기 때문에 발생한다고 한다. 이 경우 변경할 컬럼을 생성한 뒤, 값을 옮긴 뒤 값을 모두 지운 뒤 원 컬럼으로 옮기면 된다. 1. 새 컬럼 생성 (기존 데이터 복사)ALTE..
1. 인덱스 사용 가능 여부 - WHERE ID IS NULL 처럼 NULL 조건만 있는 경우 인덱스 사용이 불가능하다. 쿼리 참조 컬럼은 인덱스 안에 저장되어 있어야 한다. 2. 인덱스 범위 스캔 가능 여부- 부정형 비교는 인덱스 사용 불가능 (ex: where id 'test', WHERE id is not null)- 인덱스 컬럼을 가공하면 인덱스 사용 불가- 묵시적 형 변환하는 경우 숫자형과 문자형 비교 시 숫자형 우선시 됨 3. 인덱스 스캔이 풀스캔보다 효율적인지 확인- 인덱스 스캔은 rowid에 의해 데이터를 랜덤하고 single block read 전략을 가지는 엑세스이고, 테이블 풀스캔은 sequential 한 방식으로 multi block read 전략을 가지고 데이터에 엑세스한다. 만..
ORACLE DB에서는 반환값이 하나였던게, MariaDB에서는 여러개 반환되는 경우가 있다.ORACLE은 대소문자 구분을 하지만 MariaDB에서는 문자열 대소문자 구분을 못한다. SELECT * FROM USER WHERE USERID='hello'; 위 쿼리로 조회했을때, hello와 Hello, HELLO 등 대소문자 구분 없이 조회되는 것이다. 위 해결 방법은 아래와 같다. 1. BINARY 함수 사용SELECT * FROM USER WHERE BINARY(USERID)='hello'; BINARY를 추가하여 조회 시, hello와 같은 소문자로만 이루어진 문자열만 조회된다. 2. 테이블 설정 변경ALTER TABLE USER CHANGE USERID USERID VARCHAR(10) BINAR..
오늘은 JPA에 대해 알아보고자 한다.JPA는 자바 진영에서 ORM 기술 표준으로 사용되는 인터페이스의 모음이다. 실제 구현이 아닌 구현된 클래스와 매핑을 위해 사용한 프레임워크이다. ORM이란Object-Relational Mapping의 약자로 애플리케이션 class와 RDB(Relational Database)의 테이블을 매핑한다는 뜻이며 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화 해주는 것이라고 보면 된다. 장점1. SQL문이 아닌 메소드를 통해 DB 조작하여 개발자가 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있다.2. 쿼리같은 선언문, 할당 등의 부수적인 코드가 줄어들어 코드의 가독성을 높인다.3. 객체지향 코드 작성 가능. 생산성 증가4. 매핑정보가 class로 ..
에러 로그는 아래와 같다. ERROR com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'TEST' in class 'java.lang.Integer'at com.ibatis.common.beans.ClassInfo.getSetter(ClassInfo.java:245)at com.ibatis.common.beans.ComplexBeanProbe.setProperty(ComplexBeanProbe.java:336)at com.ibatis.common.beans.ComplexBeanProbe.setObject(ComplexBeanProbe.java:235)at com.ibatis.common.beans.GenericPro..
오늘은 윈도우 서버를 사용하여 1.2.3.4의 5555 포트로 D:\TEST 경로를 설정하여 톰캣 포트를 열어 클라이언트가 접근 가능하도록 설정하고자 했는데 안되는 현상이 있었다. 해결 순서는 다음과 같다. 1. 톰캣이 5555 포트에서 실행 중인지 확인netstat -ano | findstr :5555위 명령어로 Listnening 상태임을 확인하였다. 톰캣이 실행되고 잇고 포트 설정이 잘못된건 아님을 확인. 2. windows 방화벽에서 포트 확인netsh advfirewall firewall show rule name=all | findstr 5555결과가 없으면 방화벽이 포트를 막고 있을 가능성이 있다. 만일 포트가 막힌 경우 netsh advfirewall firewall add rule n..
HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려준다.응답은 5개 그룹으로 나뉜다. 정보 제공 응답, 성공 응답, 리다이렉트, 클라이언트 에러, 서버 에러다섯가지 정보 응답에 대해 정리하고자 한다. 정보 응답100 Continue : 지금까지의 상태가 괜찮으며 클라이언트가 계속 요청하거나 이미 요청 완료 시 무시해도 된다는 걸 알려준다.101 Switching Protocol : 클라이언트가 보낸 Upgrade 요청 헤더에 대한 응답에 들어가며 서버에서 프로토콜을 변경할 것임을 알려준다.102 Processing : 서버가 요청을 수신하였으며 처리하고있지만 아직 제대로 된 응답을 알려줄 수 없음을 알려준다.103 Early Hints : 주로 link 헤더와 함께 사용되어 서버..
오늘은 JAVA Reflection API 에 대해 알아보고자 한다. 리플렉션은 힙 영역에 로드된 Class 타입의 객체를 통해 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메소드를 접근 제어자와 상관없이 사용할 수 있도록 지원하는 .API이다.JVM의 클래스 로더에서 클래스 파일에 대한 로딩을 완료한 후 클래스 타입 객체를 힙 영역에 로드한다. (new 키워드 x)JAVA에서 동적으로 객체를 생성하는 기술이다. 사용법은 아래와 같다. Class test = Class.forName("java.lang.String");System.out.println(test); 위 방법으로 가져온 class 타입의 인스턴스로 필드와 메소드를 사용할 수 있다. Class testPerson ..