Skip to content
Snippets Groups Projects
Commit f6549fe9 authored by 현민 정's avatar 현민 정
Browse files

final commit

parent 27d176e0
No related branches found
No related tags found
No related merge requests found
Showing
with 393 additions and 16 deletions
package com.example.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.ApplicationContext;
import java.util.Arrays;
import com.example.demo.entity.Item;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.annotation.Bean;
import javax.sql.DataSource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.Resource;
@RestController
@SpringBootApplication
public class DemoApplication {
// @EntityScan(basePackageClasses = {Item.class})
public class DemoApplication {// implements CommandLineRunner{
// @Autowired
// private ApplicationContext appContext;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
Resource[] res = new PathMatchingResourcePatternResolver().getResources("mappers/UserMapper.xml");
sessionFactory.setMapperLocations(res);
return sessionFactory.getObject();
}
}
package com.example.demo.constant;
public enum Role {
USER, ADMIN
}
package com.example.demo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import com.example.demo.dto.MemberDto;
import com.example.demo.entity.Member;
import com.example.demo.service.MemberService;
import org.springframework.web.bind.annotation.*;
@RestController
public class MemberController {
@Autowired
MemberService memberService;
public Member createMember() {
MemberDto memberDto = new MemberDto();
memberDto.setEmail("test@email.com");
memberDto.setName("홍길동");
memberDto.setAddress("서울시 마포구 합정동");
memberDto.setPassword("1234");
return Member.creatMember(memberDto);
}
@RequestMapping(value = "/membertest", method = RequestMethod.GET)
public void membertest() {
Member member = createMember();
Member savedMember = memberService.saveMember(member);
System.out.println(member);
System.out.println(savedMember);
}
}
......@@ -3,6 +3,7 @@ package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -11,17 +12,32 @@ import org.springframework.web.bind.annotation.RequestParam;
@RestController
public class TestController {
@RequestMapping(value = "/test", method = RequestMethod.GET)
@RequestMapping(value = "/productlist", method = RequestMethod.GET)
public String test(@RequestParam("id") String id) {
JsonObject obj = new JsonObject();
obj.addProperty("title", "신사와 아가씨");
obj.addProperty("content", "로맨틱 코미디");
JsonObject obj1 = new JsonObject();
obj1.addProperty("item_nm", "수제 햄버거");
obj1.addProperty("item_detail", "소고기 패티와 토마토가 들어 있는 햄버거");
obj1.addProperty("item_reg_date", "2025/04/02");
obj1.addProperty("item_price", "4000");
JsonObject data = new JsonObject();
data.addProperty("time", "토일 8시");
obj.add("data", data);
JsonObject obj2 = new JsonObject();
obj2.addProperty("item_nm", "카레라이스");
obj2.addProperty("item_detail", "매운 3분 카레라이스");
obj2.addProperty("item_reg_date", "2025/04/03");
obj2.addProperty("item_price", "8000");
return obj.toString();
JsonObject obj3 = new JsonObject();
obj3.addProperty("item_nm", "라면");
obj3.addProperty("item_detail", "소고기 라면");
obj3.addProperty("item_reg_date", "2025/04/04");
obj3.addProperty("item_price", "1500");
JsonArray infoArray = new JsonArray();
infoArray.add(obj1);
infoArray.add(obj2);
infoArray.add(obj3);
return infoArray.toString();
}
}
package com.example.demo.controller;
import java.util.List;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.dao.UserDAO;
import com.example.demo.dto.UserDTO;
@RestController
@MapperScan(basePackages = "com.example.demo.dao") // 탐색할 패키시 설정
public class UserController {
@Autowired
private UserDAO userDAO;// UserDAO bean을 자동으로 주입
@RequestMapping("/users")
public List<UserDTO> users(@RequestParam(value = "country", defaultValue = "") String country) throws Exception { // query
// String으로
// country를
// 받도록
// 설정
final UserDTO param = new UserDTO(0, null, country);
final List<UserDTO> userList = userDAO.selectUsers(param);
return userList;
}
}
package com.example.demo.dao;
import java.util.List;
import com.example.demo.dto.UserDTO;
public interface UserDAO {
List<UserDTO> selectUsers(UserDTO param) throws Exception;
}
package com.example.demo.dto;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class MemberDto {
private String name;
private String email;
private String password;
private String address;
}
package com.example.demo.dto;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
@AllArgsConstructor // 자동으로 모든 매개변수를 받는 생성자를 생성
@Getter // Getter 생성
@Setter // Setter 생성
public class UserDTO {
private int seq;
private String name;
private String country;
}
package com.example.demo.entity;
import javax.persistence.*;
import com.example.demo.dto.MemberDto;
import com.example.demo.constant.Role;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Entity
@Table(name = "member")
@Getter
@Setter
@ToString
public class Member {
@Id
@Column(name = "member_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@Column(unique = true)
private String email;
private String password;
private String address;
@Enumerated(EnumType.STRING)
private Role role;
public static Member creatMember(MemberDto memberDto) {
Member member = new Member();
member.setName(memberDto.getName());
member.setEmail(memberDto.getEmail());
member.setAddress(memberDto.getAddress());
member.setPassword(memberDto.getPassword());
member.setRole(Role.USER);
return member;
}
}
package com.example.demo.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.example.demo.entity.*;
public interface MemberRepository extends JpaRepository<Member, Long> {
Member findByEmail(String email);
}
package com.example.demo.service;
import javax.transaction.Transactional;
import org.springframework.stereotype.Service;
import com.example.demo.entity.Member;
import com.example.demo.repository.MemberRepository;
import lombok.RequiredArgsConstructor;
@Service
@Transactional
@RequiredArgsConstructor
public class MemberService {
private final MemberRepository memberRepository;
public Member saveMember(Member member) {
validateDuplicateMember(member);
return memberRepository.save(member);
}
private boolean validateDuplicateMember(Member member) {
Member findMember = memberRepository.findByEmail(member.getEmail());
if (findMember != null) {
System.out.println("이미 가입된 회원입니다.");
return false;
}
return true;
}
}
<?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.example.demo.dao.UserDAO"><!--namespace를 통해 UserDAO와 연결합니다. -->
<select id="selectUsers" parameterType="com.example.demo.dto.UserDTO"
resultType="com.example.demo.dto.UserDTO">
SELECT `seq`, `name`, `country` FROM lab03
<if test='country != null and country != ""'>
WHERE country = #{country}
</if>
</select>
</mapper>
......@@ -2,12 +2,40 @@
<html>
<head>
<meta charset="utf-8">
<title>example 1-2</title>
</head>
<title>Insert title here</title>
<link rel="stylesheet" href="/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
<script src="/webjars/jquery/3.6.0/jquery.min.js"></script>
<script src="/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
<script src="/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
</head>
<body>
<H2>example 1-2</H2>
<HR>
example 1-2
<div class="container">
<table class="table table-hover">
<thead class="thead-dark">
<tr>
<th>codeId</th>
<th>code</th>
<th>codeNm</th>
<th>codeDc</th>
</tr>
</thead>
<tbody>
<tr>
<td>COM001</td>
<td>REG01</td>
<td>단일 게시판 이용 등록</td>
<td>단일 게시판 이용 등록</td>
</tr>
<tr>
<td>COM001</td>
<td>REG02</td>
<td>커뮤니티 등록</td>
<td>커뮤니티 등록</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Product</title>
<link rel="stylesheet" href="/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
<script src="/webjars/jquery/3.6.0/jquery.min.js"></script>
<script src="/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
<script src="/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: 'GET',
url: '/test?id=1',
success: function(data){
var obj=JSON.parse(data);
$('#item_nm span').text(obj.item_nm)
$('#item_detail span').text(obj.item_detail)
$('#item_reg_date span').text(obj.item_reg_date)
$('#item_price span').text(obj.item_price)
}
});
});
});
</script>
</head>
<body>
<h1>상품 데이터 출력 예제</h1>
<div id = "item_nm">상품명: <span></span></div>
<div id = "item_detail">상품 상세설명: <span></span></div>
<div id = "item_reg_date">상품 등록일: <span></span></div>
<div id = "item_price">상품가격: <span></span></div>
<button>조회</button>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Product</title>
<link rel="stylesheet" href="/webjars/bootstrap/5.1.3/css/bootstrap.min.css">
<script src="/webjars/jquery/3.6.0/jquery.min.js"></script>
<script src="/webjars/popper.js/2.9.3/umd/popper.min.js"></script>
<script src="/webjars/bootstrap/5.1.3/js/bootstrap.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$.ajax({
type: 'GET',
url: '/productlist/?id=111',
success: function(data){
var array = JSON.parse(data);
for(i=0; i < array.length; i++){
var obj = array[i];
html = '';
html += '<tr>';
html += '<td>' + obj.item_nm + '</td>'
html += '<td>' + obj.item_detail + '</td>'
html += '<td>' + obj.item_reg_date + '</td>'
html += '<td>' + obj.item_price + '</td>'
html += '</tr>';
$("#tableBody").append(html);
}
}
});
});
});
</script>
</head>
<body>
<h1>상품 데이터 목록 출력</h1>
<button>조회</button>
<table class="table table-hover">
<thead class="thead-dark">
<tr>
<th>상품이름</th>
<th>상품상세설명</th>
<th>상품등록일</th>
<th>상품가격</th>
</tr>
</thead>
<tbody id="tableBody">
</tbody>
</table>
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment