Spring | DB연동 후 게시판 만들기 01.회원 목록 출력하기

새니·2023년 6월 19일
0

spring

목록 보기
5/13
post-thumbnail

📌 db연동 설정 방법!


DB 연동 설정이 잘 되었다면 회원 목록을 출력해보자!!



[Configuration.xml] 생성

프로젝트 - src - main - resource 경로에
new other -> xml -> xmlfile :[Configuration.xml] 생성

  • configuration.xml 에 sql문을 작성한 Mapper xml문서의 위치를 작성해주어야 한다.



Configuration.xml 파일은 MyBatis의 설정을 정의하는 역할.

  1. sessionFactory 빈에게 전달되어 MyBatis의 SqlSessionFactory를 생성하는 데 사용된다.

  2. sessionFactory를 sqlSessionTemplate에 주입하여 SqlSessionTemplate을 생성하고 사용한다.

  3. SqlSessionTemplate은 MyBatis의 SqlSession을 Spring에서 사용하기 쉽게 감싸주는 역할을 한다.




[MemberMapper.xml : sql문을 작성하는 위치]


위에서 만든 경로의 MemberMapper.xml 파일에

xml문서의 형식을 정하는 코드를 작성한 후
ctrl + spcebar 하면 mapper요소를 작성 할 수 있게 된다.


mapper안에서 sql문을 작성해준다.
ctrl + spcebar로 작성 할 수 있는 요소들을 확인 할 수 있다.

파라미터 타입에 dto의 경로를 패키지 부터 적어주어야함

[insert문 작성]

[getList 메서드 작성]

  • 파라미터 값이 MemberDto의 필드명과 같으면 자동으로 바인딩된다!


[Dto, Dao, DaoImpl파일 생성하기]

위 사진과 같은 경로로 package 2개를 만든다.

  • memberdto 클래스를 생성한다.
  • memberdao interface 를 생성한다.

[Dto 작성코드]

setter와 getter, contsracter을 생성한다.

[Dao 작성코드]

[Dao Impl 작성 코드]

MembeDto를 implements 해서 MeberDaoImpl를 add하여 override 매소드들을 만든다.

  • 생성된 classtype(sqlSessionTemplate)이 아닌 sqlSession 인터페이스 타입으로 사용한다.
    : 의존하지않고 유연성을 위해

  • @autowired : 자동으로 주입 받겠다는 의미
    의존성을 주입시켜주는 역할. 의존성 주입을 실제로 실현하게 한다.

  • insert 메서드와 getList메소드 오버라이딩



MemberMapper.xml과 MemberDaoImpl.java의 연결관계

😎[insert]

  • 데이터베이스와 상호작용하는 데 관련된 연결관계를 가지고 있습니다
    MemberMapper.xml 파일은 SQL 쿼리를 정의하고, 이 쿼리들을 실제 DAO 구현체에서 호출하고 사용할 수 있게끔 연결해준다.

😎[getiList]

  • select된 row하나를 어떤 type에 담을지 결정하는 것이 resultType이다.


MemberController에서 요청 처리

1. 해당 메소드는 /member/insert 경로로 요청이 들어오면 실행된다.

  • public String insert(MemberDto dto) : 이 메서드는 MemberDto 타입의 객체인 dto를 매개변수로 받습니다. 클라이언트에서 전달된 요청 파라미터들이 dto 객체에 자동으로 매핑됩니다.
@RequestMapping("/member/insert")
	public String insert(MemberDto dto) {
		//MemberDao 객체를 이용해서 DB에 저장
		dao.insert(dto);
		//view page로 forward 이동해서 응답
		return "member/insert";
	}
  • dao.insert(dto) : MemberDao 객체인 dao를 사용하여 dto 객체를 데이터베이스에 저장합니다. 이 부분은 실제로 데이터베이스에 데이터를 삽입하는 로직이 수행되는 부분입니다.

2. 해당 메소드는 /member/insertform 경로로 요청이 들어오면 실행된다. (회원추가 폼에서의 요청 처리)


	//회원추가 폼 요청 처리
	@RequestMapping("/member/insertform")
	public String inserform() {
		// /WEB-INF/views/member/insertform.jsp 페이지로 forward 이동해서 응답 
		return "member/insertform";
	}
	

3. 해당 메소드는 /member/list 경로로 요청이 들어오면 실행된다.

@RequestMapping("/member/list")
	
	//회원 목록 보기 요청 처리
	public String list(HttpServletRequest request) {
		//회원목록을 얻어와서 
		List<MemberDto> list=dao.getList();
		//request scope에 담고
		request.setAttribute("list", list);
		// /WEB-INF/views/member/list.jsp 페이지로 forward 이동해서 응답 
		return "member/list";
	}



각 페이지의 jsp 작성

[inserform.jsp 코드 작성 ]

  • insertform에서 작성 된 form의 내용을 insert.jsp로 전송한다.

[insert.jsp 코드 작성]

  • ${param.name}은 insertform.jsp에서 전송 받은 "name"이라는 이름의 값을 가져와서 해당 위치에 삽입. 클라이언트가 요청할 때 "name"이라는 파라미터를 전달하면 해당 값을 가져와서 문자열에 삽입한다.

[list.jsp 코드 작성]

  • JSTL(Core Tag Library)의 <c:forEach> 태그를 사용하여 ${list}에 있는 데이터를 반복하면서 테이블의 행을 생성한다.



💻😁 회원 목록 출력


[member/insertform]


[/member/list]

profile
새니의 뒤죽박죽 개발 일기📝

0개의 댓글

관련 채용 정보