Backend/Spring 36

@Transactional : 해줘야 할 상황. rollback 되지 않을 때.

Service에서 로직을 수행할때 묶어서 처리해야할 다수의 메소드가 있을 경우, 묶어서 처리해줘야한다. 꼭 여러개의 메소드가 있다고 해서 Transactional을 걸어줘야하는건 아니다.만약 다수의 메소드라 해도 SELECT .. 만 해주는 등 R 작업만 해준다면 꼭 묶음 처리해줘야할 필요가 없기 때문. 읽어오기만 하는 작업만 이어도 Pager일 경우엔 해줘야한다. @Transactionalpublic void insertInfo(Map paramMap) throws Exception { getInfo(); insertUser(); updateInfo(); //에러발생} 이렇게 여러개의 메소드를 수행한다고 가정해보자. 여러 메소드를 수행하다가 한 메소드에서 에러가 발생한다면, 전체insertInf..

Backend/Spring 2025.06.25

ajax(fetch)로 db연동해서 출력하기

타임리프를 사용하여 구현해보자. 시작하는 index.htmljson 처리: 단일자료json처리: 복수자료ajax 요청처리(jQuery)ajax 요청처리(fetch)  컴포넌트 데이터처리@Component@Datapublic class MyModel { private String name; private String skills[];}  json 처리반환값이 1개일경우@Controllerpublic class JsonController { @Autowired private MyModel myModel; @GetMapping("list") @ResponseBody public MyModel getJson(@RequestParam("name") String name) { myModel.setName(nam..

Backend/Spring 2024.08.16

ajax를 이용해 db에 이미지 넣어보기

db에 다운로드해보자친구사진 넣어보기create table friend(bunho int primary key,irum varchar(20),junhwa varchar(15),jikup varchar(50),sajin blob,imagetype varchar(255));insert into friend(bunho, irum, junhwa, jikup) values(1, '신기해', '01011111234', '자바개발자');select * from friend;   엔티티@Entity@Data@AllArgsConstructor@NoArgsConstructor@Builderpublic class Friend { @Id //@GeneratedValue(strategy = GenerationType.IDENT..

Backend/Spring 2024.08.14

파일 업로드, 다운로드

css나 이미지는 static폴더 내에 위치해야한다. 이미지 파일 사이즈 제한주기.  ++ 자동으로 refresh되도록 체크해두자  파일업로드package pack.controller;import org.springframework.web.multipart.MultipartFile;import lombok.Data;@Datapublic class UploadDto { private String myName; private MultipartFile myFile; //등록일 등 기타는 생략}package pack.controller;import org.springframework.stereotype.Component;import org.springframework.web.multipart.MultipartF..

Backend/Spring 2024.08.13

JPA 쿼리 메소드 참고 글

https://wisdom-cs.tistory.com/66 [Spring Data JPA] 기본 사용법 정리전에 공부했던 Spring Data JPA의 기본 사용법을 정리하고자 한다. ✔️ Dependency build.gradle 파일의 dependencies 부분에 다음을 추가하자. implementation ‘org.springframework.boot:spring-boot-starter-data-jpa’ ✔️ 공wisdom-cs.tistory.comhttps://jjangadadcodingdiary.tistory.com/entry/Spring-Spring-Data%EC%9D%98-findBy-%EB%A9%94%EC%84%9C%EB%93%9C-%EB%84%A4%EC%9D%B4%EB%B0%8D-%EA..

Backend/Spring 2024.08.08

entity와 dto의 분리

dto          toentity     entity사용자   > Controller  > Service > Jpa >     DB                DTO와 EntityDTO(Data Transfer Object) : 클라이언트와 서버 간 데이터 전송을 위해 설계된 객체Entity : 데이터베이스에 저장되는 데이터 객체로, 데이터베이스와 직접적으로 연결  Dto와 Entity를 분리한 이유entity을 직접 반환하는 코드에서 dto로 변환하여 view한테 반환한 이유는 첫 번째 이유는 Entity의 setter를 없애기 위해서였지만 이와 더불어 내가 찾아본 entity와 dto를 분리해야 하는 이유에 대해 적어보겠다. 1. Entity를 보호할 수 있다.entity를 사용자에게 노출하면 ..

Backend/Spring 2024.08.07

JPQL연습_미니게시판

프로젝트 셋팅  엔티티 생성하기package pack.model;import java.sql.Timestamp;import jakarta.persistence.Entity;import jakarta.persistence.Id;import jakarta.persistence.Table;import lombok.Data;@Data@Entity@Table(name = "springboard")public class Board { @Id private int num; private String author, title, content; private Timestamp bwrite; private int readcnt;} JPA로 작업할 것이기에 JPArepository extends 를 실시한다.package..

Backend/Spring 2024.08.01

wmvc 연습. #{}와 ${}의 차이

테이블 하나 만들어주고create table userinfo(userid varchar(10) primary key,password varchar(10) not null,name varchar(10) not null,email varchar(30)); 작업을 위해 값 넣어주기. insert into userinfo values('admin','admin','관리자','admin@admin.co.kr');insert into userinfo values('korea','kor','책임자','korea@admin.co.kr');   폴더들을 보며 틀을 잡아보자.    폴더별 구분파일의 용도VIEWwebapp내html파일사용자가 값을 입력 VIEW WEB-INF내 jsp파일사용자에게 결과물 출력 Control..

Backend/Spring 2024.08.01