스프링부트 gradle기반 구성에서 컴파일 된 .class파일을 보니 @Builder 어노테이션이 적용되지 않았다. @Getter @Setter도 적용되지 않는다.lombok 의존 패키지관련 어노테이션이 안되는 것이다. 이클립스 에서는 build.gradle에서 의존성 추가만 해서 되는 것이 아니라 직접 해당 lombok의존성이 추가된 윈도우의 디렉토리를 찾아서 lombok-버전.jar파일을 실행 해줘야한다. cmd 창에서 jar파일이 있는 디렉터리로 이동한다. 그리고 java -jar lombok-버전.jar 명령어를 치면 실행된다. 실행되면 뭘 지정하라고 하는데 이클립스 디렉토리에 있는 실행파일 eclipse.exe를 지정해주면된다.
gradle기반 스프링부트 테스트 하다가 .class 파일을 디컴파일 해서 보려고 했는데 윈도우 상에 해당 디렉토리에는 .class파일이 존재하는데 이클립스 상에서는 bin 디렉토리를 아무리 눌러도 아무것도 나타나지 않는다. 그래서 검색 했더니 navigator 뷰로 보면 보인다는데 내가 사용하는 이클립스 버전이 24년도 최근버전이라서navigator를 지원하지 않는다.(이미 한참 이전에 navigator뷰는 deprecated된걸로 알고있다.) [해결 방법]1. project explorer뷰에서 오른쪽 상단 점3개를 클릭 - Filters and Custmization을 클릭 2. Pre-set filters탭에서 Java output folders가 체크되어 있을 것이다. 이 항목을 체크해제..
JPA 사용시 기본키를 할당하는 방법은 다음과 같다.직접 자바 코드에서 할당데이터베이스에게 위임 : IDENTITY, SEQUENCE, TABLE 1. 직접 자바 코드에서 할당@Entitypublic class Book { @Id private String bookNo; @Column private String BookName; set...get...method }@id는 기본키를를 변수와 매핑하고, @Column은 다른 컬럼들을 각각 매핑한다. em = emf.createEntityManager(); et = em.getTransaction(); et.begin(); Book b = new Book(); b.setBookNo("서1324"); //bookNo 기본키를..
엔티티를 지속적으로 저장하고 있는 속성을 영속성 컨텍스트 라고 말할 수 있다. JPA에서는 기본적으로 EntityManagerFactory객체를 이용해서 EntityManager객체를 생성하고,이 EntityManager객체의 메서드를 이용해서 조회, 저장, 변경, 삭제의 작업을 수행한다. 영속성 컨텍스트는 눈으로 확인 할 수는 없지만, EntityManager를 생성할 때 같이 만들어지고 EntityManager를 닫을 때 사라진다. Entity에는 다음과 같은 상태가 존재한다. ▶ 비영속@Entity로 지정한 객체를 생성했을 뿐 EntityManager를 사용하고 있지 않은 상태이다. ▶ 영속영속성 컨텍스트가 엔티티를 관리할 수 있는 상태를 '영속' 상태라 한다.EntityManager의 persi..
1. pom.xml dependency org.springframework.data spring-data-jpa 1.2.0.RELEASE org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.1.Final org.hibernate hibernate-core 4.1.9.Final org.hibernate hibernate-entitymanager 4.1.9.Final org.hibernate hibernate-ehcache 4.1.9.Final com.jolbox bonecp 0.7.1.RELEASE mysql mysql-connec..
Dynamic Web Project로 생성한 워크스페이스 환경에서 JSTL 적용 1. https://tomcat.apache.org/taglibs/standard/ 에서 zip파일 다운로드 압축해제 후 jstl.jar파일을 프로젝트경로에서 WEB-INF > lib 디렉토리에 붙여 넣는다.(jstl 버전은 스펙에 맞게 다운로드. 모른다면 최신버전 다룬로드) 2. JSP 파일에서 jstl 사용하기 위해 taglib 지시자를 선언한다. JSTL 사용법 1. c:set(변수선언), c:out(화면에 출력), c:remove(선언한 변수 제거)${pageNo} ${sessionNo}${applicationNo}var는 변수이름value는 당연히 값scope는 변수가 존재하는 영역 (page, request..
자식, 부모 노드 탐색 javascript에서는 자식이나 부모 노드를 탐색하는 프로퍼티를 제공한다.childNodes- 자식노드를 탐색. NodeList객체를 결과로 반환 - 요소노드, 텍스트노드 둘다 탐색firstChild- 첫번째 자식을 탐색- 요소노드, 텍스트노드 둘다 탐색 lastChild- 마지막 자식을 탐색- 요소노드, 텍스트노드 둘다 탐색children- 자식노드를 탐색. HTMLCollection객체를 결과로 반환- 요소노드만 탐색firstElementChild- 첫번째 자식 요소노드 반환lastElementChild- 마지막 자식 요소노드 반환parentNode- 자기 바로 위의 부모 요소노드를 탐색. childNodes 결과 : 0:text, 1:ul, 2:text, 3:div, ..
노드에 대하여.. Document Object Model(문서객체모델)은 HTML페이지에서 문서의 구조를 나타내며 이를 조작 및 제어할 수 있는 방법을 제시한다. 일반적인 HTML태그이며, DOM에서는 이것을 노드라고 한다.노드에는 다음 4개가 있다. document - 최상위(root) 노드. - 최상위 이기 때문에 아래 3가지 요소,속성,텍스트 노드에 접근하기 위해서는 document노드를 통하여야 한다. div, ul, li - 요소 노드. - 부모 노드와 자식노드를 가질 수 있다. first, second - 애트리뷰트(속성) 노드.- 부모노드를 가질 수 없다.- 이 노드에 접근하려면 해당 노드의 요소노드에 접근 필요 javascript, React.js, Vue.js..
GROUP BY 절에서 사용하며 소계 및 총계 결과를 보여주는 함수 -사용방법 ROLLUP(A) ROLLUP(A,B,....) [CLOTHES_ORDER (주문 테이블)] HTML 삽입 미리보기할 수 없는 소스 - ROLLUP(A) 일 경우 HTML 삽입 미리보기할 수 없는 소스 위와 같이 ROLLUP(A)처럼 매개변수가 하나라면 A컬럼의 값이 그룹핑 된 결과가 주르륵 나오고 마지막에 총계가 나온다. - ROLLUP(A, B) 일 경우 HTML 삽입 미리보기할 수 없는 소스 - ROLLUP(A, B, C) 일 경우 HTML 삽입 미리보기할 수 없는 소스 - ROLLUP( (A, B) ) 일 경우 (함수 안에 괄호) HTML 삽입 미리보기할 수 없는 소스 ROLLUP( (A, B, C) ) 3개의 인자가 ..
ROLLUP 이 한방향으로 그룹화를 했다면CUBE 는 양방향 그룹화를 해서 소계 총계를 낸다. ROLLUP(A,B,C) 이A,B,CA,BA총계순으로 데이터 그룹화를 해서 소계 및 총계를 보여준다면... CUBE(A,B,C) 는A,B,CA,BA,CAB,CBC총계와 같은 결과를 보여준다. 전 양쪽 방향으로 그룹해서 소계총계를 보여준다고 생각하면 된다. - CUBE(A) /* * CUBE의 인자가 하나일 때는 ROLLUP이 인자가 하나일 때와 같은 결과가 나온다. */SELECT TO_CHAR(CO_DATE, 'mm/dd'),count(*) FROM CLOTHES_ORDERGROUP BY CUBE(CO_DATE)TO_CHAR(CO_DATE,'MM/DD')COUNT(*) 1002/27402/2830..
리눅스에서 디렉터리를 생성하는 mkdir 명령을 이용해 collections라는 디렉터리를 만들고 vi 명령으로 test1.txt 파일을 만들었다. ls 명령을 이용해서 목록을 출력해보면 다음과 같이 나타나는데 drwxr-xr-x 2 newUser newUser 4096 Nov 23 23:21 collections -rw-r--r-- 1 newUser newUser 0 Nov 23 23:22 test1.txt 행에 나열된 목록 표시들을 하나씩 알아본다면 drwxr-xr-x 2 newUser newUser 4096 Nov 23 23:21 collections 파일 또는 디렉토리 허가권 링크된 수 소유중 사용자 소유중 그룹 용량 날짜 파일 또는 디렉토리명 허가권의 제일 앞자리에 있는 문자는 파일인지 디렉토리..
○ 유저 추가 명령어 useradd [옵션] 유저명 옵션 설명 -d 홈 디렉토리 지정시 사용 -g 그룹 지정. 지정할 그룹이 생성되어 있어야 됨 -G 기본그룹 외에 추가로 그룹에 포함시킬 경우 사용 -c 유저에 대한 설명 지정 -s 유저가 사용할 쉘을 지정 시스템의 사용자(유저)를 확인하려면 /etc/passwd 파일을 열어보면 된다. - /etc/passwd 파일의 한 부분 # newUser:x:1001:1001::/home/newUser:/bin/bash newUser라는 사용자를 생성했더니 위와 같은 라인이 추가되어 있다. 순서대로 아이디:패스워드:유저아이디(uid):그룹아이디(gid):설명:홈디렉토리:쉘 을 나타내며 유저 생성시 -c를 이용해 설명을 적지 않아서(필요가 없으니) 빈칸으로 되어 있다..
user 생성 create user '아이디'@'localhost' identified by '비밀번호'; user 권한 부여 grant select, insert, update, delete, create, drop, alter on 지정DB이름.*to '아이디'@'localhost'; all privileges : 모든 권한 / *.* : 모든DB / with grant option : 권한위임가능 예: grant all privileges on *.* to 'project'@'%' with grant option; user 권한 보기 show grants for '아이디'@'localhost(또는%)'; 권한 적용하기 flush privileges; 모든 user 보기 use mysql; selec..
프로시저는 프로그램의 함수와 같은 개념으로 SQL명령어의 조합으로 새로운 함수를 만들어 저장 해 놓고 사용하는 것이다. > 삭제 DROP PROCEDURE IF EXISTS INSERT_BOARD; //프로시저를 생성하기 전에 INSERT_BOARD라는 프로시저가 있으면 삭제한다. > 생성 CREATE PROCEDURE INSERT_BOARD(PREGION INT(11), PWRITER VARCHAR(30), PTITLE VARCHAR(200)) BEGIN INSERT INTO BOARD(REGION, WRITER, TITLE) VALUES (PREGION,PWRITER,PTITLE); END; //보라색의 PREGION, PWRITER 등의 변수는 외부에서 함수를 호출할 때 넣어줄 인자의 타입을 결정 ..