목록전체 글 (544)
똑같은 삽질은 2번 하지 말자
public class PageMaker { private CriteriaVO cri; private int totalCount; private int startPage; private int endPage; private boolean prev; private boolean next; private int displayPageNum = 5; public CriteriaVO getCri() { return cri; } public void setCri(CriteriaVO cri) { this.cri = cri; } public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCou..
로컬에서는 파일 경로를 절대 경로로 (ex) C://) 지정해서 업로드할경우 문제가 없지만 개발 및 운영환경은 윈도우가 아니기때문에 운영및 개발 환경(리눅스)에 이미지를 저장하기위해 생성한 폴더가 없다면 기존 소스로 불가능하다 아래는 폴더 생성이 안됐을 경우 임시로 사용할수있다 -> 웹서버 내에 image 폴더를 만들어 업로드하기위해 상대경로가 필요 ! String path="/temp"; ServletContext context= request.getSession().getServletContext(); String realPath=context.getRealPath(path); getServletContext() : 웹 어플리케이션이 설치되어 있는 경로를 리턴해줌 getRealPath() : ..
public String execute(HttpServletRequest request) { String uploadPath = "C:\\Gwak\\ghw\\WebContent\\product_images"; //String uploadPath = request.getServletContext().getRealPath("product_images"); try { MultipartRequest multi = new MultipartRequest(request,uploadPath, 1024*1024*10,"UTF-8",new DefaultFileRenamePolicy()); String filename = multi.getFilesystemName("p_image"); File file = multi.get..
3시간 동안 삽질했다. Vue의 이벤트 버스를 하나 생성해서 import Vue from 'vue'; export default new Vue(); 이 중간 Vue 인스턴스로 이벤트를 발생시키고 부모 인스턴스에서 내가 원하는 데이터의 변경 spinner의 loadingStatus를 변경 시키기 위함이다. 이벤트가 발생하는곳은 여기서 발생시키는데, But.. 이런 에러가 발생됬다.... 뭐가 문제인지 몰라서 3시간동안 Vue의 코드를 까보면서 현자타임이 수백번 찾아왔었다..(봐도 모르겠어~~) vue의 버젼이나 emit 사용 방법이 다른건가? package.json도 갈아엎어 보고 별 이상한 짓거리를 다했습니다. 근데 저 에러의 의미가 내가 이벤트를 등록시켰지만 그 이벤트를 등록한 곳에서 해당 method..
음..오늘 강의를 들으면서 강사님이 주로 즐겨 쓰시는 패턴에 대해 설명을 받았다. domain클래스에 다 떄려박는 느낌?의 코딩방식으로 유지보수할때, 꽤 용이하게 쓰여진다고 한다. domain클래스에 이미 다 정의되어(단, protected로)있으면, 각자 원하는 방식으로 바꾸는건 안되니깐 밑의 코드는 예시이다. package jpabook.jpashop.domain; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence.*; import java.time.LocalDate; import java.time.LocalDateTime..
위 사진처럼 밑에 보면 ?? 표시들이 실제로 들어가는 값들로 나와있는걸 볼 수 있다. 어떻게 하면 저렇게 될까? 깃헙에서 만들어놓은 라이브러리 하나 추가하면 된다!
엔티티? JPA에서는 엔티티는 테이블에 대응하는 하나의 클래스라고 생각하시면 편합니다.엄청나게 간단한 코드와 함께 같이 보겠습니다. 엔티티 클래스 @Entity public class Member { @GeneratedValue @Id private long id; private long password; } 데이터베이스의 테이블 Table id 12342 password 12342 spring-boot-starter-data-jpa 의존성을 추가하고 @Entiy 어노테이션을 붙이면 테이블과 자바 클래스가 매핑이 됩니다. 그래서 JPA에서 '하나의 엔티티 타입을 생성한다'라는 의미는 '하나의 클래스를' 작성한다는 의미가 됩니다. 엔티티라는 용어는 때로는 클래스를 의미하는 경우도 있고, 클래스에 의해 생성..
Distructuring? -배열 또는 객체에서 데이터를 별개로 추출하여 할당해 줍니다. 분리하여 할당 하는 방법 값이 모자라면 undefind로 기본값이 설정 됩니다. let a,b,c, rest; [a, b, c] = [1, 2, 3]; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3 console.log(rest); // undefined [a, b, c, ...rest] = [1, 2, 3, 4, 5]; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3 console.log(rest); // [4, 5] 변수 값 교환하기 var a = 1; var b = 3; [a, b]..
JDBC(Java Data Base Connectivity) JAVA에서Database을 연결하기 위해 제공하는 Core API입니다. MyBatis란? 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크로서 JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복작업을 제거 합니다. Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있습니다. MyBatis 특징 복잡한 쿼리나 다이나믹한 쿼리에 강하다 - 반대로 비슷한 쿼리는 남발하게 되는 단점이 있다. 프로그램 코..