๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
JAVA/Spring

[JAVA] Spring ์œผ๋กœ ์ต๋ช… ํˆฌํ‘œ(์„ ๊ฑฐ) ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ #2

by soy๋ฏธ๋‹ˆ 2021. 9. 19.

 

 

ํˆฌํ‘œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ(๋ณธ์ธ์ธ์ฆ, ์ค‘๋ณตํˆฌํ‘œํ™•์ธ, ํˆฌํ‘œ ํผ, ํˆฌํ‘œ์ž์™€ ์„ ๊ฑฐ ํ›„๋ณด์ž์˜ ์ •๋ณด ์—…๋ฐ์ดํŠธ)์— ๋Œ€ํ•œ ๊ฒƒ์€ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์˜€์ง€๋งŒ ๋ฉ˜ํ† ๋‹˜์˜ ์กฐ์–ธ์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ๋น ํŠธ๋ฆฐ ๊ธฐ๋Šฅ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

1. ํˆฌํ‘œ ์ทจ์†Œ

๋ณธ์ธ ์ธ์ฆ ํ›„์— ํˆฌํ‘œ ํผ์œผ๋กœ ์ ‘๊ทผํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ํˆฌํ‘œ ํผ์—์„œ ํˆฌํ‘œ๋ฅผ ์ทจ์†Œํ•˜๊ณ  ํ™ˆ์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ์ด ์—†์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ ๊ฑฐ ํ›„๋ณด์ž๋ฅผ ๋ดค๋Š”๋ฐ ํˆฌํ‘œํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์ด ์—†๋‹ค๊ฑฐ๋‚˜ ํˆฌํ‘œ๋ฅผ ๋‚˜์ค‘์— ํ•˜๊ณ  ์‹ถ์–ด์ ธ์„œ ํˆฌํ‘œ ํผ์—์„œ ๋น ์ ธ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋ฉด ์–ด๋–ค ์‚ฌ์ดํŠธ์—์„œ ์ƒ์„ธ ํŽ˜์ด์ง€์—์„œ ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ธฐ๋Šฅ, ๊ทธ๋ฆฌ๊ณ  ํผ์„ ๋„ฃ์€ ํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ์—๋Š” ํผ ์ž‘์„ฑ์„ ์ทจ์†Œํ•˜๋Š” ๋ฒ„ํŠผ์ด ์žˆ๋Š” ๊ฒƒ์ด ์–ด์ฐŒ๋ณด๋ฉด ๋‹น์—ฐํ•œ๋ฐ ๋ฏธ์ฒ˜ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ํˆฌํ‘œ ํผ์ด ์žˆ๋Š” VoteView.jsp ์—์„œ ํˆฌํ‘œ๋ฅผ ์ทจ์†Œํ•˜๊ณ  ๋ฉ”์ธ ํ™”๋ฉด์ธ index.jsp ๋กœ ๋Œ์•„๊ฐ€๋Š” ๋ฒ„ํŠผ์„ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

 

 

2. ์„ ๊ฑฐ ๋“ํ‘œ์œจ ๋ฆฌ์ŠคํŠธ

์ผ๋ฐ˜์ ์œผ๋กœ ํˆฌํ‘œ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‹ค์‹œ๊ฐ„ ์„ ๊ฑฐ ํ›„๋ณด์ž์˜ ๋“ํ‘œ์œจ์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€๋Š” ๋งŒ๋“ค์ง€ ์•Š๊ฒ ์ง€๋งŒ ์ผ๋‹จ ์ด๊ฑด ๊ณต๋ถ€๋ฅผ ์œ„ํ•œ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ์ด๊ณ , ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ›„๋ณด์ž๋“ค์˜ ๋“ํ‘œ ์ˆ˜๊ฐ€ ์ž˜ ์—…๋ฐ์ดํŠธ ๋˜๋Š”์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋“ํ‘œ ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€๋„ ๋งŒ๋“ค์–ด ๋ณด์•˜๋‹ค. ๊ทผ๋ฐ ๋‹ค ํ•˜๊ณ  ๋‚˜์„œ ๋ณด๋‹ˆ ๋ญ”๊ฐ€ ๋˜๊ฒŒ ์–ด๋ ต๊ฒŒ ํ•œ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์—๋Š” DB SELECT ํ•ด์„œ ๋ณด์—ฌ์ฃผ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ ํ•˜๊ณ  ์‰ฝ๊ฒŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๊ฐ ์ •๋ณด๋ฅผ ArrayList์— add ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ–ˆ๋”๋‹ˆ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจ ํ•  ๋•Œ๋งˆ๋‹ค ๋ฆฌ์ŠคํŠธ์— ๊ฐ™์€ ์ •๋ณด๊ฐ€ ๊ณ„์† add ๋˜์–ด์„œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๊ณ„์† ๋Š˜์–ด๋‚˜๋Š” ๊ฒŒ ๋ฌธ์ œ์˜€๋‹ค. ๊ทธ๊ฑฐ ๊ฐœ์„ ํ•˜๋Š๋ผ ์‚ฝ์งˆ์„ ๋งŽ์ด ํ–ˆ๋‹ค.

 

์„ ๊ฑฐ ํ›„๋ณด์ž์˜ index์™€ ์ด๋ฆ„, ๋“ํ‘œ ์ˆ˜๋ฅผ ๊ฐ๊ฐ JavaBean ๊ฐ์ฒด์— ๋„ฃ์—ˆ๋‹ค.

// President.java ํŒŒ์ผ (JavaBean)
public class President {
	static ArrayList<String> name = new ArrayList<>(4);
	static ArrayList<Integer> vote = new ArrayList<>(4);
	static ArrayList<Integer> id = new ArrayList<>(4);
	
	public ArrayList<Integer> getVote() {
		return vote;
	}
	
	public void setVote(int pid, int pvote) {
			if(vote.size() >= id.size()) {
				vote.set(pid-1, pvote);
			}
			else{
				vote.add(pvote);
			}
	}
	
	
	public ArrayList<String> getName() {
		return name;
	}
	
	public void setName(String pname) {
		if(name.indexOf(pname) >= 0) {
			name.set(name.indexOf(pname), pname);
		}
		else {
			name.add(pname);
		}
		
	}
	
	public ArrayList<Integer> getId() {
		return id;
	}
	
	public void setId(int pid) {
		if(id.indexOf(pid) >= 0) {
			id.set(id.indexOf(pid), pid);
		}
		else {
			id.add(pid);
		}
	}
}

๊ทธ๋Ÿฐ๋ฐ setId(), setName(), setVote()์—์„œ ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ์— add ํ•ด๋ฒ„๋ฆฌ๋‹ˆ๊นŒ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋ฌดํ•œ์ • ๋Š˜์–ด๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ๊ทธ๋ž˜์„œ ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์ธ๋ฑ์Šค์ธ์ง€ ํ™•์ธ์„ ํ•˜๊ณ  ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์ธ๋ฑ์Šค์ด๋ฉด ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” set ํ•จ์ˆ˜๋กœ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ , ์ฒ˜์Œ ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ์ด๋ฉด add ํ•จ์ˆ˜๋กœ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€๋˜๊ฒŒ๋” ์ฒ˜๋ฆฌ๋ฅผ ํ–ˆ๋‹ค.

 

list() ํ•จ์ˆ˜๋ฅผ ๋Œ๋ฆฌ๋ฉด select * from president; ๋ฅผ ์ฒ˜๋ฆฌํ•ด์„œ ํ•จ์ˆ˜๊ฐ€ ๋Œ์•„๊ฐˆ ๋•Œ๋งˆ๋‹ค president์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ select ํ•ด์„œ ํ…Œ์ด๋ธ”๋กœ ๋ฐ”๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๊ธด ํ•œ๋ฐ ๊ทธ๊ฒƒ๋ณด๋‹ค๋Š” ๋ญ”๊ฐ€ select๋ฅผ ํ•ด์™€์„œ ์—…๋ฐ์ดํŠธ ๋œ ์ •๋ณด๊ฐ€ ์žˆ์œผ๋ฉด ๊ทธ ๋ฐ์ดํ„ฐ๋งŒ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜๊ณ  ์‹ถ์–ด์„œ ์กฐ๊ธˆ ๋ณต์žกํ•˜๊ฒŒ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

 

๋Œ“๊ธ€