Spring/Spring 공부

[spring] 1. DB 생성, STS 기본 생성

congs 2023. 6. 5. 14:03

1. DB  생성

- root접속 ( mysql -uroot -pezen )

create database springtest;
(DB생성)

use mysql;
(mysql은 근본 DB로 권한을 부여하는 기능이 있음! )


create user 'springuser'@'localhost' identified by 'mysql' ;
(유저생성)

grant all privileges on springtest.* to 'springuser'@'localhost' with grant option;
(권한부여)

flush privileges;
(재시작)
- 유저 변경 접속 ( mysql -uspringuser -pmysql )

use springtest;

create table user(
id varchar(100) not null,
pw varchar(100) not null,
name varchar(100),
email varchar(100),
home varchar(100),
age int,
reg_date datetime default now(),
primary key(id)
);

 

- 생성 후 결과 -

 


 

2-1. package 생성 : src/main/java에서 ctrl + n

  1. controller
  2. domain
  3. repository
  4. service

package생성


생성된것을 확인이 가능!

 


 

2-2. package 생성 : src/main/resources에서 ctrl + n

 

mappers 패키지 생성

 


 

3. 작성한 sql문을 저장해놓을 text file생성 : src/main/resources에서 ctrl + n

 



위치 : src - webapp - resources에 위치잡고 -> name을 sql로 설정하고 저장!


원하는 위치에 sql메모장이 생긴것을 확인! + 내용 넣기


내용 넣기 (sql문)

- root접속 ( mysql -uroot -pezen )

create database springtest;
(DB생성)

use mysql;
(mysql은 근본 DB로 권한을 부여하는 기능이 있음! )

create user 'springuser'@'localhost' identified by 'mysql' ;
(유저생성)

grant all privileges on springtest.* to 'springuser'@'localhost' with grant option;
(권한부여)

flush privileges;
(재시작)

- 유저 변경 접속 ( mysql -uspringuser -pmysql )

use springtest;

create table user(
id varchar(100) not null,
pw varchar(100) not null,
name varchar(100),
email varchar(100),
home varchar(100),
age int,
reg_date datetime default now(),
primary key(id)
);

 


 

4. domain패키지에 UserVO 생성 : domain에 ctrl + n


package com.myweb.www.domain;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

//@ToString //ToString 자동 생성
//@NoArgsConstructor //아무것도 없는 생성자 자동생성(기본생성자)
//@AllArgsConstructor //생성자 자동생성
//@Setter //@Satter를 적고 import lombok을 하면 setter가 자동생성
//@Getter //@Gatter를 적고 import lombok을 하면 getter가 자동생성
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
public class UserVO {
	
	private String id;
	private String pw;
	private String name;
	private String email;
	private String home;
	private int age;
	private String reg_date;
   
}

- lombok이 안되는 경우! 아래코드 처럼으로 getter,setter등을 직접 작성해서 사용

package com.myweb.www.domain;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

//@ToString //ToString 자동 생성
//@NoArgsConstructor //아무것도 없는 생성자 자동생성(기본생성자)
//@AllArgsConstructor //생성자 자동생성
//@Setter //@Satter를 적고 import lombok을 하면 setter가 자동생성
//@Getter //@Gatter를 적고 import lombok을 하면 getter가 자동생성
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Setter
@Getter
public class UserVO {
	
	private String id;
	private String pw;
	private String name;
	private String email;
	private String home;
	private int age;
	private String reg_date;
	
	public UserVO(){}
	
	public UserVO(String id, String pw, String name, String email, String home, int age, String reg_date) {
		this.id = id;
		this.pw = pw;
		this.name = name;
		this.email = email;
		this.home = home;
		this.age = age;
		this.reg_date = reg_date;
	}


	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getPw() {
		return pw;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getHome() {
		return home;
	}
	public void setHome(String home) {
		this.home = home;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getReg_date() {
		return reg_date;
	}
	public void setReg_date(String reg_date) {
		this.reg_date = reg_date;
	}
	
	@Override
	public String toString() {
		return "UserVO [id=" + id + ", pw=" + pw + ", name=" + name + ", email=" + email + ", home=" + home + ", age="
				+ age + ", reg_date=" + reg_date + "]";
	}
	
	
	
	
	
}

 

5. controller패키지에 UserController 생성 

package com.myweb.www.controller;


import javax.inject.Inject;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;

import com.myweb.www.domain.UserVO;
import com.myweb.www.service.UserService;

import lombok.extern.slf4j.Slf4j;

@Slf4j 
@RequestMapping("/member/*")
@Controller
public class UserController {

	private static final Logger log = LoggerFactory.getLogger(UserController.class);
	//상단에 @Slf4j을 적으면 필요가 없음
	
	@Inject
	private UserService usv;
	
}

6. controller에서 연결해서 생성 (Service 인터페이스) : service 패키지에 생성


UserService 인터페이스 생성된것을 확인!


7. service패키지에 ServiceImpl(class)생성 : 생성시에 UserService를 implements하기


 

8. ServiceImpl에 연결해서 UserDAO 인터페이스 생성 : repository패키지에 생성


UserDAO인터페이스가 생성된것을 확인!