JAVA/Practice16 [Spring] JPA를 활용한 회원 정보 관리 시스템 구현하기 🔍 JPA(Java Persistence API) JPA(Java Persistence API)는 자바 애플리케이션에서 객체와 관계형 데이터베이스 간의 매핑을 단순화하는 표준 API이다. 이번 포스트에서는 JPA를 활용하여 회원 정보 관리 시스템을 구현한다.🔍회원 정보 엔티티 클래스 설계회원 정보를 관리하기 위한 엔티티 클래스인 UserEntity가 필요하다. 이 클래스는 MEMBER 테이블과 매핑된다. UserEntity 클래스의 주요 속성은 다음과 같다.id: 회원 식별자(자동 생성)username: 회원 이름email: 회원 이메일 (기본 키)pw: 회원 비밀번호nickname: 회원 닉네임ph: 회원 전화번호birth: 회원 생일gender: 회원 성별🔍 회원 정보 엔티티 클래스 구현주어진 .. JAVA/Practice 2024. 4. 2. [Spring] Command 객체를 이용한 Controller 🔍 Command 객체 Command 객체는 사용자의 입력값이나 요청을 담는 객체이다. HTTP 요청에 많은 데이터가 포함될 경우, 모든 데이터를 개별적인 매개변수로 전달하는 것은 번거로울 수 있다. 이런 경우 Command 객체를 사용하여 관련 데이터를 하나의 객체로 묶어 전달할 수 있다. 이전에는 컨트롤러에서 DTO를 new를 해주고 reponse와 request 객체에 담아서 사용하였지만 이 커맨드 객체를 활용하면 DTO에 값을 직접 넣지 않아도 View에서 전송한 데이터가 자동으로 들어가게 된다. @Controller public class SignIn { @Autowired MemberService memberService; @RequestMapping(value = "/signIn", meth.. JAVA/Practice 2024. 3. 14. [MAVEN] SpringMVC2 버전2 연습 (Controller) 🔍 목표 중간 프로젝트 때 진행했던 카메라 커뮤니티 사이트를 Spring으로 이관하는 것 실무에서 어떤 버전을 사용할지 알 수 없기 때문에 여러 버전을 연습 앞에서 썼던 SpringMVC2에 대한 설명이 생각보다 이해하기 힘든 것 같아 Refresh!! 🔍 DispatcherServlet 버전 1에서는 개발자가 직접 작성한 DispatcherServlet을 사용했다. 하지만 버전 2에서는 Spring에서 제공하는 DispatcherServlet을 사용한다. 의존 주입을 하기 위해서는 .xml 즉, 설정파일이 필요하다. 💡 org.springframework.web.servlet.DispatcherServlet web.xml dispatcher org.springframework.web.servlet.Di.. JAVA/Practice 2024. 3. 7. [MAVEN] SpringMVC2 버전1 연습 (Controller) 🔍 목적 중간 프로젝트 때 진행했던 카메라 커뮤니티 사이트를 Spring으로 이관하는 것 실무에서 어떤 버전을 사용할지 알 수 없기 때문에 여러 버전을 연습 앞에서 썼던 SpringMVC2에 대한 설명이 생각보다 이해하기 힘든 것 같아 Refresh!! 🔍 DispatcherServlet (FrontController) DispatcherServlet은 MVC2 패턴에서 유일하게 사용하는 서블릿이다. 그냥 이게 없으면 뭘 할 수가 없음 Spring에서는 FrontController 대신 DispatcherServlet을 사용한다. 버전 1에서는 개발자가 만든 DispatcherServlet을 사용한다. 💡 import com.spring.controller.common.DispatcherServlet D.. JAVA/Practice 2024. 3. 6. [Spring] .xml (설정파일)의 구조 : 이 부분은 com.spring.biz 패키지 및 하위 패키지에서 @Component, @Service, @Repository, @Controller 등과 같은 어노테이션이 지정된 클래스들을 스캔하여 스프링 빈으로 등록한다. : LogAdvice 클래스를 스프링 빈으로 등록하는 부분이니다. 이 빈은 AOP에서 Advice 역할을 수행한다. : AOP 설정을 시작하는 태그이다 : aPointcut이라는 이름의 포인트컷을 정의하는 부분이다. 이 포인트컷은 com.spring.biz 패키지 및 하위 패키지에서 *Impl로 끝나는 모든 클래스의 모든 메서드를 대상으로 한다. : logAdvice 빈을 참조하는 Aspect를 정의하는 부분이다. 이 Aspect는 Advice와 Pointcut을 결합하여 Advi.. JAVA/Practice 2024. 2. 29. 자바(Java)에서 ResultSet 클래스 🔍 ResultSet ResultSet 클래스는 Java에서 데이터베이스에서 가져온 결과 집합을 나타내는 인터페이스다. JDBC(Java Database Connectivity)를 사용하여 데이터베이스와의 상호 작용을 지원하는데, ResultSet는 그 중에서 쿼리 결과를 담고 조작할 수 있는 중요한 인터페이스 중 하나다. ResultSet 인터페이스는 Statement 객체를 통해 SQL 쿼리를 실행한 결과로 생성된다. Statement는 데이터베이스로 쿼리를 전송하고, ResultSet은 그 결과를 효과적으로 처리한다. 주로 Statement의 executeQuery 메서드를 통해 SQL 쿼리를 실행하면서 ResultSet 객체를 얻는다. 🔍 ResultSet 주요 메서드 커서 이동 메서드: next.. JAVA/Practice 2023. 12. 20. [Program] MVC패턴을 이용한 자판기 🔥 기능 자판기 프로그램 사용자 : 메뉴목록출력, 메뉴선택 관리자 : 메뉴추가, 메뉴재고변경, 메뉴삭제 💧 코드 Model (DAO) package model; import java.util.ArrayList; public class ProductDAO { private ArrayList datas; // DB public ProductDAO() { datas=new ArrayList(); // 샘플 데이터 추가 ProductDTO sample01=new ProductDTO(); sample01.setNum(1001); sample01.setName("콜라"); sample01.setPrice(1200); sample01.setCnt(3); datas.add(sample01); ProductDTO sam.. JAVA/Practice 2023. 12. 13. [Program] 배열리스트를 이용한 학생부 🔥 기능 설명 학생들을 관리하고 검색하기 위한 프로그램을 만든다. 사용자는 학생 목록을 출력할 수있고 특정 학생 1명을 검색하거나 전체 학생 중에서 가장 성적이 높은 학생 1명을 출력할 수 있다. 학생 추가, 점수 변경, 학생 삭제는 관리자만 할 수 있도록 한다. 💧 코드 package class03; import java.util.ArrayList; // 배열리스트를 사용하기 위해 ArrayList를 import import java.util.Random; import java.util.Scanner; class Student { // 접근제어자 // public 메서드 // private 멤버변수 private int num; // PK : 사용자가 선택 xxx 프로그램에서 설정 O private S.. JAVA/Practice 2023. 12. 10. [배열] 선택 정렬 (Selection sort) 선택 정렬이란? 제자리 정렬(in-place sorting) 알고리즘의 하나 입력 배열(정렬되지 않은 값들) 이외에 다른 추가 메모리를 요구하지 않는 정렬 방법 순서마다 넣을 위치(index)는 이미 정해져 있고, 원소를 선택하는 알고리즘 코드 package solo1; // 1. 최소값을 구합니다. // 2. 최소값과 현재 인덱스에 위치한 값을 바꿔서 정렬합니다. // 최소값과 index[0]과 스위칭 - temp에 임시로 저장 public class Selection2 { public static void main(String[] args) { // 배열의 크기를 5로 저장 int[] selArr = new int[5]; // 0번 인덱스부터 4번 인덱스까지, 총 5개의 요소를 정함 selArr[0].. JAVA/Practice 2023. 11. 29. [배열] 삽입 정렬 (Insertion sort) 삽입 정렬이란? 삽입 정렬(insertion sort)은 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 코드 package solo1; public class Insertsort { public static void main(String[] args) { int[] arr = new int[5]; arr[0] = 100; arr[1] = 5; arr[2] = 60; arr[3] = 1000; arr[4] = 30; // [100,5,60,1000,30] for (int i = 1; i .. JAVA/Practice 2023. 11. 28. [배열] 버블 정렬 (Bubble sort) 버블 정렬이란? 버블 정렬 또는 거품 정렬은 정렬 알고리즘 중 하나이다. 시간 복잡도가 O(n^{2})로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 버블 정렬의 장점 1. 코드가 단순하다. 2. 추가적인 메모리를 필요로 하지 않는다. 3. 작은 데이터셋에서는 효과적이다. 버블 정렬의 단점 1. 큰 데이터셋에서는 매우 비효율적이다. 2. 다른 정렬 알고리즘에 비해 느리다. 버블 정렬의 알고리즘 버블 정렬은 기본적으로 배열의 두 수(a, b)를 선택한 뒤, 만약 그 두 수가 정렬되었다면 놔두고 아니라면 두 수를 바꾸는 방식으로 진행된다. 오름차순으로 정렬할 때는 a>b여야 정렬된 것으로 판단한다. 이를 배열의 .. JAVA/Practice 2023. 11. 27. [배열] Random 활용 랜덤 정수를 5개 저장할 수 있는 배열이 존재 1~6까지 랜덤하게 저장 후 2가 나온 횟수와 정수들의 총합 그리고 평균을 출력 코드 public static void main(String[] args) { int[] datas = new int[5]; // 5개에 정수를 저장할 배열 할당 int count = 0; // 2의 개수를 저장할 변수 count 초기화 int total = 0; // 총합을 저장할 변수 total 초기화 double avg = 0; // 평균을 저장할 변수 avg 초기화 Random rand = new Random(); // 랜덤 숫자를 뽑기 위한 Random 클래스 사용 for (int i = 0; i < datas.length; i++) { // 배열 datas의 크기 만큼.. JAVA/Practice 2023. 11. 23. 이전 1 2 다음