JAVA8 땅꼬마의 Querydsl 사용해보기! 지난시간 JPQL에 이어서 오늘은 Querydsl를 사용하여 사용자 정보의 삭제여부 Flag를 업데이트 해보려고 한다. 우선 JPQL과 Querydsl에 차이에 대해 간단하게 알아보자! 앞서 JPQL은 SQL를 추상화하여 객체지향(Entity 객체) 쿼리라고 정리하였다. 따라서 테이블 중심의 개발이 아닌 엔터티 중심의 개발이고 특징으로는 대소문자 구분, 별칭을 필수적으로 사용해야하는 부분이 있다. JPQL은 Compile 단 계가 아닌 Runtime 단계에서 오류가 발생하기 때문에 장애의 리스크가 Quertdsl보다 높다. 그리고 개인적으로 쿼리문(문자열)을 작성 - > 옮기고 JPQL에 맞게끔 수정하는 과정에서 오기입을 찾기가 쉽지 않았던 것 같다. Querydsl은 문자열 형태를 펑션화(?)한 느낌이.. 2023. 8. 5. 땅꼬마의 JPQL 사용하기! 지난 시간에 이어 간단하게 JPQL을 사용하여 데이터를 SELECT 해서 가져오자! 먼저 JPQL이란!? Java Persistence Query Language 의 약자로 말그대로 자바 영속성 쿼리이다. SQL를 추상화 하여 자바 객체화된 entity를 처리하는 언어이다. 결국 DB와 통신시 SQL로 변환된다. 특징 - 테이블이 아닌 객체를 검색하는 객체지향 쿼리 - SQL을 추상화 했기 때문에 특정 벤더에 종속적이지 않음 - JPA는 JPQL을 분석하여 SQL을 생성한 후 DB에서 조회(*즉 JPQL은 SQL로 변환된다) 간단한 조회를 구현했다. UserController.java @GetMapping(value = "/user") public ResponseEntity srchUser(@Reques.. 2023. 7. 31. 땅꼬마의 Springboot3 + JPA 구현하기! 어제에 이어서 구현하는 예제를 만들어서 실습! 개발환경은 Springboot 3.0.9 / java 17 / mysql / intellij community 버전 1. 프로젝트 생성 및 디렉토리 구조 프로젝트는 Springboot initializr (https://start.spring.io/) 를 통해서 생성하였다. 기본적인 Spring web, 롬복, mysql 등 추가해서 생성 -> 아래 gradle.build 예시 확인 디렉토리구조 - common : 공통적으로 사용할 dto, exception처리, 후에 공통유틸 등 관하는 디렉토리 -domain : entity와 repository 관리 -각각서비스디렉토리 : 서비스명 하위에 controller, service, dao 두어 서비스별로 관리 .. 2023. 7. 25. 땅꼬마의 JPA 개념정리!! 그동안 기존 업무 + 회사프로젝트 + 정보처리기사 실기로 인해 조금 열심히 살았다 급하고 중요했던 정보처리기사 실기 시험이 끝나서(마지막 기회였는데.... 다시 필기로 ROLLBACK....인가) 그 동안 진행중이었던 프로젝트 기술에 대한 정리 및 기록을 남기려 한다. MES 프로젝트로 BACK-END서버를 구축하고 있다. 대략적인 개발환경은 Springboot 2.7.0 / java 17 / mysql 8버전 / Rocky OS(가비아 G클라우드) / intellij 요렇게 구성했다. Mybatis / JPA 중 고민하다가 새로운 기술을 익히고 조금 더 객체지향이라는 것과 향후 성능과 확장성을 고려하여 JPA를 활용하기로 결정하고, 다만 동적처리인경우 Mybatis를 활용하는 방향으로 설계(?)를 했다.. 2023. 7. 24. 땅꼬마의 Springboot 3.X 버전에 Swagger 연동하기 생각보다 문서가 많이 없어서 글로 남긴다. RestAPI 서버를 구축중이고 Swagger와 연동을 진행했다. Springboot 3.0.6 gradle 7.6.1 스프링 3버전 부터 Springfox와의 연동이 되질 않는다. 그래서 build.gradle에 아래와 같이 디펜던시를 추가하였다. implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0' 기본적인 셋팅은 위 하나의 디펜던시 추가만으로 끝난다. SwaggerConfig도 필요없다 Spring 3에서는 서버실행 후 localhost:8080/swagger-ui/index.html -> Swagger 확인이 가능하다. validation 오류가 있어서 대충 찾아보니 어노테이션 .. 2023. 4. 24. 땅꼬마의 While문 만들기! 자바를 배우고 있는 동생에게 help연락이 왔다! 어떤거지 하면서 같이 예제를 풀어보았다. 조건1. 0보다크고 99보다 작은 랜덤한 정수가 주어진다. 조건2. 주어진 수가 10보다 작은 경우 앞에 0을 붙여 두자리 수로 만든다. 조건3. 앞자리와 뒷자리의 정수를 더한다 조건4. 주어진수의 오른쪽 자리수와 앞에서 구한 합의 오른쪽 수를 붙인다. ex) 랜덤한값 35 3+5=8 -> 58 -> 5+8 = 13 -> 83 -> 8+3 = 11 -> 31 ....... 이렇게 총 몇번의 사이클이 돌아야 다시 처음의 수로 돌아오는지에 대한 로직이다. public static void main(String[] args) { Random ran = new Random(); int random = ran.nextInt.. 2022. 10. 11. 땅꼬마의 JAVA Math.random() 활용 점심메뉴 뽑기! 점심시간이 다가와서 무엇을 먹을지 고민하다가 랜덤으로 메뉴를 선정해보기로 하여 간단하게 코드를 작성했다. 점심메뉴뽑기 package test1; public class LunchTime { public static void main(String[] args) { // 메뉴를 입력하세요 (하드코딩함) String[] menu = {"뼈해장국","순대국","떡볶이","돈가스","라멘","제육볶음","짬뽕"}; //랜덤값 셋팅 //math.random() 활용 0~메뉴의 갯수 랜덤값 셋팅 //7개의 메뉴 입력시 인덱스 0~6 값이 랜덤하게 변수에 담김 int random = (int)(Math.random() * menu.length); //랜덤하게 셋팅된 인덱스 번호로 메뉴값을 출력함 String today.. 2022. 8. 31. 땅꼬마의 JAVA 환경셋팅 및 hello world 출력해보기! 관광경영 - > 컴퓨터 컴맹 땅꼬마에게는 쉬운 일이 아니었다. 하지만 생각보다 코딩이 재밌었고!!!! 어쩌다보니 풀스택 개발자로 만 일년이 되었다!! (짝짝짝 나새꾸 고생많았다!!) 처음 시작할 수 있게 해주었던 JAVA언어에 대해서 정리해보고자 한다! 1. JAVA 환경 셋팅 * 설치하기 □ java 1.8 버전 설치 : https://www.oracle.com/kr/java/technologies/javase/javase8-archive-downloads.html OS, 컴퓨터 사양에 맞게 설치하면 됩니닷!! Java Archive Downloads - Java SE 8 | Oracle 대한민국 죄송합니다. 검색 내용과 일치하는 항목을 찾지 못했습니다. 원하시는 정보를 찾는 데 도움이 되도록 다음을 .. 2022. 8. 30. 이전 1 다음