春のWeb開発、Spring 2週目-1
2022年3月29日(火曜日~30日)
[スパルタエンコーディングクラブ]Web開発の春、Spring第2週コース-1
RDBMSとはリレーショナル・データベース管理システム/コンピュータに情報を格納管理する技術、性能、管理において、 で大きな改善が行われた. RDBMSタイプ:MySQL、PostgreSQL、Oracleデータベース... H 2:In-memory DB/メモリDBとは、サーバの実行時にのみコンテンツが格納され、サーバが停止すると、すべてのデータが削除される(練習用) のことである. H 2 Webコンソールの表示
src > main > resources > application.propertiesに追加された
Excelファイルが「データベース」の場合、
1枚のアクセルが「テーブル」と呼ばれ、
1つのExcel行を「データ」と呼びます. SQLではなくSpring Data JPAを使用しています. を参照してください.
JPAとはSQLを使用せずにデータを作成、表示、変更、削除できる翻訳機.
JPA Domain == SQL Table
JPA Repository = SQL SQL
@贴るもの:Annotation:~~キャラクターがいるって教えて
Course setterを設定しない理由->レポートは を自動的に設定します.
[スパルタエンコーディングクラブ]Web開発の春、Spring第2週コース-1
◎ RDBMS
◎ H2
src > main > resources > application.propertiesに追加された
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
アプリケーションを実行したら、http://localhost:8080/h2-consoleに接続し、「connect」をクリックします.◇SQL練習
1枚のアクセルが「テーブル」と呼ばれ、
1つのExcel行を「データ」と呼びます.
// 데이터 생성하기
// IF NOT EXISTS 존재 안하면
// NOT NULL 어느 하나라도 비면 안된다
// bigint(5) Long 을 가르킴 (정수)
// varchar(255) String을 가르킴
// PRIMARY KEY (id) 행/데이터 하나하나를 구분해주는 유일한 값으로 삼음
// AUTO_INCREMENT 자동으로 증가하게 값 부여
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)
);
// SQL 데이터 삽입
// INSERT INTO 데이터 넣어줘
INSERT INTO courses (title, tutor) VALUES
('웹개발의 봄, Spring', '남병관'), ('웹개발 종합반', '이범규');
// SQL 데이터 조회하기
SELECT * FROM courses;
◎ JPA
JPAとはSQLを使用せずにデータを作成、表示、変更、削除できる翻訳機.
JPA Domain == SQL Table
JPA Repository = SQL SQL
@贴るもの:Annotation:~~キャラクターがいるって教えて
//Application.java
@EnableJpaAuditing // 생성, 수정 일자에따라 날짜가 자동으로 업데이트
@SpringBootApplication
public class Week02Application {
public static void main(String[] args) {
SpringApplication.run(Week02Application.class, args);
}
@Bean // @Bean은 다음 단계에서 알아가도록 하자
// 해당 아래코드가 중요!
public CommandLineRunner demo(CourseRepository repository) {
return (args) -> {
// 생성자를 통해 Course 생성
Course course1 = new Course("웹개발의 봄 Spring","남병관");
// 생성한 course1을 repository를 이용해 database에 저장
repository.save(course1);
// repository를 이용해 Database에 있는 정보 불러오기
List<Course> courseList = repository.findAll();
for (int i=0; i<courseList.size(); i++){
// 여기에서 c를 sout하면 package 형식으로 print되므로 Course의 getter를 통해서 인쇄
Course c = courseList.get(i);
System.out.println(c.getTitle());
System.out.println(c.getTutor());
}
};
}
}
// Course.java
@NoArgsConstructor // 기본생성자를 대신 생성해줍니다.
@Entity // 테이블임을 나타냅니다.
public class Course extends Timestamped{
@Id // ID 값, Primary Key로 사용하겠다는 뜻입니다.
@GeneratedValue(strategy = GenerationType.AUTO) // 자동 증가 명령입니다.
private Long id;
@Column(nullable = false) // 컬럼 값이고 반드시 값이 존재해야 함을 나타냅니다.
private String title;
@Column(nullable = false)
private String tutor;
//Getter
public String getTitle() {
return this.title;
}
public String getTutor() {
return this.tutor;
}
//생성자
public Course(String title, String tutor) {
this.title = title;
this.tutor = tutor;
}
}
// CourseRepository.java interface 형식
//JPA는 Repository(Interface)를 통해서만 사용할 수 있습니다.
//Interface는 클래스에서 멤버가 빠진, 메소드 모음집이라고 보시면 됩니다.
import org.springframework.data.jpa.repository.JpaRepository;
// extend : 다른 기능을 가져와서 이용한다. JpaRepository<데이터베이스 이름, id의 자료형>
public interface CourseRepository extends JpaRepository<Course, Long> {
}
◇クラスの継承/作成日、変更日
// Timestamped.java
@MappedSuperclass // 상속했을 때, 컬럼으로 인식하게 합니다.
@EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 설정
// abstract : 직접 구현이 안됨, 상속으로만 사용 가능
public abstract class Timestamped {
@CreatedDate // 생성일자임을 나타냅니다.
private LocalDateTime createdAt;
@LastModifiedDate // 마지막 수정일자임을 나타냅니다.
private LocalDateTime modifiedAt;
}
// Course.java의 일부
// extends를 통해 Timestamped의 내용을 가지고옴
public class Course extends Timestamped{
}
Reference
この問題について(春のWeb開発、Spring 2週目-1), 我々は、より多くの情報をここで見つけました https://velog.io/@gwichanlee/웹개발의-봄-Spring-2주차-1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol