Spring
2023.03.03
연을
2023. 3. 3. 17:05
728x90
[MyBatis]
- p232-233 참조하여 만든다.
- sping starter project → next → 추가해야하는 것 : spring web, lombok, MaBatis Framework
[롬복추가하기] 추가할 파일 오른쪽 클릭 → Properties → Java Build Path → Classpath → AddExternal JARs → 롬복선택 → Apply close |
[oracle 추가하기] 추가할 파일 오른쪽 클릭 → Properties → Java Build Path → Classpath → AddExternal JARs → D:\app\admin\product\11.2.0\dbhome_1\jdbc\lib → ojdbc6/jar 선택 → Apply close |
둘다 추가하고 나서 Gradle을 하면 안된다. 하는 순간 날라감으로 주의 |
![]() |
DTO를 사용할때는 select할 때만 사용 DAO는 CRUD |
![]() |
XML |
<mapper namespace="DAO 경로와 이름"> <select id="DAO안의 method" resultType="DTO경로와 이름"> select SQL(';'없이) </select> </mapper> |
DAO |
@Mapper interface IDAO{ ArrayList<DTO> method(); } |
DTO |
class 변수명==조회되는 컬럼명 |
Controller |
@Autowired private DAO dao; ArrayList<DTO> alDTO = dao.method(); model.addattribute("dto",alDTO); return "JSP이름"; |
View(JSP) |
<c:forEach items="dto" var="x"> ${x.variable} </c:forEach> |
[DTO 만들기]
java class : StudentDTO
package com.human.springboot;
import lombok.Data;
@Data
public class StudentDTO {
String name;
String gender;
String birthday;
int math_score;
int kor_score;
int eng_score;
}
java interface : IDAO
package com.human.springboot;
import java.util.ArrayList;
public interface IDAO {
ArrayList<StudentDTO> list();
}
mybastis.mapper → Student.xml : 나와야 하는 것들을 여기서 설정
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.human.springboot.IDAO">
<select id="list" resultType="com.human.springboot.StudentDTO">
select sname,gender,birthday,math_score,kor_score,eng_score
from student
</select>
</mapper>
application.properties
server.port=8081
#JSP 설정
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
#DB연동설정
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/orcl
spring.datasource.username=ora_user
spring.datasource.password=human123
#MyBatis
mybatis.mapper-locations=classpath:mybatis/mapper/**/**.xml
![]() |
|
list
<%@ 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>Student</title>
</head>
<body>
<table border=1>
<c:forEach items="${students}" var="student">
<tr><td>${student.sname}</td>
<td>${student.gender}</td>
<td>${student.birthday}</td>
<td>${student.math_score}</td>
<td>${student.kor_score}</td>
<td>${student.eng_score}</td>
</c:forEach>
</table>
</body>
</html>
MyController
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import com.human.springboot.IDAO;
@Controller
public class MyController {
@Autowired
private IDAO idao;
@GetMapping("/list")
public String doList(Model model) {
ArrayList<StudentDTO> alStudent= idao.list();
model.addAttribute("students",alStudent);
return "list";
}
}
<결과>
[과제]
employee_id, emp_name, manager_id를 나타내는 화면 만들기
[EmpDTO]
package com.human.springboot;
import lombok.Data;
@Data
public class EmpDTO {
String employee_id;
String manager_id;
String emp_name;
}
[IDAO]
package com.human.springboot;
import java.util.ArrayList;
import org.apache.ibatis.annotations.Mapper;
@Mapper//컨트롤+시프트+o
public interface IDAO {
ArrayList<EmpDTO> getEmp();
}
[MyController]
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import com.human.springboot.IDAO;
@Controller
public class MyController {
@Autowired
private IDAO idao;
@GetMapping("/employee")
public String doemploy(Model model) {
ArrayList<EmpDTO> alEmployee = idao.getEmp(); //<>안에 들어가는건 java이름
//idao.뒤에 오는 이름은 IDAO에서 만든 이름
model.addAttribute("employees",alEmployee);
return "emp"; //.jsp의 이름을 써줘야 한다
}
}
[emp.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>Employee</title>
</head>
<body>
<table border=1>
<c:forEach items="${employees}" var="employee">
<tr><td>${employee.employee_id}</td>
<td>${employee.emp_name}</td>
<td>${employee.manager_id}</td>
</c:forEach>
</table>
</body>
</html>
[Employee.xml] : 화면에 보여지는 코드
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.human.springboot.IDAO">
<select id="getEmp" resultType="com.human.springboot.EmpDTO">
select employee_id,emp_name,manager_id
from employees
</select>
</mapper>
<결과>
<사원 아이디 불러와서 보여주기>
[workerDTO]
package com.human.springboot;
import lombok.Data;
@Data
public class workerDTO {
int employee_id;
String emp_name;
String manager_id;
}
[IDAO]
package com.human.springboot;
import java.util.ArrayList;
import org.apache.ibatis.annotations.Mapper;
@Mapper//컨트롤+시프트+o
public interface IDAO {
ArrayList<EmpDTO> getEmp();
EmpDTO getOne();
workerDTO getWorker(int employee_id);
}
[xml]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.human.springboot.IDAO">
<select id="getWorker" resultType="com.human.springboot.workerDTO">
select employee_id,emp_name,manager_id
from employees
where employee_id=#{param1}
</select>
</mapper>
[Controller]
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import com.human.springboot.IDAO;
@Controller
public class MyController {
@Autowired
private IDAO idao;
@GetMapping("/worker/{eid}")
public String getworker(@PathVariable("eid") int eid,Model model) {
workerDTO edto=idao.getWorker(eid);
model.addAttribute("one",edto);
return "oneman";
}
}
[oneman.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>124</title>
</head>
<body>
사번 :${one.employee_id }<br>
이름 : ${one.emp_name }<br>
매니저아이디 : ${one.manager_id}<br>
</body>
</html>
<월급받아서 나오게 하기>
Controller
package com.human.springboot;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import com.human.springboot.IDAO;
@Controller
public class MyController {
@Autowired
private IDAO idao;
@GetMapping("/salary/{low}/{high}")
public String getSalary(@PathVariable("low") int low, @PathVariable("high") int high, Model model) {
ArrayList<SalaryDTO> alSalary = idao.getSalary(low, high);
model.addAttribute("salarys",alSalary);
return "salaryemp";
}
}
salaryemp.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>
<table border=1>
<c:forEach items="${salarys}" var="salary">
<tr><td>${salary.employee_id}</td>
<td>${salary.emp_name}</td>
<td>${salary.salary}</td></tr>
</c:forEach>
</table>
</body>
</html>
IDAO
package com.human.springboot;
import java.util.ArrayList;
import org.apache.ibatis.annotations.Mapper;
@Mapper//컨트롤+시프트+o
public interface IDAO {
ArrayList<EmpDTO> getEmp();
EmpDTO getOne();
workerDTO getWorker(int employee_id);
ArrayList<SalaryDTO> getSalary(int salary, int salary1);
}
SalaryDTO
package com.human.springboot;
import lombok.Data;
@Data
public class SalaryDTO {
int employee_id;
String emp_name;
int salary;
}
<결과>

불금!!!
728x90