2016년 7월 17일 일요일

[스프링부트]Spring Web MVC예제,마리아DB EMP 테이블의 내용을 Spring Boot, Spring MVC, Spring JDBC를 이용하여 간단히 출력해보자. - 스프링실무교육학원

[스프링부트]Spring Web MVC예제,마리아DB EMP 테이블의 내용을 Spring Boot, Spring MVC, Spring JDBC를 이용하여 간단히 출력해보자. - 스프링실무교육학원

<!--[if !supportLists]-->n  <!--[endif]--> 
STS에서

File -> New  -> Project  -> Spring Starter Project
Name : mvc1
Package : jdbc

다음화면에서 SQL : JDBC, MySQL, Web : Web 선택

[pom.xml JSP 사용위한 의존성 추가]
<!--  JSP, JSTL 사용위해 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>

<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>

 [src/main/resources/schema.sql(파일 속성에서 text encoding UTF-8)]
drop database if exists mvc1;
create database mvc1;
use mvc1;
create table emp
(
           empno int(4) not null auto_increment,
           ename varchar(50),
       sal int(4),        
           primary key (empno)
) ENGINE=InnoDB;

[src/main/resources/data.sql(파일 속성에서 text encoding UTF-8)]
insert into emp(ename, sal) values ('1길동', 1000);
insert into emp(ename, sal) values ('2길동', 2000);
insert into emp(ename, sal) values ('3길동', 3000);

[src/main/resources/application.properties]
spring.datasource.platform=mysql
spring.datasource.url=jdbc:mysql://localhost/mvc1?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=1111
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.sql-script-encoding=UTF-8
spring.datasource.validation-query=select 1
#커넥션풀에서 커넥션을 가져올 경우 커넥션이 유효한지 검사
spring.datasource.test-on-borrow=true
#view
spring.mvc.view.prefix=/views/
spring.mvc.view.suffix=.jsp

[뷰 역할을 하는 /src/main/webapp/views/emp.jsp]
</html>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title></title>
</head>
<body>
           <H3>EMP 테이블 목록</H3>
           <h5> ${emps.size()}</h5>
           <table border="1">
                     <tr align="left">
                                <th width="100" align="center">사번</th>
                                <th width="200" align="center">이름</th>
                                <th width="100" align="center">급여</th>
                     </tr>
                     <c:forEach var="emp" items="${emps}">
                                <tr>
                                          <td align="center">${emp.empno}</td>
                                          <td align="center">${emp.ename}</td>
                                          <td align="center">${emp.sal}</td>
                                </tr>
                     </c:forEach>
           </table>
</body>

[모델클래스 Emp.java]
package jdbc.model;

public class Emp {
           private Long empno;
           private String ename;
           private Long sal;

           public Long getEmpno() {
                     return empno;
           }

           public void setEmpno(Long empno) {
                     this.empno = empno;
           }

           public String getEname() {
                     return ename;
           }

           public void setEname(String ename) {
                     this.ename = ename;
           }

           public Long getSal() {
                     return sal;
           }

           public void setSal(Long sal) {
                     this.sal = sal;
           }
}

[DAO클래스 EmpDAO.java]
package jdbc.repository;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import jdbc.model.Emp;

@Repository
public class EmpDAO {
           @Autowired
           private JdbcTemplate jdbcTemplate;

           // EMP 테이블 전체 데이터 SELECT
           public List<Emp> geEmpAll() throws DataAccessException {
                     List<Emp> empList = null;
                     String sql = " select empno, ename, sal from emp ";
                     empList = this.jdbcTemplate.query(sql, new RowMapper() {
                                public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                                          Emp emp = new Emp();
                                          emp.setEmpno(rs.getLong("empno"));
                                          emp.setEname(rs.getString("ename"));
                                          emp.setSal(rs.getLong("sal"));
                                          return emp;
                                }
                     });
                     return empList;
           }
}

[Service 클래스 EmpService.java]
package jdbc.service;

import java.util.List;
import jdbc.model.Emp;
import jdbc.repository.EmpDAO;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class EmpService {
           @Autowired
           private EmpDAO dao;

           public List<Emp> getEmpAll() {
                     return dao.geEmpAll();
           }
}

[컨트롤러 클래스 EmpController.java]
package 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 org.springframework.web.bind.annotation.RequestMethod;

import jdbc.service.EmpService;

@Controller
@RequestMapping("emp")
public class EmpController {
           @Autowired
           private EmpService empService;

           @RequestMapping(value = "/", method = RequestMethod.GET)
           public String home(Model model) {
                     model.addAttribute("emps", empService.getEmpAll());
                     return "emp";
           }
}

[실행]

댓글 없음:

댓글 쓰기