분류 전체보기 (277)

반응형

 

프로젝트 진행 시 설정

 

 

  • Dependencies로 추가

방법은 lombok 파일 설정의 7, 8번 참조

 

https://forest-of-coding.tistory.com/271

 

[스프링 부트] lombok 파일, 로그 레벨, jsp 파일 사용을 위한 설정

lombok 파일 설정  파일더보기   1. 해당의 파일을 sts4 설치된 폴더로 이동 > 위의 경로에 cmd 입력   2. 아래의 코드 입력   3. Specify location 클릭   4. sts4 폴더 클릭 > Select > Install / Update 클릭

forest-of-coding.tistory.com

 

추가한 Dependencies

 

 

 

  • application.properties 설정

 

추가 및 설정해야 하는 것

 

1. db/mybatis 설정 내용 변경 : 자신의 것으로 변경

2. package 명 변경 : 별명들을 변경할 패키지 명으로 기입

3. mybatis/mapper : src/main/resources 폴더 아래에 내용과 맞는 폴더를 생성

 

 

spring.application.name=merorng-1
server.port=8004

# view resolver 접두어, 접미사 설정
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

# 로그 레벨 설정
logging.level.com.th.hmmerong=debug

# db/mybatis 설정
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe
spring.datasource.username=pc10
spring.datasource.password=java

# 두 개는 필수
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.configuration.jdbc-type-for-null=varchar

mybatis.type-aliases-package=com.th.hmmerorng.vo
mybatis.mapper-locations=classpath:mybatis/mapper/*-Mapper.xml

 

 

+ db 유저명 생성 안 했을 시

더보기
-- 유저명 java 암호 oracle 생성
create user pc10 identified by java;

-- 유저명 java에 필요한 권한 주깅
grant connect,resource, dba to pc10;

commit;

  

pc10은 유저명, java는 비밀번호

 

 

 

프로젝트 생성 시 기본적인 순서

 

1. DB테이블 생성

 

2. JAVA VO 생성

: 적절한 정도에서 테이블과 다른 값 추가해도 됨

 

3. Mapper(IF) + SQL => DAO

 

4. 테스트를 통해서 sql문 검증

 

5. service / serviceImpl

: service를 class로 만들 수 있음 => 이 경우 serviceImpl을 만들지 않음

 

6. controller 생성

= 접수 창구

=> 요즘은 restController를 사용

 

 

 

테이블 생성 및 시퀀스 생성

 

 

  • 테이블 생성

테이블 정보

 

 

 

  •  시퀀스 생성 및 테스트

- 시퀀스 생성

CREATE SEQUENCE TH_SEQ;

 

 

- 시퀀스 테스트 (처음 한 번은 해야 테스트 가능!!)

SELECT TH_SEQ.NEXTVAL FROM DUAL;
SELECT TH_SEQ.CURRVAL FROM DUAL;

 

결과 화면1

 

 

 

생성 파일 위치

 

 

 

VO 생성

 

 

BdVO.java

package com.th.hmmerorng.vo;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@ToString //값을 하나씩 찍기 힘들어서 디버깅 할때 쓰는 용으로 사용
@Setter
@Getter
public class BdVO {
	private int bdNum;
	private String bdTitle;
	private String bdCont;
	private String bdFurl;
}

 

 

 

Mapper 생성

 

 

BdMapper.java

package com.th.hmmerorng.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.th.hmmerorng.vo.BdVO;

@Mapper //명시적 표현, 보통 마커 어노테이션이라 부름
public interface BdMapper {
	//Mapper 만들 시 기본 5개 생성해야함
	
	//리스트 여러개
	List<BdVO> getBdList();
	
	//1개
	BdVO getBd(BdVO bdVO);
	
	
	//insert + update + delete의 기본 파라미터는 int
	//insert + update + delete => Mutation 메소드
	
	//insert
	int insBd(BdVO bdVO);
	
	//update
	int upBd(BdVO bdVO);
	
	//delete
	int delBd(BdVO bdVO);

}

 

 

 

mybatis 생성

 

 

+생성되지 않을 시

더보기
1

 

1. Help > Eclipse Marketplace 클릭 

 

 

2

 

2. mybatis 검색 > 1.2.5 Install 

 

 

3

 

3. I accept 클릭 > Finish 클릭 

 

 

4

 

4. Select All 클릭 > Trust Selected 클릭

 

 

5

 

5. Select All 클릭 > Trust Selected 클릭 

 

 

6

 

6. Restart Now 클릭 

 

  

 

오른쪽 마우스 클릭 > New > Other 로 생성

 

 

 

  • 생성 순서

1. namespace 변경

<mapper namespace="com.th.hmmerorng.mapper.BdMapper">

 

 

2. List SQL

<select id="getBdList" resultType="BdVO">
	SELECT * FROM TB_BOARD
</select>

 

 

3. get SQL

<select id="getBd" parameterType="BdVO" resultType="BdVO">
	SELECT * 
		FROM TB_BOARD
	WHERE BD_NUM = #{bdNum}
</select>

 

 

4. insert, update, delete SQL

<insert id="insBd" parameterType="BdVO">
	INSERT INTO tb_board
	(
		bd_num,
		bd_title,
		bd_cont,
		bd_furl
	)
	VALUES
	(
		th_seq.nextval,
		#{bdTitle},
		#{bdCont},
		#{bdFurl}
	)
</insert>

<update id="upBd" parameterType="BdVO">
	UPDATE tb_board
	SET
		bd_title = #{bdTitle},
		bd_cont = #{bdCont},
		bd_furl = #{bdFurl}
	WHERE 
		bd_num = #{bdNum}
</update>

<delete id="delBd" parameterType="BdVO">
	DELETE * FROM tb_board
	WHERE bd_num = #{bdNum}
</delete>

 

 

 

- 최종 xml

bd-Mapper.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.th.hmmerorng.mapper.BdMapper">

<select id="getBdList" resultType="BdVO">
	SELECT * FROM TB_BOARD
</select>

<select id="getBd" parameterType="BdVO" resultType="BdVO">
	SELECT * 
		FROM TB_BOARD
	WHERE BD_NUM = #{bdNum}
</select>

<insert id="insBd" parameterType="BdVO">
	INSERT INTO tb_board
	(
		bd_num,
		bd_title,
		bd_cont,
		bd_furl
	)
	VALUES
	(
		th_seq.nextval,
		#{bdTitle},
		#{bdCont},
		#{bdFurl}
	)
</insert>

<update id="upBd" parameterType="BdVO">
	UPDATE tb_board
	SET
		bd_title = #{bdTitle},
		bd_cont = #{bdCont},
		bd_furl = #{bdFurl}
	WHERE 
		bd_num = #{bdNum}
</update>

<delete id="delBd" parameterType="BdVO">
	DELETE FROM tb_board
	WHERE bd_num = #{bdNum}
</delete>

</mapper>

 

 

실행 해서 오류가 뜨는지 확인 필수!!

 

 

 

+그냥 빨간 줄이 뜰 때

 

더보기
1

 

 1. Window > Preferences 클릭

 

 

2

 

2. mav 검색 > Maven 클릭 > Download Artifact Javadoc 클릭 > Apply and Close 클릭 

 

 

 

 

반응형
반응형

 

Controller의 값 jsp로 전달

 

 

jspController.java

package com.th.merorng.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/jsp")
public class jspController {

	@GetMapping("/merong")
	public String getMerong(Model model) {
		//model은 컨트롤러에서 jsp에 보낼 데이터가 있을때
		List<String> nameList = new ArrayList<>();
		nameList.add("홍길동");
		nameList.add("심청이");
		nameList.add("이몽룡");
		nameList.add("춘향이");
		
		model.addAttribute("nameList", nameList);
		return "pc";
	}
}

 

 

pc.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>
</head>
<body>
	<p>내용 : ${nameList}</p>
</body>
</html>

 

결과 화면1

 

 

 

  • 데이터 변경 전 console 확인

 

jspController.java

package com.th.merorng.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/jsp")
public class jspController {

	@GetMapping("/merong")
	public String getMerong(Model model) {
		//model은 컨트롤러에서 jsp에 보낼 데이터가 있을때
		List<String> nameList = new ArrayList<>();
		nameList.add("홍길동");
		nameList.add("심청이");
		nameList.add("이몽룡");
		nameList.add("춘향이");
		
		model.addAttribute("nameList", nameList);
		return "pc";
	}
}

 

 

pc.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>
</head>
<body>
	<p>내용 : ${nameList}</p>

	<script>
		//아래와 같이 쓸 시 let nArr = 홍길동; 로 인식하기에 다른 방법으로 해야함
 		//let nArr = ${nameList};
 		
		let nArr = `${nameList}`;
		console.log("체크 : ", nArr);
	</script>
</body>
</html>

 

결과 화면2

 

 

=> 위와 같이 사용할 경우 데이터를 변형해야 하는 문제가 있음

 

 

 

  • ObjectMapper 를 이용한 Json 문자열 변환

jspController.java

package com.th.merorng.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import com.fasterxml.jackson.databind.ObjectMapper;

import lombok.extern.slf4j.Slf4j;

@Slf4j
@Controller
@RequestMapping("/jsp")
public class jspController {

	@GetMapping("/merong")
	public String getMerong(Model model) throws Exception {
		//model은 컨트롤러에서 jsp에 보낼 데이터가 있을때
		List<String> nameList = new ArrayList<>();
		nameList.add("홍길동");
		nameList.add("심청이");
		nameList.add("이몽룡");
		nameList.add("춘향이");
		
		model.addAttribute("nameList", nameList);
		
		//Jackson 라이브러리 직접 사용, 자바 객체 => JSON문자열 
		ObjectMapper lgObj = new ObjectMapper();
		String jsonNameList = lgObj.writeValueAsString(nameList);
		log.debug("확인 : {}",jsonNameList);
		
		model.addAttribute("jsonNameList", jsonNameList);
		
		return "pc";
	}
}

 

 

pc.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>
</head>
<body>
	<p>내용 : ${nameList}</p>
	<p>내용 : ${jsonNameList}</p>

	<script>
		let nArr = `${jsonNameList}`;
		console.log("체크 : ", nArr);
	</script>
</body>
</html>

 

결과 화면4

 

 

=> 데이터가 각각으로 들어오기에 응용하거나 이용하기 편리함

 

 

반응형
반응형

 

lombok 파일 설정

 

 

파일

 

 

1

 

1. 해당의 파일을 sts4 설치된 폴더로 이동 > 위의 경로에 cmd 입력

 

 

2

 

2. 아래의 코드 입력

 

 

3

 

3. Specify location 클릭

 

 

4

 

4. sts4 폴더 클릭 > Select > Install / Update 클릭

 

 

5

 

5. Quit Installer 클릭

 

6. sts4 재부팅

 

 

7

 

7. 프로젝트에서 오른쪽 마우스 클릭  > Spring > Add Starters 클릭

 

 

8

 

8. lom 검색 > Lombok 체크박스 클릭 > Next 클릭

Dependencies 를 추가하고 싶을 때는 7번과 8번 이용 (자주 사용함)

 

 

9

 

9. pom.xml 체크박스 클릭 > Finish 클릭

 

 

 

로그 레벨 설정 및 jsp 파일 사용을 위한 설정

 

 

  • 로그 레벨 설정

application.properties

spring.application.name=merorng
server.port=8004

#로그레벨 설정 : logging.level.패키지명
logging.level.com.th.merorng=debug

 

 

 

  • jsp 파일 사용 설정

jsp 파일은 sts4에서 사용하기 위해 설정이 필요함 (매번 폴더를 생성할때 넣어줘야함)

 

 

pom.xml
</dependencies> 안에 하단 부분 추가

<dependency>
    <groupId>jakarta.servlet.jsp.jstl</groupId>
    <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
</dependency>

<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>jakarta.servlet.jsp.jstl</artifactId>
</dependency>

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

 

 

application.properties
하단의 추가

# view resolver 접두어, 접미사 설정
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

 

 

application.properties의 설정에 맞는 폴더를 생성해줘야함

/webapp/WEB-INF/views 폴더 생성해야함

 

 

 

jsp 동작 확인

 

 

jspController.java

package com.th.merorng.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/jsp")
public class jspController {

	@GetMapping("/merong")
	public String getMerong() {
		return "pc";
	}
}

 

 

pc.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>
</head>
<body>
 	<h1>피씨(pc)</h1>
</body>
</html>

 

결과 화면1

 

 

반응형
1 2 3 4 5 6 7 ··· 93