반응형

전체보기 160

[객체 생성 패턴] 점층적 생성자 패턴 → 자바빈 패턴 → Builder 패턴, lombok @Builder 사용방법 및 주의점

목차 객체를 생성하는 방법에는 3가지 패턴이 있다. 점층적 생성자 패턴 : 파라미터 별로 생성자를 만든다 public class Member { private Long id; private String name; private int age; private Team team; public Member(Long id) { this.id = id; } public Member(Long id, String name) { this.id = id; this.name = name; } public Member(Long id, String name, int age) { this.id = id; this.name = name; this.age = age; } public Member(Long id, String nam..

Computer Science 2022.01.29

[JPA] Java Persistence API 등장배경, 사용방법

목차 JPA 등장배경 [MyBatis] 동작원리, 사용방법 정리 목차 MyBatis 등장배경 [JDBC] 사용방법 JDBC : JAVA DataBase Connectivity 기존 자바에서는 DB를 조작하기 위해서 JDBC API를 사용했다. JDBC는 데이터베이스 종류에 상관없이 JDBC만 알면 어떤 데이터베이스를.. lotuus.tistory.com JDBC에서 MyBatis로 넘어오면서 일정부분 편리해졌지만 아직도 불편함은 존재했다 1. 객체마다 반복되는 CRUD, 맵핑코드 작성 @Mapper @Repository public interface MemberRepository { @Insert("insert into member(name, age) values(#{name}, #{age})") @Op..

Backend 2022.01.28

[MyBatis] 동작원리, 사용방법 정리

목차 MyBatis 등장배경 [JDBC] 사용방법 JDBC : JAVA DataBase Connectivity 기존 자바에서는 DB를 조작하기 위해서 JDBC API를 사용했다. JDBC는 데이터베이스 종류에 상관없이 JDBC만 알면 어떤 데이터베이스를 사용하더라도 일관된 코드로 작성할 lotuus.tistory.com 기존의 JDBC API를 보면 DBMS와 연동하고 결과를 얻어오기위한 준비운동에 대한 코드가 절반이다. 여기서 비즈니스 로직이 추가된다면 코드가 더 복잡해지는 것은 물론이고, 한 파일 안에서 너무 많은 역할을 해내야한다 (DB연결.. DB결과값 처리... ResultSet과 객체 맵핑.. 객체를 가지고 비즈니스로직 구현...) 또한 이 연결하는 코드가 다른 파일에서도 중복되어 나타나게된다..

Backend 2022.01.27

[JDBC] 사용방법

JDBC : JAVA DataBase Connectivity 기존 자바에서는 DB를 조작하기 위해서 JDBC API를 사용했다. JDBC는 데이터베이스 종류에 상관없이 JDBC만 알면 어떤 데이터베이스를 사용하더라도 일관된 코드로 작성할 수 있다. JDBC 사용방법 1. JDBC DRIVER 로드 : Driver클래스를 JVM에 로딩 Class.forName(driver); 2. DB 연결 : Driver객체를 다루는 DriverManager를 통해 DB연결 Connection con = DriverManager.getConnection(url, user, password); 3-1. 데이터 삽입 String insertSql = "INSERT INTO member(name, age) VALUES (?,..

Backend 2022.01.26

[GIT] 사용자 이름 변경 ( URL 주소 변경 ), SSH키 등록

https://github.com/사용자이름 사용자 이름 변경( URL주소 변경 ) 1. 깃허브 셋팅 접속 > Account 메뉴 > Change username 클릭 2. 팝업 OK 3. 변경할 이름 작성 4. 변경 완료 후 git을 사용하는 폴더로 가서 마우스 우클릭 후 git bash 오픈 5. 명령어 입력하여 remote 주소 변경 // 이름 변경 전 원격저장소 주소 확인 git remote -v // 새로운 이름의 원격저장소 주소 입력 git remote set-url origin git@github.com:사용자이름/저장소명 // 새로운 이름 원격저장소 주소 확인 git remote -v 6. 진행중인 프로젝트가 있었다면 SSH키 인증해야하기때문에 SSH 생성 //SSH 키 생성 $ ssh-k..

뚝딱수리 2022.01.26

[MyBatis] String을 넘겼을때 Out of range value for column 오류 해결..?

[OrderPost 테이블] @Getter @ToString public class OrderPost { private Long id; private String orderId; private Long postId; private int count; } @Mapper @Repository public interface OrderRepository { @Select("select * from orderpost") List getOrders(); } 코드에 문제가 없는거같은데.. 아래와 같이 오류가 발생했다. (아니 이렇게 간단한 코드에 문제랄게 뭐가있어 대체..ㅜㅜ) Servlet.service() for servlet [dispatcherServlet] in context with path [] thre..

Backend 2022.01.25

[MyBatis] 객체 안에 리스트, 1:N 관계 데이터 가져오기 (feat. ResultMap, Association, Collection)

[MyBatis] 동작원리, 사용방법 정리 목차 MyBatis 등장배경 [JDBC] 사용방법 JDBC : JAVA DataBase Connectivity 기존 자바에서는 DB를 조작하기 위해서 JDBC API를 사용했다. JDBC는 데이터베이스 종류에 상관없이 JDBC만 알면 어떤 데이터베이스를.. lotuus.tistory.com 위에 글도 보시면 좋아용 포트폴리오 삽질(..)중이라 블로그가 뜸하다 오늘 하루종일 삽질한 결과를 써보겠다 게시판을 구현하고 있다. 게시글 1개에 파일은 최대 10개까지 저장될 수 있다. DB도 아래 필드와 동일하게 구현되어있다고 생각하자(=post테이블과 postfile테이블) class Post{ Long id; String title; String content; } c..

Backend 2022.01.20

Spring + MariaDB + Mybatis 연동 및 실행해보기

1. MariaDB에 테이블 생성 및 데이터 추가 2. spring프로젝트를 열고, build.gradle에 dependency 추가 https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter 위 링크에서 원하는 버전을 클릭하고 gradle(short)를 복사해서 붙여넣는다. (반드시 gradle 코끼리모양 꼭 눌러주기!) 📄 build.gradle .... dependencies { implementation 'org.mariadb.jdbc:mariadb-java-client:2...

Backend 2021.12.22

홈페이지 최초접속 시 url에 jsessionid 자동으로 안붙게하기

스프링으로 로그인 기능 구현 후 브라우저를 켜고 최초 로그인 시에 url에 자동으로 jsessionid이 붙는것을 확인했다 서버는 /login에서 새로운 세션을 만들어서 클라이언트에게 반환해준다 이때 서버는 클라이언트가 쿠키 지원여부를 모르기때문에 URL과 쿠키 두 곳에 jsessionid을 반환해준다. 클라이언트는 다음 요청에서 쿠키로 jsession을 보낼 수 있다면 url에 jsession을 생략하고 쿠키로 jsession을 보낼 수 없다면 url에 jsession을 붙이게된다. @PostMapping("/login") public String loginOk(@Validated @ModelAttribute Member member, BindingResult bindingResult, HttpServ..

Backend 2021.12.20

[Swiper] 스와이퍼 한 페이지에 여러개 사용하기. Multiple Swiper

이전 게시글 [Swiper] 스와이퍼 오류 Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'E 다음 게시글 [Swiper] 스와이퍼 한 페이지에 여러개 사용하기. Multiple Swiper 이전 게시글 호출부분 fragment 지정부분 //⭐ID명 동적으로 가져옴 최상급 10000원 //⭐ID명 동적으로 가져옴 //⭐ID명 동적으 lotuus.tistory.com 호출부분 fragment 지정부분 //⭐ID명 동적으로 가져옴 최상급 10000원 //⭐ID명 동적으로 가져옴 //⭐ID명 동적으로 가져옴 swiper-button-next-custom은 버튼을 외부로 빼기위해 css..

Front 2021.12.17
반응형