db 12

Query Dsl 적용해보기②

조회를 해보도록 하겠습니다!  ⭐ ItemCustomerRepository에 getItem메서드를 정의해줍니다. 여기서 주의할사항!  List getItem(); 이것만 쓰면getItem못찾는다는 오류가 뜹니다.😭 무엇이 문제인지 한참 헤맸습니다.더보기Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'itemController' defined in file [C:\Users\kimse\Desktop\fighting\challenge\jpa\out\production\classes\start\jpa\controller\ItemControlle..

Query Dsl 적용해보기①🥲

QueryDsl을 스스로 공부하려다보니 적용하는데 쉽지않았습니다😭    ⭐Build.gradle구글링을 많이 해봤지만 계속적인 오류가 났습니다.layout.buildDirectory.dir("generated/querydsl").get().asFile이부분을 def querydslDir = "$buildDir/generated/querydsl" 이렇게 많이 사용하셨지만 저는 오류가 나서 아래처럼 바꾸니 정상적으로 실행이됐습니다!Gradle 5.0 이후, Gradle은 빌드 디렉토리와 관련된 파일 경로를 처리하는 방식이 변경되었다고합니다.  plugins { id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10'}configurations { compil..

Query Dsl

QueryDSL JPA• 문자가 아닌 자바코드로 JPQL을 작성할 수 있음 • JPQL 빌더 역할 • 컴파일 시점에 문법 오류를 찾을 수 있음 • 동적쿼리 작성 편리함 • 단순하고 쉬움 • 실무 사용 권장  QueryDSL JPA ① SQL, JPQL 을 코드로 작성할 수 있도록 해주는 빌더 API 입니다.② Entity 클래스와 매핑되는 QClass 라는 객체를 사용해서 쿼리를 실행합니다.  QClass 란 ?QueryDSL 은 컴파일 단계에서 엔티티를 기반으로 QClass 를 생성하는데 JPAAnnotationProcessor 가 컴파일 시점에 작동해서 @Entity 등등의 어노테이션을 찾아 해당 파일들을 분석해서 QClass 를 만듭니다. QClass 는 Entity 와 형태가 똑같은 Static ..

프로젝트(SpringBoot)에 JPA적용해보기6 삭제와 @Transactional

회원 삭제 (난이도 ⭐) 삭제할 수 있는 방법이 다양하게 있는데요 저는 단순하게 id를 받아와서 삭제하는걸로 해봤습니다.  ☁️ Repositoryfind메서드로 id를 먼저 찾아줍니다.member가 null이 아니면 remove로 memer를 삭제시켜줍니다.// 삭제 메소드public void delete(Long id) { Member member = em.find(Member.class, id); if (member != null) { em.remove(member); }} ☁️ Service삭제에서도 필수로 @Transactional어노테이션을 사용해줘야합니다 깜빡하고 안써서 There was an unexpected error (type=Internal Server ..

프로젝트(SpringBoot)에 JPA적용해보기5 🤤

오늘은 회원 수정을 해보려고합니다.(난이도 ⭐⭐⭐) JPA가 아직 서툴다보니 수정에서 시간이 꽤 걸렸습니다. 강의를 더 사서 들어봐야하나🥲  ✏️Repository(수정)EntityManager의 createQuery() 메서드를 사용하여 update쿼리를 작성했습니다.찾아보니 @Modifying 어노테이션을 사용하여 수정을 많이 하는것같더라구요 좀 더 공부해서 적용해보겠습니다public int update(Member member) { return em.createQuery("update Member m set m.name = :name, m.age = :age, m.pw = :pw where m.id = :id") .setParameter("name", member.getNa..

프로젝트(SpringBoot)에 JPA적용해보기4 🫡

로그인 로그아웃🐸🐸🐸 (난이도 ⭐⭐)   ✏️Serivce로그인이전에 작성했던 Repository에서 findByName을 사용해 비교해줍니다.HttpSession을 사용해 클라이언트를 식별합니다. 로그아웃 로그인 되어있는 여부를 확인하고 invalidate() 세션 무효화시키기 즉 로그아웃을 시킵니다// 로그인public boolean login(Member member, HttpServletRequest request) { Optional findMember = memberRepository.findByName(member.getName()); if (findMember.isPresent()) { Member foundMember = findMember.get(); ..

프로젝트(SpringBoot)에 JPA적용해보기3 ☺️

오늘은 전체회원 조회와 등록을 화면에서 볼 수 있도록 구현해보려고합니다.(난이도 ⭐)  우선 Repository를 작성해줍니다!   🍉전체회원조회(Repository)public List findAll() { return em.createQuery("select m from Member m", Member.class).getResultList();}   🍉 Service@Overridepublic List findMember() { return memberRepository.findAll();}  🍉 Controllermodel에 담아서 member의 정보를 볼 수 있게 해줍니다. 뷰에서 해당 정보를 사용할 수 있습니다.@GetMapping(value ="/check")public Str..

프로젝트(SpringBoot)에 JPA적용해보기2🥲

JPA를 처음 적용해보려하니 많이 어렵네요🥲🥲🥲🥲🥲      조금씩 하나씩 해보고있습니다.이어서 Repository와 Test를 해봤습니다!   저번글에 Entity member클래스에  @GeneragtedValue를 안넣어줬더라구요!엔터티의 기본 키(primary key) 필드에 대한 값을 자동으로 생성하기 위해 사용됩니다. oracle에서 사용했던 시퀀스(sequence)@Id@GeneratedValue(strategy = GenerationType.AUTO)@Column(name = "MEMBER_ID")private Long id;    1. Repository를 생성해줍니다! @PersistenceContext 어노테이션: 엔티티 매니저를 주입받기 위해 사용됩니다. insert와 se..

MySql 설치하기🤓

1. MySql 최신버전 설치하기 저는 8.0.37설치했습니다😉 https://dev.mysql.com/downloads/installer/ MySQL :: Download MySQL InstallerNote: MySQL 8.0 is the final series with MySQL Installer. As of MySQL 8.1, use a MySQL product's MSI or Zip archive for installation. MySQL Server 8.1 and higher also bundle MySQL Configurator, a tool that helps configure MySQL Server.dev.mysql.com 2번째거를 설치해줍니다     이부분에서는 로그인하지 않고 왼쪽아..

이론) 데이터베이스

① 데이터베이스 언어에 대해 설명하시오. DDL(정의어 : Data Definition Language) : 데이터베이스 구조를 정의, 수정, 삭제하는 언어이다.(alter, create, drop) DML(조작어 : Data Manipulation Language) : 데이터베이스내의 자료 검색, 삽입, 갱신, 삭제를 위한 언어(select, insert, update, delete) DCL(제어어 : Data Control Language) : 데이터의 무결성 유지, 병행 수행 제어, 보호 관리를 위한 언어(commit, rollback, grant, revoke) ② select 쿼리 실행순서 FROM, ON, JOIN > WHERE, GROUP BY, HAVING > SELECT > DISTINC..