Skip to content
Open
9 changes: 9 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,19 @@ repositories {
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-security'
testImplementation 'org.springframework.boot:spring-boot-starter-test'

testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'mysql:mysql-connector-java:8.0.33'

implementation 'org.springframework.boot:spring-boot-starter'
}

tasks.named('test') {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/example/bcsd/BcsdApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@EnableJpaAuditing
public class BcsdApplication {

public static void main(String[] args) {
Expand Down
18 changes: 18 additions & 0 deletions src/main/java/com/example/bcsd/Dao/ArticleDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.example.bcsd.Dao;

import com.example.bcsd.Model.Article;

import java.util.List;
import java.util.Optional;

public interface ArticleDao {
List<Article> findByBoardId(long board_id);
List<Article> findByAuthorId(long author_id);
Article findById(long id);

Article insert(Article article);

Article update(Article article);

boolean delete(long id);
}
20 changes: 20 additions & 0 deletions src/main/java/com/example/bcsd/Dao/BoardDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.example.bcsd.Dao;

import com.example.bcsd.Model.Board;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

public interface BoardDao {

Board findById(long id);

Board insert(Board board);

Board update(Board board);

boolean delete(long id);


}
17 changes: 17 additions & 0 deletions src/main/java/com/example/bcsd/Dao/MemberDao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.example.bcsd.Dao;

import com.example.bcsd.Model.Member;

public interface MemberDao {

Member findById(long id);
Member findByEmail(String email);

Member insert(Member member);

Member update(Member member);

boolean delete(long id);


}
29 changes: 29 additions & 0 deletions src/main/java/com/example/bcsd/Dto/ArticleCreate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.example.bcsd.Dto;

import com.example.bcsd.Model.Article;
import com.example.bcsd.Model.Article;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

public record ArticleCreate(
@NotNull(message = "board_id cannot be null")
Long board_id,
@NotNull (message = "author_id cannot be null")
Long author_id,
@NotBlank (message = "title cannot be null")
String title,
@NotBlank (message = "content cannot be null")
String content) {


public ArticleCreate of(Long board_id,
Long author_id,
String title,
String content){
return new ArticleCreate(board_id, author_id, title, content);
}
}




31 changes: 31 additions & 0 deletions src/main/java/com/example/bcsd/Dto/ArticleResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.example.bcsd.Dto;

import java.time.LocalDateTime;

import com.example.bcsd.Model.Article;

public record ArticleResponse(
Long id,
Long board_id,
Long author_id,
String title,
String content,
LocalDateTime createdDate,
LocalDateTime modifiedDate
) {


public static ArticleResponse of(
Long id, Long board_id,
Long author_id,
String title,
String content,
LocalDateTime createdDate,
LocalDateTime modifiedDate
) {
return new ArticleResponse(id, board_id, author_id, title, content, createdDate, modifiedDate);
}


}

15 changes: 15 additions & 0 deletions src/main/java/com/example/bcsd/Dto/ArticleUpdate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.bcsd.Dto;

import jakarta.validation.constraints.NotNull;

public record ArticleUpdate (
@NotNull(message = "title cannot be null")
String title,
@NotNull(message = "content cannot be null")
String content){
public static ArticleUpdate of(String title,String content){
return new ArticleUpdate(title,content);
}


}
7 changes: 7 additions & 0 deletions src/main/java/com/example/bcsd/Dto/BoardCreate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.example.bcsd.Dto;

public record BoardCreate( String name) {
public static BoardCreate of( String name) {
return new BoardCreate( name);
}
}
7 changes: 7 additions & 0 deletions src/main/java/com/example/bcsd/Dto/BoardResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.example.bcsd.Dto;

public record BoardResponse( Long id,String name) {
public static BoardResponse of( Long id, String name) {
return new BoardResponse(id, name);
}
}
7 changes: 7 additions & 0 deletions src/main/java/com/example/bcsd/Dto/BoardUpdate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.example.bcsd.Dto;

public record BoardUpdate (String name){
public BoardUpdate of(String name){
return new BoardUpdate(name);
}
}
8 changes: 8 additions & 0 deletions src/main/java/com/example/bcsd/Dto/LoginResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.example.bcsd.Dto;

public record LoginResponse( String email) {
public static LoginResponse of(String email) {
return new LoginResponse( email);
}
}

16 changes: 16 additions & 0 deletions src/main/java/com/example/bcsd/Dto/MemberCreate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.example.bcsd.Dto;

import jakarta.validation.constraints.NotNull;

public record MemberCreate (

@NotNull(message="name cannot be null")
String name,
@NotNull(message="email cannot be null")
String email,
@NotNull(message="password cannot be null")
String password) {
public MemberCreate of(String name, String email, String password) {
return new MemberCreate(name, email, password);
}
}
20 changes: 20 additions & 0 deletions src/main/java/com/example/bcsd/Dto/MemberResponse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.example.bcsd.Dto;

import java.time.LocalDateTime;

public record MemberResponse(
Long id,
String name,
String email,
String password
) {


public static MemberResponse of(
Long id, String name, String email, String password
) {
return new MemberResponse(id, name, email, password);
}


}
19 changes: 19 additions & 0 deletions src/main/java/com/example/bcsd/Dto/MemberUpdate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.example.bcsd.Dto;

import jakarta.validation.constraints.NotNull;

public record MemberUpdate (
@NotNull(message = "name cannot be null")
String name,
@NotNull(message = "email cannot be null")
String email,
@NotNull(message = "email cannot be null")
String password
)
{
public static MemberUpdate of(String name,String email, String password){
return new MemberUpdate(name,email,password);
}


}
15 changes: 15 additions & 0 deletions src/main/java/com/example/bcsd/Dto/loginRequest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.bcsd.Dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

public record loginRequest(
@NotNull(message="로그인 이메일이 비어있습니다.")
String email,
@NotNull(message="로그인 비밀번호이가 비어있습니다.")
String password) {

public static loginRequest of(String email, String password) {
return new loginRequest(email, password);
}
}
30 changes: 23 additions & 7 deletions src/main/java/com/example/bcsd/HelloController.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,36 @@
package com.example.bcsd;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@Controller
public class HelloController {

@ResponseBody
@GetMapping("/hello")
public String hello() {
return "Hello World!!!!!";
}

@GetMapping("/hello2")
public String hello2() {
//@GetMapping("/introduce")
//public String introduce(@RequestParam(name="name" , required=false, defaultValue = "조원희") String name, Model model) {
// model.addAttribute("name", name);
//return "hello";

//}
@GetMapping("/introduce")
public String introduce() {
// Thymeleaf가 templates/introduce.html 을 렌더링
return "hello";
}

@GetMapping("/json")
@ResponseBody
public Map<String, Object> json() {
Map<String, Object> result = new HashMap<>();
result.put("age", 24);
result.put("name", "조원희");
return result;
}
}
Loading