개발중/Spring92 [스프링] 액셀 문서 업로드 - 이름 변경 내가 해결해야 하는 상황 🟣 상황 1 사용자가 csv 파일을 업로드 한다. 🟣 상황 2 csv 파일의 이름명을 바꾸어서 운영 서버에 절대 경로에 저장한다. 상황 1 - 사용자가 csv 파일을 업로드 한다. @ApiOperation @PostMapping(value = "") public int trainData( @ApiParam( name = "file", type = "MultipartFile", value = "파일", example = "", required = true ) @RequestParam(value="file") MultipartFile file, HttpServletRequest request) { return service.insertTrainData(file, request); }.. 개발중/Spring 2021. 7. 6. 스프링 - zip 파일 다운로드 스프링 - zip 파일 다운로드 🟣 DataBase Data 에 저장 되어 있는 zip 파일의 주소 ( 리눅스 서버 경로 ) 를 가지고 와서 다운로드 하기. package com.rsn.LucyAI.api.lucyai.util.service; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResp.. 개발중/Spring 2021. 7. 5. JPA 공부하기 🔻 JPA 공부하기 ✅ JPA - Java Persistence API - ORM을 사용하기 위한 인터페이스를 모아둔 것 - 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 - 자바 진영의 ORM 기술 표준 ✅ ORM - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 객체를 ORM 프레임워크에 저장하면, ORM 프레임워크가 SQL을 생성해서 객체를 DB에 관리 - 대중적인 언어에는 대부분 ORM 기술이 존재 ✅ JPA를 사용하는 이유 - SQL 중심적인 개발에서 객체 중심으로 개발 - 개발 생산성 향상 - 유지보수 편의 - 패러다임의 불일치.. 개발중/Spring 2021. 6. 23. 스프링 서버에 액셀 파일 업로드 액셀 파일 업로드 Controller @ApiOperation(value = "Excel File 저장", notes = "✅ Excel File 저장 합니다.\n - \n " ) @PostMapping(value = "/") public int excelData( @ApiParam( name = "filePath", type = "MultipartFile", value = "학습 데이터 파일 경로", example = "", required = true ) @RequestParam(value="filePath") MultipartFile tdiFilePath, HttpServletRequest request) { ExcelService service = new ExcelService(); service.. 개발중/Spring 2021. 6. 11. @ApiParam 과 @RequestParam 의 차이점 🖤 글이 도움이 되었다면 유튜브 클릭 해주세요 🖤 비전공자 개발자 관련 영상 ApiParam 과 RequestParam 의 차이점 REST API 로 개발하면서 아래처럼 파라메터를 받기로 적기는 적는데 "왜 param 을 두개나 적어줄까?" 라는 의문이 들었다. @ApiParam( value = "BIN SOO", name = "binsoo", type = "String", example = "jung bin soo", required = false) @RequestParam(defaultValue="") String binsoo , ApiParam은 문서 자동화를 위한 Swagger에서 쓰이는 어노테이션이고 RequestParam은 http 로부터 요청 온 정보를 받아오기 위한 스프링 어노테이션이다. .. 개발중/Spring 2021. 5. 27. REST API 의 Mapping 방법 정리 REST API 의 Mapping 방법 정리 REST API 로 개발을 하면서 신기한 점이 있는데 매번 헷갈려서 한번 더 정리하고 넘어가야 겠다. 아래와 같이 /jung/binsoo 라는 URL이 있을 때 이 하나의 URL에서 하는 일은 여러가지가 될 수 있다. 예를 들어 SELECT, INSERT, DELETE, UPDATE 등.. @RestController @Api(tags = {"Binsoo"}) @RequestMapping("/jung/binsoo") public class binsooController { } 기존에는 아래처럼 4개의 url 을 매핑해줬어야 했는데 /jung/binsoo/select /jung/binsoo/insert /jung/binsoo/update /jung/binsoo/.. 개발중/Spring 2021. 5. 27. @RequestParam Null 잡기 String 형 null 값 허용하기 첫번째 방법 @RequestParam 안에 required = false @RequestParam(value="binsoo", required = false) String bonsoo 두번째 방법 @Nullable null 이어도 받겠다. @ApiParam( value = "binsoo", name = "binsoo", type = "String" ) @RequestParam @Nullable String binsoo) int 형 null 값 허용하기 String Type 은 잘 잡히는데 int 형이 잘 잡히지 않는다. 기본값 설정 후 int 형이 null 일 경우에 기본값으로 세팅이 된다.(defaultValue="0") @ApiParam( value = "bins.. 개발중/Spring 2021. 5. 26. MYBATIS 에서 LIKE 절 사용하기 검색어를 입력할 때는 특정한 언어를 찾는다기 보다는 "이 단어가 포함이 되어있는지를 확인해줘 : )" 되게 간단한 문제인데 인터넷에 누가 이상한 정보 올려놔서 내가 다시 기록 틀린 예 AND LMTR_WORD LIKE '${litrSearchWord}' AND LMTR_WORD LIKE '%'+${litrSearchWord}+'%' 맞는 예 AND LMTR_WORD LIKE '%${litrSearchWord}%' 개발중/Spring 2021. 5. 25. 쿼리 생성 API 고민하기. 쿼리를 생성해야 하는데 ,. 일반 쿼리 / 구문 쿼리 / 인접 쿼리 / 제외 쿼리를 각각의 쿼리로 만들다 보니깐. 엥 ? 겹치는 기능들이 너무 많아. 일반 쿼리 생성 - 조합시 OR EX ) ("영양정보") OR ("탄수" AND "화물") OR ("당류") OR ("영양소") public String createBasicKeyword( String beforeKeyword ) { /* * 키워드 구분 * 개행을 기준으로 줄 바꿈을 진행 합니다. */ String[] keywordList = beforeKeyword.split("\n"); String[] wordList; Stream stream; int index = 0; /* * 키워드 가공 * - 띄어쓰기가 있다면 * - 큰따옴표로 감싼 후 AND.. 개발중/Spring 2021. 5. 21. @RestController - @Api 에서 데이터 받는 법 하나의 데이터 전달 받는 법 @ApiOperation(value = "BINSOO", notes = "⬛ BINSOO TEST.\n - \n ◼ BINSOO TEST 는 VO 를 전달 받습니다" ) @PostMapping(value = "/binsoo/test") public void createPerson( @ApiParam( name = "categoryType", type = "String", value = "category Type", example = "ac", required = true) @RequestParam("categoryType") String categoryType, @ApiParam( name = "categorybPseq", type = "int", value = "catego.. 개발중/Spring 2021. 5. 18. mysql / my batis 여러개 업데이트 지금 내가 풀어나가야 할 문제는 아래와 같이 드래그 박스가 존재한다. 위에서 아래로 하나의 속성씩 정렬이 되어있고 ㄱ, ㄴ, ㄷ / A, B, C 순서가 아닌 각 속성들은 정렬 값을 가지고 있다. 하나의 속성이 이동을 했을 때 비동기적으로 정렬 값을 업데이트을 해줘야 한다 🤣 예를들어, 아래 상태에서 1. 프링글스 2. 비스켓 3. 초콜릿 더보기 [ { 속성PK : 10, 속성명 : "프링글스" , 속성정렬번호: 1}, { 속성PK : 20, 속성명 : "비스켓" , 속성정렬번호: 2}, { 속성PK : 30, 속성명 : "초콜릿" , 속성정렬번호: 3}, ] 프링글스가 초콜릿 아래로 이동 된다면 1. 비스켓 2. 초콜릿 3. 프링글스 더보기 [ { 속성PK : 30, 속성명 : "초콜릿" , 속성정렬번.. 개발중/Spring 2021. 5. 18. DB 여러계정 연동 PROJECT > src > resources > application.properties 이 파일은 스프링 부트가 애플리케이션을 구동할 때 자동으로 로딩하는 파일이다. ley / value 형식으로 값을 정의하면 애플리케이션에서 참조하여 사용할 수 있다. 내가 신기한 부분은 이렇게 여러 DB 를 Conection 하는 것 #--- DB spring.aaaa.hikari.driver-class-name=XXXXXXX spring.aaaa.hikari.jdbc-url=XXXXXXX spring.aaaa.hikari.username=XXXXXXX spring.aaaa.hikari.password=XXXXXXX spring.aaaa.hikari.maximumPoolSize=XXXXXXX spring.aaaa... 개발중/Spring 2021. 4. 28. 이전 1 ··· 3 4 5 6 7 8 다음