๊ณต๊ณต๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์„œ DB์— ์ €์žฅํ•˜๊ณ 
์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ๋“ค์˜ ๊ฐ’์„ ์ƒ์„ธ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ๊ธฐ ์œ„ํ•ด  querydsl์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

 

์ด์— ์„ค์ • ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

๋นŒ๋“œ ๋„๊ตฌ๋Š” gradle์ด๋‹ค.

 

์•„๋ž˜์™€ ๊ฐ™์ด dependencies ์— ์ถ”๊ฐ€ํ•œ๋‹ค.

dependencies {

      
      // Querydsl ์ถ”๊ฐ€
      implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"
      
      
}

 

Getter & Setter ?


 

์ž๋ฐ”์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€์—์„œ ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์•„๋‘๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

 

์™ธ๋ถ€์—์„œ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 

 

์ด๋ฅผ ๋ง‰๊ธฐ์œ„ํ•ด ์ ‘๊ทผ ์ œ์–ด์ž(Private) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„๋“œ์˜ ์ง์ ‘ ์ ‘๊ทผ์„ ๋ง‰๊ณ  ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด ๊ฐ€์ ธ์˜จ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ๋จผ์ €

๊ฒ€์‚ฌํ•˜์—ฌ ์œ ํšจํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋ฉฐ ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ Getter, Setter ์ด๋‹ค.

 

์ฆ‰, Getter, Setter ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌด๊ฒฐ์„ฑ์„ ํ•ด์น˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- Getter ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

- Setter ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์„ธํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

<Getter & Setter ๊ธฐ๋ณธ ์˜ˆ์‹œ>

class A{
	
	private String name;
	
	public A(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

public class GetterSetter {
	public static void main(String[] args) {
		
		A a = new A("tang");
		System.out.println(a.getName());
		a.setName("tang2");
		System.out.println(a.getName());
		
	}

}

์ถœ๋ ฅ๊ฐ’

 

์ด๋ฅผ ํ†ตํ•ด Scanner ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ  ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ๊ฐ’๋งŒ์„ ์ด์šฉํ•ด Getter, Setter๋ฅผ ํ™œ์šฉํ•˜๋ฉด 

๊ณต๋™์ž‘์—… ๋“ฑ์„ ํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ•ด์น˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.

 

์ด๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์€ ์Šคํ”„๋ง๋ถ€ํŠธ ๊ฒŒ์‹œํŒ์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ์œ„ํ•œ ๊ณผ์ •์„ ์„ค๋ช…ํ•œ๋‹ค.

 

โ‘  ๊ฒŒ์‹œ๋ฌผ์„ ์ €์žฅํ•˜๋Š” ์—”ํ‹ฐํ‹ฐ์— ์•„๋ž˜์˜ ํ•„๋“œ๋ฅผ ๋„ฃ์–ด์•ผํ•œ๋‹ค.

    - ํŒŒ์ผ์ด๋ฆ„(์ปฌ๋Ÿผ๋ช…: filename)

    - ํŒŒ์ผ๊ฒฝ๋กœ(์ปฌ๋Ÿผ๋ช…: filepath)

 

 

โ‘ก ํŒŒ์ผ์—…๋กœ๋“œ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด MultipartResolver๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๊ณ 

    ์ถ”์ถœํ•œ ํŒŒ์ผ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ํŒŒ์ผ์ด๋ฆ„๊ณผ ํŒŒ์ผ๊ฒฝ๋กœ๋ฅผ ์—”ํ‹ฐํ‹ฐ์— ์ €์žฅํ•œ๋‹ค.

โ‘ข ๊ทธ ํ›„, ๋งˆ์ง€๋ง‰์œผ๋กœ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

 

 

๊ฒฐ๊ณผํ™”๋ฉด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

์ฒจ๋ถ€ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ๊ฒŒ์‹œ๋ฌผ ์ƒ์„ธ๋ณด๊ธฐ์—์„œ ์ฒจ๋ถ€ํŒŒ์ผ๋ช…์ด ๋‚˜ํƒ€๋‚œ๋‹ค.

 

๋‹ค์Œ์—๋Š” ์ฒจ๋ถ€ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ด๋‹ค.

 

์ด๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์—์„œ๋Š” ์•„๋ž˜ ์˜์ƒ์„ ์ฐธ๊ณ ํ•˜์—ฌ  HTML+JS๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ชจ๋‹ฌ์ฐฝ์„ ๋งŒ๋“ค์–ด ๋ณธ๋‹ค.

 

HTML ๋กœ ์ฝ”๋”ฉํ•˜๊ธฐ - YouTube

Yotube-๋…ธ๋งˆ๋“œ์ฝ”๋”

 

 

โ‘ . ์šฐ์„  ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒ„ํŠผ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค€๋‹ค.

<!-- modal.html -->

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
</head>
<body>
<button>Show modal</button>
</body>
</html>

 

โ‘ก. ์œ„์˜ HTML ์ฝ”๋“œ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฒ„ํŠผ์ด ๋‚˜ํƒ€๋‚œ๋‹ค.

 

โ‘ข. ๊ทธ ํ›„, 'Show modal' ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ๋ณด์—ฌ์ค„ ๋ชจ๋‹ฌ์ฐฝ์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

   * ์ด๋•Œ, model ์ฐฝ์€ <dialog> ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด ์ค€๋‹ค.

<!-- modal.html -->

<!DOCTYPE html>

...(์ƒ๋žต)...

<dialog>
    hello~
    <form method="dialog">
      <button value="close">Close</button>
      <button value="confirm">Confirm</button>
    </form>
</dialog>
</body>
</html>

์œ„์˜ ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ•œ dialog ํƒœ๊ทธ์˜ ์ •์˜ ๋ฐ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋”๋ณด๊ธฐ

* ์ •์˜ ๋ฐ ํŠน์ง•

- <dialog> ํƒœ๊ทธ๋Š” ๋Œ€ํ™” ์ƒ์ž(dialog box)๋‚˜ ๋Œ€ํ™” ์œˆ๋„์šฐ(dialog window)๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

- <dialog> ์š”์†Œ๋Š” ์›น ํŽ˜์ด์ง€์—์„œ ์†์‰ฝ๊ฒŒ ํŒ์—… ๋Œ€ํ™” ์ƒ์ž๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

์ถœ์ฒ˜: http://www.tcpschool.com/html-tags/dialog(TCPSchool.com)

 

โ‘ฃ. 'show modal' ๋ฒ„ํŠผ์„ ํด๋ฆญ ์‹œ dialog ํƒœ๊ทธ๋ฅผ ํ™œ์„ฑํ™” ํ•˜๊ธฐ ์œ„ํ•ด js ํŒŒ์ผ์„ ์ƒ์„ฑ ํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

/* modal.js */

const button = document.querySelector("button");
const dialog = document.querySelector("dialog");



button.addEventListener("click", () =>{
    dialog.showModal();
});
<!-- modal.html -->

...(์ƒ๋žต)...

</body>
<script src="modal.js"></script>
</html>

 

โ‘ค. ์ด์ œ ๋‹ค์‹œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ชจ๋‹ฌ์ฐฝ์ด ํ™œ์„ฑํ™” ๋œ๋‹ค.

 

CSS ๋“ฑ์„ ์ด์šฉํ•˜๋ฉด ๋ฒ„ํŠผ ๋ฐ ๋ชจ๋‹ฌ์ฐฝ์„ ์‚ฌ์šฉ์ž์˜ ๊ธฐํ˜ธ์— ๋งž๊ฒŒ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋‹ค!

 

'Javascript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Javascript] ๋‚ด์žฅ๊ฐ์ฒด - Date  (0) 2023.03.28
[Javascript] ๋‚ด์žฅ ๊ฐ์ฒด - Array  (0) 2023.03.27
[Javascript] ๊ฐ์ฒด  (0) 2023.03.27
[javascript] ํ•จ์ˆ˜(function)  (0) 2023.03.23
[Javascript] ๋ฐ˜๋ณต๋ฌธ ์—ฐ์Šต  (0) 2023.03.23

 

 

 

 

ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” gradle ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž‘์„ฑํ•œ๋‹ค.

 

1. gradle ์„ค์น˜ ๋ฐ ํ”„๋กœ์ ํŠธ ์„ค์น˜


 

1. ์šฐ์„  ,  ํ•ด๋‹น ๋งํฌ๋กœ ์ ‘์†ํ•˜์—ฌ gradle์„ ์„ค์น˜ํ•œ๋‹ค.

https://gradle.org/releases/

 

Gradle | Releases

Find binaries and reference documentation for current and past versions of Gradle.

gradle.org

 

2. ์„ค์น˜ ํ›„ Path ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฒฝ๋กœ์— "[gradle์„ค์น˜๊ฒฝ๋กœ]/bin" ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

3. CMD ์ฐฝ์„ ์‹คํ–‰ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด gradle --version ์ž…๋ ฅ ์‹œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒ„์ „ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋ฉด ์„ค์น˜์— ์„ฑ๊ณตํ•œ ๊ฒƒ์ด๋‹ค.

 

4. ๋‹ค์Œ gradle ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์œ„ํ•ด ๋ฉ”๋ชจ์žฅ ๋˜๋Š” notepad++์„ ์ด์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ ํ›„ ํŒŒ์ผ๋ช…์„ build.gradle ๋กœ ์ €์žฅํ•œ๋‹ค.

apply plugin:'java'

sourceCompatibility = 11.0 //๋‚˜์˜ jdk ๋ฒ„์ „์€ 11.0 ๋ฒ„์ „์ด๋‹ค
targetCompatibility = 11.0 //๋‚˜์˜ jdk ๋ฒ„์ „์€ 11.0 ๋ฒ„์ „์ด๋‹ค
compileJava.options.encoding ="UTF-8"

repositories {
mavenCentral()
}


dependencies {
implementation 'org.springframework:spring-context:5.0.2.RELEASE'
}

wrapper{
gradleVersion = '8.1.1'  //๋‚˜์˜ gradle ๋ฒ„์ „์€ 8.1.1 ๋ฒ„์ „์ด๋‹ค
}

 

5. ๋‹ค์‹œ CMD์ฐฝ์—์„œ gradle.build ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”๋กœ ์ด๋™ ํ›„ ์•„๋ž˜์˜  ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ ํ›„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด BUILD SUCCESSFULL์ด ๋‚˜ํƒ€๋‚จ์„ ํ™•์ธํ•œ๋‹ค.  

 

2. gradle ํ”„๋กœ์ ํŠธ ์ž„ํฌํŠธ


์ด์ œ ์ดํด๋ฆฝ์Šค์—์„œ ์•ž์—์„œ ๋งŒ๋“   gradle ํ”„๋กœ์ ํŠธ๋ฅผ import ํ•œ๋‹ค.

 

1. ์ดํด๋ฆฝ์Šค ์‹คํ–‰ ํ›„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด 'Import projects...' ํด๋ฆญ

 

2.  Existing Gradle Project ์„ ํƒ ํ›„ 'Next'  ํด๋ฆญ

 

3. Next ํด๋ฆญ

 

4. Next ํด๋ฆญ

 

5. Next ํด๋ฆญ

 

6. Finish ํด๋ฆญ

 

 

7. Gradle ํ”„๋กœ์ ํŠธ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ import ๋˜์—ˆ๋‹ค.

* ์ฐธ๊ณ  : ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์•ˆ์˜ src/main/java๋Š” ์ˆ˜๋™์œผ๋กœ ๋ณ„๋„ ์ƒ์„ฑํ•ด์•ผํ•จ.

 

 

1. ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ ํ›„ Properties ํด๋ฆญ.

 

 

2.  JAVA Build Path -> Libraries -> Modulepath -> Add External Class Folder ์ˆœ์„œ๋กœ ํด๋ฆญ.

3. mysql-connector jar ํŒŒ์ผ ํด๋ฆญ

4.  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„ ์„ค์ • ํ›„  Apply and close ํด๋ฆญ.

 

5. ์„ฑ๊ณต์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ƒ์„ฑ ๋จ์„ ํ™•์ž„

 

6. ์ด์ œ ์ž๋ฐ”์ฝ”๋“œ๋ฅผ ํ†ตํ•ด JDBC ์—ฐ๊ฒฐ ์ง„ํ–‰ ๋ฐ ๊ธฐ์กด์— DB์— ์กด์žฌํ–ˆ๋˜ bbs ํ…Œ์ด๋ธ”์˜ mvcboard์˜ ๋‚ด์šฉ ํ™•์ธ.

 - ์†Œ์Šค์ฝ”๋“œ.

package jdbc;

import java.sql.*;
public class JDBC_conn {
	public static void main(String[] args) {
	 Statement stmt = null; //์ธํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋Š” ์ •์  ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰
	 PreparedStatement psmt = null; // ์ธํŒŒ๋ผ๋งˆํ‹ฐํ„ฐ
	 ResultSet rs = null;
	
	 try {
		 Class.forName("com.mysql.cj.jdbc.Driver");
		 Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/DB๋ช…","DB id","DB PWD");
		 System.out.println("mysql db ์—ฐ๊ฒฐ ์„ฑ๊ณต");
		
		 
		 stmt = conn.createStatement();  // ์ฟผ๋ฆฌ ์‹คํ–‰์„ ์œ„ํ•œ statament ๊ฐ์ฒด ์ƒ์„ฑ
		 System.out.println("Statement ๊ฐ์ฒด ์ƒ์„ฑ ์„ฑ๊ณต");

		 rs =stmt.executeQuery("SELECT * FROM ์กฐํšŒ ํ•  ํ…Œ์ด๋ธ”๋ช…");
		 
		 while(rs.next()) {
			 String name =rs.getString("name");
			 String title =rs.getString("title");
			 
			 System.out.println(title);
			 System.out.println(name);
		 }
		 
		 
	 }
	 catch (ClassNotFoundException e) {
		 System.out.println("์—ฐ๊ฒฐ ์‹คํŒจ");
		 
	 }catch (SQLException e) {
		 System.out.println("ใ…‡db์ ‘์† ์‹œ๋ฅ˜ใ…");
	 }
	}
}

ํ™”๋ฉด ๊ฒฐ๊ณผ

 

+ Recent posts