void : 비었다. 안돌려준다.
메인 함수 안에서 실행을 하려면 static이라는 것을 써줘야 한다
리스트는 .length가 아니라 .size (size는 개수를 세어주는 것)
public (반환타입) 메소드명(파라미터) {
// 명령 내용
return (반환값)
}
- 파라미터 = 재료
- 명령 = 실행코드
- 결과 = 반환값
// 파라미터 X, 반환값 X public void simplePrint() { System.out.println("파라미터도 없고, 반환값도 없어요!"); } // 파라미터 O, 반환값 X public void simpleSum(int num1, int num2) { System.out.println("num1 :" + num1 + ", num2: " + num2); } // 파라미터 X, 반환값 O public int simpleReturn() { return 3; } // 파라미터 O, 반환값 O public int sum(int num1, int num2) { return num1 + num2; }
퀴즈
정수를 받아 뺀 값 반환하는 메소드 만들고 값 인쇄
public static int sub(int num1, int num2) { return num1 - num2; } public static void main(String[] args) { int result = sub(1, 2); System.out.println(result); }
for (시작조건; 계속하는조건; 더하기) {
명령
}
퀴즈
주어진 목록 하나씩 인쇄하는 반복문 작성
List<String> celebs = new ArrayList<>(); celebs.add("아이유"); celebs.add("린다G"); celebs.add("은비"); celebs.add("금비"); celebs.add("비"); celebs.add("차은우"); celebs.add("남주혁"); celebs.add("수지"); celebs.add("정우성"); celebs.add("제니"); celebs.add("정국"); for (int i=0; i<celebs.size(); i++) { String celeb = celebs.get(i); System.out.println(celeb); }
주어진 과일 개수 세고, 그 수 반환 메소드 만들기public class Prac { public static int countFruit(String fruit) { List<String> fruits = new ArrayList<>(); fruits.add("감"); fruits.add("배"); fruits.add("감"); fruits.add("딸기"); fruits.add("수박"); fruits.add("메론"); fruits.add("수박"); fruits.add("딸기"); fruits.add("메론"); fruits.add("수박"); fruits.add("메론"); fruits.add("수박"); fruits.add("감"); int count = 0; for (int i = 0; i < fruits.size(); i ++) { String f = fruits.get(i); if (f == fruit) { count ++; } } return count; } public static void main(String[] args) { int gam = countFruit("감"); int subak = countFruit("수박"); System.out.println(gam); // 3 System.out.println(subak); // 4 } }
// 기본 생성자
public Course() {
}
// 생성자
public Course(String title, String tutor, int days) {
this.title = title;
this.tutor = tutor;
this.days = days;
}
package com.sparta.week01.prac;
public class Course {
// title, tutor, days 가 Course 라는 맥락 아래에서 의도가 분명히 드러나죠!
private String title;
private String tutor;
private int days;
public Course() {
}
public Course(String title, String tutor, int days) {
this.title = title;
this.tutor = tutor;
this.days = days;
}
// setter
public void setTitle(String title) {
this.title = title;
}
public void setTutor(String tutor) {
this.tutor = tutor;
}
public void setDays(int days) {
this.days = days;
}
// getter
public String getTitle() {
return this.title;
}
public String getTutor() {
return this.tutor;
}
public int getDays() {
return this.days;
}
}
Course course = new Course();
course.setTitle(title);
course.setTutor(tutor);
course.setDays(days);
System.out.println(course.getTitle());
System.out.println(course.getTutor());
System.out.println(course.getDays());
@RestController : 자동응답기라는 신호
@GetMapping : GET 방식
spring.h2.console.enabled=true // 보이게 해줘
spring.datasource.url=jdbc:h2:mem:testdb // h2 쓸거야!
- 테이블 생성
CREATE TABLE IF NOT EXISTS courses ( id bigint(5) NOT NULL AUTO_INCREMENT, title varchar(255) NOT NULL, tutor varchar(255) NOT NULL, PRIMARY KEY (id) ); // courses라는 테이블이 없다면 만들어라 // bigint == Long, // AUTO_INCREMENT 자동으로 증가해라 // NOT NULL null이면 안된다!! // varchar == String // PRIMARY KEY (id) id값으로 구분하겠다!
- 데이터 삽입
INSERT INTO courses (title, tutor) VALUES ('웹개발의 봄, Spring', '남병관'), ('웹개발 종합반', '이범규');
- 데이터 조회
SELECT * FROM courses;
@NoArgsConstructor : 기본 생성자 대신 생성
@Entity : 테이블 나타냄
@Id : ID 값, Primary Key로 사용하겠다는 뜻
@GeneratedValue(strategy = GenerationType.AUTO) : 자동 증가 명령
@Column(nullable = false) : 컬럼 값이고 반드시 값이 존재해야 함
@Getter : 정보를 가져오는 메소드
@MappedSuperclass : 상속했을 때, 컬럼으로 인식
@EntityListeners(AuditingEntityListener.class) : 생성/수정 시간을 자동으로 반영하도록 설정
@CreatedDate : 생성일자
@LastModifiedDate : 마지막 수정일자
Course.java : Getter, NoArgsConstructo
CourseService.java : RequiredArgsConstructor (final하고 @ RequiredArgsConstructor 붙히면 아무대서나 가져다 쓸 수 있음 )
- GET : 조회
- POST : 생성
- PUT : 수정
@PathVariable : 뒤에 아이디 값 넣어주는 용도- DELETE : 삭제
RestController : JSON형식으로 받는 자동응답기
Service : 업데이트시 필요
Repository : 생성, 삭제, 조회에 필요
RequestDto : 요청시 필요한 변경 옮김이
abstract > 상속이 되어야만 사용 가능 , new 이런식으로 사용 못함
findAllByModifiedAtBetweenOrderByModifiedAtDesc(startDatetime, endDatetime)
findAll: 모두 찾아라
ByModifiedAtBetween: 수정된 시간들 사이(start,end) 에서
OrderByModifiedAtDesc: 수정된 시간을 기준으로 내림차순