![](https://blog.kakaocdn.net/dn/VgwBU/btrnvzTBOsr/u8lo4DVAB4fKdvnYP5ok0K/img.png)
![](https://blog.kakaocdn.net/dn/cS5rsR/btrnpNMBb2F/XQvBGJUBfPoeAAMRk4nmrk/img.png)
프로젝트를 만들때 spring web과 Mybatis Framework를 체크해줍니다!
Oracle Driver는 버전때문에 안되는 걸로 알고있지만 버전업데이가 되면서 이제는 되는지 한번 체크해서 테스트 해볼게요!
![](https://blog.kakaocdn.net/dn/k51T5/btrnvAEZzL5/kFPWXUgknVNB4abhu5HMkk/img.png)
pom.xml에 보면 mybatis가 추가되어있고 ojdbc8버전이 잡혀있네요!
application.properties
# server
server.port=8787
# view
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
# encoding
server.servlet.encoding.charset=UTF-8
server.servlet.encoding.force=true
server.servlet.encoding.enabled=true
# resources
spring.mvc.static-path-pattern=/resources/**
# jdbc
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
spring.datasource.username=kh
spring.datasource.password=kh
# mybatis alias
mybatis.type-aliases-package=com.boot.jdbc.model.dto.MyDto
#server 부분은 서버의 포트를 정해줍니다.
#view는 prefix와 suffix설정을 합니다.
#encoding에서 UTF-8설정을합니다.
#resources는 css같은 파일을 쓰고싶으면 연결해줍니다.
#jdbc는 db계정을 연결합니다.
#mybatis는 alias를 잡아줍니다!
StartBoot02Application.java
package com.boot.jdbc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
@SpringBootApplication
public class StartBoot02Application {
public static void main(String[] args) {
SpringApplication.run(StartBoot02Application.class, args);
}
@GetMapping("/")
public String root() {
return "index";
}
}
![](https://blog.kakaocdn.net/dn/bAYGKH/btrnvz7caGO/sFjlaavTEzA22wZPbMummk/img.png)
index,jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="resources/css/style.css" />
</head>
<body>
<h1>Hello, Boot!</h1>
<a href="">list</a>
</body>
</html>
src/main안에 webapp/WEB-INF/views를 만들고 index.jsp를 만듭니다!
![](https://blog.kakaocdn.net/dn/qRbE8/btrns3nBuF3/xlexUQcTHAHuUh9plXh5kk/img.png)
src/main/resources아래 static 아래에 css폴더를 만들고 style.css를 만들어주세요!
style.css
a {
font-size: 50px;
}
![](https://blog.kakaocdn.net/dn/bJCszv/btrnrkb8oC7/izkkIF8KEgtkotyetHXtIk/img.png)
실행시키면 잘뜹니다!
![](https://blog.kakaocdn.net/dn/tTMM3/btrnvpKtCAQ/o0cuOerCNJ4Zm6nQQsPX01/img.png)
db연결을 위해 테이블을 만들어야하는데요.
이번에는 src/main/resources아래에 db폴더를 만들고 myboard.sql파일을 만들겠습니다.
myboard.sql
DROP SEQUENCE MYNOSEQ;
DROP TABLE MYBOARD;
CREATE SEQUNCE MYNOSEQ;
CREATE TABLE MYBOARD(
MYNO NUMBER PRIMARY KEY,
MYNAME VARCHAR2(500) NOT NULL,
MYTITLE VARCHAR2(1000) NOT NULL,
MYCONTENT VARCHER2(4000) NOT NULL,
MYDATE DATE NOT NULL
);
INSERT INTO MYBOARD
VALUES(MYNOSEQ.NEXTVAL, '관리자', '제목 테스트', '내용 테스트', SYSDATE);
SELECT MYNO, MYNAME, MYTITLE, MYCONTENT, MYDATE
FROM MYBOARD;
![](https://blog.kakaocdn.net/dn/FPQBK/btrnv3tnvxZ/kVnTNbqag1EFCJxqHTiWXK/img.png)
이렇게 패키지를 만들어주시고 다른거는 다 똑같지만 Mapper가 마이바티스의 Mapper와 Dao를 합친부분입니다!
package com.boot.jdbc.model.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import com.boot.jdbc.model.dto.MyDto;
@Mapper
public interface MyBoardMapper {
@Select(" SELECT MYNO, MYNAME, MYTITLE, MYCONTENT, MYDATE FROM MYBOARD ORDER BY MYNO DESC ")
List<MyDto> selectList();
@Select(" SELECT MYNO, MYNAME, MYTITLE, MYCONTENT, MYDATE FORM MYBOARD WHERE MYNO = #{myno} ")
MyDto selectOne(int myno);
@Insert(" INSERT INTO MYBOARD VALUES(MYNOSEQ.NEXTVAL, #{dto.getMyname}, #{mytitle}, #{dto.mycontent}, SYSDATE) ")
int insert(MyDto dto);
@Update(" UPDATE MYBOARD SET MYTITLE = #{mytitle}, MYCONTENT=#{mycontent} WHERE MYNO = #{myno} ")
int update(MyDto dto);
@Delete(" DELETE FROM MYBOARD WHERE MYNO = #{myno} ")
int delete(int myno);
}
엄청 간단해졌죠?
mybatis spring boot 설명이 있는 링크입니다.
@Mapper 어노테이션을 통해서 Mapper로 만들어주며 application.properties파일에 있는
이 코드가 config파일에서 alias를 잡아줬던것 처럼 alias를 잡아줍니다!
![](https://blog.kakaocdn.net/dn/3YNKS/btrnqxv0Ibx/ZaCnThy7mDA7Fnv6WXqfwk/img.png)
이번에는 com.boot.jdbc.controller 패키지를 만들고 MyBoardController파일을 만듭니다!
package com.boot.jdbc.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.boot.jdbc.model.biz.MyBoardBiz;
@Controller
@RequestMapping("/myboard")
public class MyBoardController {
@Autowired
private MyBoardBiz biz;
public String selectList(Model model) {
model.addAttribute("list", biz.selectList());
return "myboardlist";
}
}
selectList를 위한 코드입니다!
이제 views에 myboardlist.jsp 파일을 만들겠습니다.
만들기 전에 jstl을 쓰기위해 pom.xml에 디펜던시 하나 추가하겠습니다!
![](https://blog.kakaocdn.net/dn/yVl6e/btrnrjqOOG6/Xbk5d5NNK8XdeKlMbYEYn0/img.png)
이제 myboardlist.jsp를 만들어볼까요?
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>LIST</h1>
<table border="1">
<col width="50" />
<col width="100" />
<col width="500" />
<col width="100" />
<tr>
<th>번호</th>
<th>작성자</th>
<th>제목</th>
<th>작성일</th>
</tr>
<c:choose>
<c:when test="${empty list }">
<tr>
<th colspan="4">----------작성된 글이 없습니다----------</th>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${list }" var="dto">
<tr>
<td>${dto.myno }</td>
<td>${dto.myname }</td>
<td><a href="detail.do?myno=${dto.myno }">${dto.mytitle }</a></td>
<td>${dto.mydate }</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
<tr>
<td colspan="4" align="right"><input type="button" value="글작성" onclick="location.href='writeform.do'"></td>
</tr>
</table>
</body>
</html>
이후 실행시키면 잘 실행이 됩니다!
![](https://blog.kakaocdn.net/dn/4sxgD/btrnpOY2NL3/wZlbyEMBsl88x1cCPFYUj0/img.png)
ojdbc8로도 잘 되네요~
수정할때마다 서버를 껏다가 다시켜야 작동을 하는데요.
<!-- devtools -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
pom.xml에 devtools를 추가해주면 그렇게 하지않아도 작동이됩니다.
프로젝트 만들때 체크하는거에서 체크하면 자동으로 잡아줍니다!
'Java 관련 > SpringBoot' 카테고리의 다른 글
[SpringBoot] Thymeleaf02 (0) | 2022.04.16 |
---|---|
[SpringBoot] Thymeleaf01 (0) | 2022.04.15 |
[SpringBoot] Spring Boot 기본 설정 (0) | 2022.04.13 |