반응형

IT/development 226

[spring Boot] Request method 'POST' not supported(feat. thymeleaf)

목차 미래의 내가 보기 위해 기록함 사이드 프로젝트에서 html template으로 thymeleaf 사용 하고 있다. 보통 이 에러는 클라이언트와 서버의 http method가 일치하지 않는 경우 발생하는데 내 경우는 아래처럼 form에서도 post로 보내고 서버에서도 post로 받게끔 되어 있었다. view 제목 Incorrect date 내용 Incorrect date 이름 Incorrect date Submit Controller /** * 게시글 작성 폼 * @param model * @return */ @GetMapping("/admin/board/new") public String createForm(Model model) { model.addAttribute("boardForm", new ..

IT/development 2022.11.22

[jQuery] jQuery.ajax() 사용법 예시(feat. 댓글 페이지네이션)

목차 jQuery .ajax() 😄 미래의 내가 보기 위해 남겨둠 jQuery의 ajax 사용법만 간단히 남기려고 했으나 예시 코드에 있는 코드들도 같이 적는게 좋을 듯 싶어서 같이 남김 // 예시 $.ajax({ // 호출 url url: '/reply/insert', // 전달방식 type: 'post', // dataType: "json"// 데이터타입 json으로 할 경우 // 전달할 데이터 data: {'boardId': boardId, 'replyContent': replyContent, 'replyWriter': replyWriter}, // 성공 시 콜백 함수, 밑에 실패 시 콜백도 만들어도 좋다. success: function (data) { getRelyList(); } // 댓글 조..

IT/development 2022.11.21

[IDE] intellJ IDEA live template 생성

목차 intellJ IDEA live template 😄 인텔리제이에서 code template을 미리 설정해서 편하게 쓸 수 있는 기능 내가 원하는 코드를 미리 설정해 놓고 쓰면 편하다. 변수도 세팅할 수가 있어서 아주 편하다, 예시로 jUnit method를 만들었다. Live Templates의 우측 + 누르면 아래처럼 표시된다. Live Template은 코드 입력하는 것이고 Template Group은 그룹을 만드는 것이다. 설정 후 ok 누르고 빠져나온다. 이제 코드에서 tdd 입력 후 탭 누를 경우 위에서 설정 해 놓은 템플릿이 표시된다. 개발자가 자동완성 해 놓고 싶은 코드를 미리 설정할 수 있는 아주 막강한 기능이다. 🙂

IT/development 2022.11.21

[mybatis] mybatis 이중 foreach insert(feat. 이중 계층 객체 저장)

목차 mybatis를 이용해서 계층 구조의 DTO 혹은 VO객체를 저장하는 방법을 기록한다. 대상 DBMS: mysql, mariaDB 아래처럼 객체가 객체를 참조하는 경우 이를 저장하는 방법이다.(시간 상 코드 위주로 최대한 심플하게 정리) 마블 캐릭터 데이터를 조회하는 오픈 API가 있다고 가정하고 API 결과를 list에 담아 루프를 돌려 객체에 세팅한 뒤 DB에 저장하는 로직 예시(상상 코딩 😅) // 메인객체 @Getter @Setter public class TestVO { private Long mem_no; private String data_type; private String code; private List addList = new ArrayList(); } // 서브 객체 @Gett..

IT/development 2022.11.21

[Spring data JPA] 초간단 CRUD

목차 Spring Boot와 JPA 초간단 CRUD REST API 예시(내가 보기 위해 기록) 라이브코딩(시간 상 많이 복붙 함) 😶 h2 database ver: H2 2.1.214 (2022-06-13) build.gradle 😍 plugins { id 'org.springframework.boot' version '2.6.11' id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } group = 'com.devlsy' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { compileOnly { extendsFrom annotationProces..

IT/development 2022.11.21

[jpa] querydsl 세팅(feat. 환경설정만 다룸)

목차 JPA를 사용할 때 동적 및 복잡한 쿼리 작성 시 querydsl은 선택이 아닌 필수인데 이게 세팅하기가 좀 까다로움 그래서 이 곳에 내가 나중에 보기위해 메모를 해둠 처음 한번만 해두면 나중엔 복붙/수정해서 사용하면 됨 이 글에서는 querydsl 기본 세팅 방법만 다룸 mybatis와 비교해서 개인적으로 제일 좋은 점은 mybatis는 런타임 때 해당 쿼리를 돌려봐야지만 에러를 알 수 있지만 querydsl은 자바코드라서 오탈자가 문법 에러가 있으면 컴파일단계에서 바로 알 수 있다. querydsl 세팅 방법 😎 build.gradle 설정 😄 // 스프링부트 2.6x 버전에서 세팅함 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id..

IT/development 2022.11.21

[mybatis] mybatis 배열 저장(feat. foreach)

목차 위와 같이 insert를 1개 이상 하는 로직을 만들게 되었고 미래의 내가 보기 위해 기록한다. 😄 클라이언트에서 배열로 값을 받아서 DB에 저장하는 기능이 필요했다. 참고로 mysql과 Oracle은 문법이 다르다. Oracle은 아직 안해봐서 그건 나중에 알아보겠다. Controller @RequestParam(value = "변수명[]") String[] avengers 이런식으로 받음 @PostMapping("") public ResponseEntity createArray( @RequestParam(value = "avengers[]") String[] avengers ) throws Exception{ Service.insertAvengers(avengers); 생략... Service ..

IT/development 2022.11.21

[mybatis] mybatis 동적쿼리(feat. <where></where>)

목차 mybatis Dynamic SQL 😃 계속 실수 했던 동적쿼리이다. 오늘 나는 이걸 이해 했지만 미래의 넌 또 까먹을 수 있으니 여기에 메모해 둔다. 동적 WHERE 회원 테이블에서 회원이름과 이메일의 존재에 따라 동적으로 WHERE을 붙여서 검색하는 예시이다. 기존에는 mapper xml에서 아래처럼 작성했었다. 쿼리를 작성하고는 반드시 단위 테스트를 여러번 해봐야 한다는 걸 또 깨달았다.(그걸 이제 알았니? 😥) SELECT * FROM member WHERE member_name = #{memberName} WHERE email = #{email} 역시 개발하면서 JUnit으로 단위 테스트를 계속 해야 한다. 이걸 모르고 나중에 tomcat을 띄웠다면 에러를 너무 늦게 발견 하게 될 것이다...

IT/development 2022.11.20

[mybatis] foreach parameterType hashmap 예제

목차 미래의 나를 위해 기록한다. 😃 mybatis에서 foreach를 돌릴 때 list는 이제 좀 익숙해 졌는데 map은 아직 좀 서툰 느낌이 들어 기록한다. 예제는 동적으로 insert문의 내용과 SELECT문의 내용을 채우는 예제이다. 아직은 완성형이 아니고 아이디어만 녹인거라 코드가 매우 허술하지만 업데이트 해 나갈 것이다. jpa를 쓰지 않는 프로젝트에서 쿼리문 작성 시 오탈자 방지와 퍼포먼스 향상을 위해 작성하는 중 결국 단순반복 노가다를 많이 줄이기 위함이다. 테스트를 위한 테이블 생성 CREATE TABLE `t_member`( `user_seq` bigint auto_increment, `user_id` varchar (250), `user_name` varchar(250), primar..

IT/development 2022.11.20

[springBoot + mybatis] 개발환경 세팅(feat. IntelliJ IDEA 2021.2)

목차스프링부트로 개발 시 mybatis를 정말 간편하게 세팅할 수 있다. 😄역시나 시간이 지나면 기억을 못하기 때문에 미래의 내가 보기 위해 이곳에 기록한다.예시를 위해서 테이블을 하나 생성하고 여기에 간단한 CRUD를 하겠다.라이브 코딩(시간 상 많이 복붙) 👹프로젝트 생성(인텔리제이) 😄의존성은 아래처럼 세팅웹 개발을 할 것이니까 Spring Web, 메모리 DB 사용을 위해 h2와 getter/setter, toString 등 단순반복 줄여주는 lombok, mybatis를 사용할거니까 mybatis, view template은 Thymeleaf 설정 후 FINISH 눌러서 프로젝트 생성테스트 테이블 생성 🤗create table member (member_id bigint not null ..

IT/development 2022.11.20
반응형