--- src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
+++ src/main/java/com/takensoft/ai_lms/common/confing/SecurityConfig.java
... | ... | @@ -64,6 +64,7 @@ |
64 | 64 |
.requestMatchers("/test/**").permitAll() |
65 | 65 |
.requestMatchers("/studentInfo/**").permitAll() // 학생 정보 진입 허용(민수) |
66 | 66 |
.requestMatchers("/board/**").permitAll() // 게시판 정보 진입 허용 |
67 |
+ .requestMatchers("/book/**").permitAll() // 교재 정보 진입 허용 |
|
67 | 68 |
.anyRequest().authenticated()); // 나머지 경로는 인증 필요 |
68 | 69 |
|
69 | 70 |
// jwt 필터 처리 적용 |
+++ src/main/java/com/takensoft/ai_lms/lms/book/dao/BookDAO.java
... | ... | @@ -0,0 +1,56 @@ |
1 | +package com.takensoft.ai_lms.lms.book.dao; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
4 | +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; | |
5 | + | |
6 | +import java.util.List; | |
7 | + | |
8 | +/** | |
9 | + * @author : 구자현 | |
10 | + * @since : 2024.07.25 | |
11 | + * | |
12 | + * 교재 관련 Mapper | |
13 | + */ | |
14 | +@Mapper("bookDAO") | |
15 | +public interface BookDAO { | |
16 | + | |
17 | + /** | |
18 | + * @author : 구자현 | |
19 | + * @since : 2024.07.25 | |
20 | + * | |
21 | + * 전체 교재 목록 출력 | |
22 | + */ | |
23 | + List<BookVO> getAllBooks(); | |
24 | + | |
25 | + /** | |
26 | + * @author : 구자현 | |
27 | + * @since : 2024.07.25 | |
28 | + * | |
29 | + * 책의 상세 정보 | |
30 | + */ | |
31 | + BookVO getBookById(String book_id); | |
32 | + | |
33 | + /** | |
34 | + * @author : 구자현 | |
35 | + * @since : 2024.07.25 | |
36 | + * | |
37 | + * 교재 등록 | |
38 | + */ | |
39 | + void insertBook(BookVO book); | |
40 | + | |
41 | + /** | |
42 | + * @author : 구자현 | |
43 | + * @since : 2024.07.25 | |
44 | + * | |
45 | + * 교재 제목 수정 | |
46 | + */ | |
47 | + void updateBook(BookVO book); | |
48 | + | |
49 | + /** | |
50 | + * @author : 구자현 | |
51 | + * @since : 2024.07.25 | |
52 | + * | |
53 | + * 교재 삭제 | |
54 | + */ | |
55 | + void deleteBook(String book_id); | |
56 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/book/service/BookService.java
... | ... | @@ -0,0 +1,53 @@ |
1 | +package com.takensoft.ai_lms.lms.book.service; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
4 | +import java.util.List; | |
5 | + | |
6 | +/** | |
7 | + * @author : 구자현 | |
8 | + * @since : 2024.07.25 | |
9 | + * | |
10 | + * 교재 관련 Service 클래스 | |
11 | + */ | |
12 | +public interface BookService { | |
13 | + | |
14 | + /** | |
15 | + * @author : 구자현 | |
16 | + * @since : 2024.07.25 | |
17 | + * | |
18 | + * 전체 교재 목록 출력 | |
19 | + */ | |
20 | + List<BookVO> getAllBooks(); | |
21 | + | |
22 | + /** | |
23 | + * @author : 구자현 | |
24 | + * @since : 2024.07.25 | |
25 | + * | |
26 | + * 책의 상세 정보 | |
27 | + */ | |
28 | + BookVO getBookById(String book_id); | |
29 | + | |
30 | + /** | |
31 | + * @author : 구자현 | |
32 | + * @since : 2024.07.25 | |
33 | + * | |
34 | + * 교재 등록 | |
35 | + */ | |
36 | + void insertBook(BookVO book); | |
37 | + | |
38 | + /** | |
39 | + * @author : 구자현 | |
40 | + * @since : 2024.07.25 | |
41 | + * | |
42 | + * 교재 제목 수정 | |
43 | + */ | |
44 | + void updateBook(BookVO book); | |
45 | + | |
46 | + /** | |
47 | + * @author : 구자현 | |
48 | + * @since : 2024.07.25 | |
49 | + * | |
50 | + * 교재 삭제 | |
51 | + */ | |
52 | + void deleteBook(String book_id); | |
53 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/book/service/Impl/BookServiceImpl.java
... | ... | @@ -0,0 +1,82 @@ |
1 | +package com.takensoft.ai_lms.lms.book.service.Impl; | |
2 | + | |
3 | +import com.takensoft.ai_lms.common.idgen.service.IdgenService; | |
4 | +import com.takensoft.ai_lms.lms.book.dao.BookDAO; | |
5 | +import com.takensoft.ai_lms.lms.book.service.BookService; | |
6 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
7 | +import lombok.RequiredArgsConstructor; | |
8 | +import org.egovframe.rte.fdl.cmmn.EgovAbstractServiceImpl; | |
9 | +import org.springframework.stereotype.Service; | |
10 | +import java.util.List; | |
11 | + | |
12 | +/** | |
13 | + * @author : 구자현 | |
14 | + * @since : 2024.07.25 | |
15 | + * | |
16 | + * 교재 관련 ServiceImpl 클래스 | |
17 | + */ | |
18 | +@Service | |
19 | +@RequiredArgsConstructor | |
20 | +public class BookServiceImpl extends EgovAbstractServiceImpl implements BookService { | |
21 | + | |
22 | + private final BookDAO bookDAO; | |
23 | + | |
24 | + private final IdgenService bookIdgn; | |
25 | + | |
26 | + /** | |
27 | + * @author : 구자현 | |
28 | + * @since : 2024.07.25 | |
29 | + * | |
30 | + * 전체 교재 목록 출력 | |
31 | + */ | |
32 | + @Override | |
33 | + public List<BookVO> getAllBooks() { | |
34 | + return bookDAO.getAllBooks(); | |
35 | + } | |
36 | + | |
37 | + /** | |
38 | + * @author : 구자현 | |
39 | + * @since : 2024.07.25 | |
40 | + * | |
41 | + * 책의 상세 정보 | |
42 | + */ | |
43 | + @Override | |
44 | + public BookVO getBookById(String book_id) { | |
45 | + return bookDAO.getBookById(book_id); | |
46 | + } | |
47 | + | |
48 | + /** | |
49 | + * @author : 구자현 | |
50 | + * @since : 2024.07.25 | |
51 | + * | |
52 | + * 교재 등록 | |
53 | + */ | |
54 | + @Override | |
55 | + public void insertBook(BookVO book) { | |
56 | + String book_id = bookIdgn.getNextStringId(); | |
57 | + book.setBook_id(book_id); | |
58 | + bookDAO.insertBook(book); | |
59 | + } | |
60 | + | |
61 | + /** | |
62 | + * @author : 구자현 | |
63 | + * @since : 2024.07.25 | |
64 | + * | |
65 | + * 교재 제목 수정 | |
66 | + */ | |
67 | + @Override | |
68 | + public void updateBook(BookVO book) { | |
69 | + bookDAO.updateBook(book); | |
70 | + } | |
71 | + | |
72 | + /** | |
73 | + * @author : 구자현 | |
74 | + * @since : 2024.07.25 | |
75 | + * | |
76 | + * 교재 삭제 | |
77 | + */ | |
78 | + @Override | |
79 | + public void deleteBook(String book_id) { | |
80 | + bookDAO.deleteBook(book_id); | |
81 | + } | |
82 | +}(파일 끝에 줄바꿈 문자 없음) |
+++ src/main/java/com/takensoft/ai_lms/lms/book/vo/BookVO.java
... | ... | @@ -0,0 +1,23 @@ |
1 | +package com.takensoft.ai_lms.lms.book.vo; | |
2 | + | |
3 | +import lombok.AllArgsConstructor; | |
4 | +import lombok.Getter; | |
5 | +import lombok.NoArgsConstructor; | |
6 | +import lombok.Setter; | |
7 | + | |
8 | +/** | |
9 | + * @author : 구자현 | |
10 | + * @since : 2024.07.25 | |
11 | + * | |
12 | + * 교재 관련 VO | |
13 | + */ | |
14 | +@Setter | |
15 | +@Getter | |
16 | +@NoArgsConstructor | |
17 | +@AllArgsConstructor | |
18 | +public class BookVO { | |
19 | + // 교재 아이디 | |
20 | + private String book_id; | |
21 | + // 교재 제목 | |
22 | + private String book_nm; | |
23 | +} |
+++ src/main/java/com/takensoft/ai_lms/lms/book/web/BookController.java
... | ... | @@ -0,0 +1,77 @@ |
1 | +package com.takensoft.ai_lms.lms.book.web; | |
2 | + | |
3 | +import com.takensoft.ai_lms.lms.book.service.Impl.BookServiceImpl; | |
4 | +import com.takensoft.ai_lms.lms.book.vo.BookVO; | |
5 | +import lombok.RequiredArgsConstructor; | |
6 | +import org.springframework.web.bind.annotation.*; | |
7 | + | |
8 | +import java.util.List; | |
9 | + | |
10 | +/** | |
11 | + * @author : 구자현 | |
12 | + * @since : 2024.07.25 | |
13 | + * | |
14 | + * 교재 관련 Controller 클래스 | |
15 | + */ | |
16 | +@RequiredArgsConstructor | |
17 | +@RestController | |
18 | +@RequestMapping("/book") | |
19 | +public class BookController { | |
20 | + | |
21 | + private final BookServiceImpl bookServiceImpl; | |
22 | + | |
23 | + /** | |
24 | + * @author : 구자현 | |
25 | + * @since : 2024.07.25 | |
26 | + * | |
27 | + * 전체 교재 목록 출력 | |
28 | + */ | |
29 | + @GetMapping | |
30 | + public List<BookVO> getAllBooks() { | |
31 | + return bookServiceImpl.getAllBooks(); | |
32 | + } | |
33 | + | |
34 | + /** | |
35 | + * @author : 구자현 | |
36 | + * @since : 2024.07.25 | |
37 | + * | |
38 | + * 책의 상세 정보 | |
39 | + */ | |
40 | + @GetMapping("/{book_id}") | |
41 | + public BookVO getBookById(@PathVariable String book_id) { | |
42 | + return bookServiceImpl.getBookById(book_id); | |
43 | + } | |
44 | + | |
45 | + /** | |
46 | + * @author : 구자현 | |
47 | + * @since : 2024.07.25 | |
48 | + * | |
49 | + * 교재 등록 | |
50 | + */ | |
51 | + @PostMapping | |
52 | + public void insertBook(@RequestBody BookVO book) { | |
53 | + bookServiceImpl.insertBook(book); | |
54 | + } | |
55 | + | |
56 | + /** | |
57 | + * @author : 구자현 | |
58 | + * @since : 2024.07.25 | |
59 | + * | |
60 | + * 교재 제목 수정 | |
61 | + */ | |
62 | + @PutMapping | |
63 | + public void updateBook(@RequestBody BookVO book) { | |
64 | + bookServiceImpl.updateBook(book); | |
65 | + } | |
66 | + | |
67 | + /** | |
68 | + * @author : 구자현 | |
69 | + * @since : 2024.07.25 | |
70 | + * | |
71 | + * 교재 삭제 | |
72 | + */ | |
73 | + @DeleteMapping("/{book_id}") | |
74 | + public void deleteBook(@PathVariable String book_id) { | |
75 | + bookServiceImpl.deleteBook(book_id); | |
76 | + } | |
77 | +}(파일 끝에 줄바꿈 문자 없음) |
+++ src/main/resources/mybatis/mapper/lms/book-SQL.xml
... | ... | @@ -0,0 +1,65 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | +<mapper namespace="com.takensoft.ai_lms.lms.book.dao.BookDAO"> | |
4 | + | |
5 | + <resultMap id="bookMap" type="BookVO"> | |
6 | + <result property="book_id" column="book_id"/> | |
7 | + <result property="book_nm" column="book_nm"/> | |
8 | + </resultMap> | |
9 | + | |
10 | + <!-- | |
11 | + 작 성 자 : 구자현 | |
12 | + 작 성 일 : 2024.07.25 | |
13 | + 내 용 : 전체 교재 목록 출력 | |
14 | + --> | |
15 | + <select id="getAllBooks" resultMap="bookMap"> | |
16 | + SELECT | |
17 | + book_id, | |
18 | + book_nm | |
19 | + FROM book | |
20 | + </select> | |
21 | + | |
22 | + <!-- | |
23 | + 작 성 자 : 구자현 | |
24 | + 작 성 일 : 2024.07.25 | |
25 | + 내 용 : 책의 상세 정보 | |
26 | + --> | |
27 | + <select id="getBookById" parameterType="String" resultMap="bookMap"> | |
28 | + SELECT | |
29 | + book_id, | |
30 | + book_nm | |
31 | + FROM book | |
32 | + WHERE book_id = #{book_id} | |
33 | + </select> | |
34 | + | |
35 | + <!-- | |
36 | + 작 성 자 : 구자현 | |
37 | + 작 성 일 : 2024.07.25 | |
38 | + 내 용 : 교재 등록 | |
39 | + --> | |
40 | + <insert id="insertBook" parameterType="bookVO"> | |
41 | + INSERT INTO book (book_id, book_nm) | |
42 | + VALUES (#{book_id}, #{book_nm}) | |
43 | + </insert> | |
44 | + | |
45 | + <!-- | |
46 | + 작 성 자 : 구자현 | |
47 | + 작 성 일 : 2024.07.25 | |
48 | + 내 용 : 교재 제목 수정 | |
49 | + --> | |
50 | + <update id="updateBook" parameterType="bookVO"> | |
51 | + UPDATE book | |
52 | + SET book_nm = #{book_nm} | |
53 | + WHERE book_id = #{book_id} | |
54 | + </update> | |
55 | + | |
56 | + <!-- | |
57 | + 작 성 자 : 구자현 | |
58 | + 작 성 일 : 2024.07.25 | |
59 | + 내 용 : 교재 삭제 | |
60 | + --> | |
61 | + <delete id="deleteBook" parameterType="String"> | |
62 | + DELETE FROM book | |
63 | + WHERE book_id = #{book_id} | |
64 | + </delete> | |
65 | +</mapper>(파일 끝에 줄바꿈 문자 없음) |
--- src/main/resources/mybatis/mapper/lms/change.xml
... | ... | @@ -1,14 +0,0 @@ |
1 | -<?xml version="1.0" encoding="UTF-8"?> | |
2 | -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |
3 | -<mapper namespace="com.takensoft.ai_lms.lms.test.dao.TestDAO"> | |
4 | - <!-- | |
5 | - 작 성 자 : 박민혁 | |
6 | - 작 성 일 : 2024.07.25 | |
7 | - 내 용 : 경로 생성을 위해 만들어 놓은 xml, | |
8 | - CRUD를 이용하는데 삭제하거나 수정해서 사용해주세요 | |
9 | - --> | |
10 | - <select id="testList" resultType="HashMap"> | |
11 | - SELECT test_data | |
12 | - FROM test_info | |
13 | - </select> | |
14 | -</mapper>(파일 끝에 줄바꿈 문자 없음) |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?