JSP&Servlet

[JSP]7. Mybatis 로 JDBC 구현하기

CodeJaram 2023. 6. 29. 08:16

Mybatis로 JDBC 구현하기

 

[회원가입]

[pom.xml]

1. ojdbc.jar 파일 설치하기: maven에서 ojdbc6.jar(11.2.0.4) 코드 복사

 

 

 

라이브러리 추가 확인

 

[DAO 수정하기]

2. sqlSessionManagerFactory 불러오기: sqlSessionManager.getSqlSession();

 

3. join 메소드 만들기(DAO)

1)연결하기(sqlSession 빌리기): sqlSessionFactory.openSession(boolean

autoCommit)

 

2)sql문 실행하기: insert(String statement, Object Parameter) 선택

–session.insert(“mapper의 id값”, sql문장에 넣을 값)

 

3)sql문 작성하기: [Mapper.xml]에 <insert> 태그 작성

-id: DAO에서 작성한 id값(메소드명)

- parameterType="sql문장에 넣은 값의 데이터 타입작성"(DTO 파일경로)

- values 값 채우기: 바인드 변수(?) 대신 #{필드명} 작성

 

4)연결 종료하기(sqlSession반납): session.close()

 

4. Type 별칭 지정하기: [mybatis-config.xml}

-<properties> 태그 아래에 <typeAliases> 태그 추가-안에 <typeAlias> 태그 추가

-type= "Mapper.xml의 parameterType이나 resultType 지정 시 파일경로"

-alias=”별칭”

 

[로그인]

1. 연결하기: sqlSessionFactory.openSession(boolean autoCommit)

 

2. SQL문 실행하기: session.selectOne(“mapper id값”, 넣을 값)

 

3. SQL문 작성하기: <select> 태그

-id: 메소드 이름

-parameterType: “데이터 타입(별칭)”

-resultType: 반환 타입

 

4. 연결 종료하기: session.close()

 

[오류]

*Ctrl+h: 해당 문자열을 포함한 파일 찾기

 

1. 서블릿 클래스로부터 인스턴스 생성 중 오류→annotation방식으로 작성한 webServlet

지우기

 

2. sqlSessionFactory null: 연결하는 파일에 오류 있는지 확인

-web.xml 파일명 오류

-Mapper.xml, db.properties 파일 이동경로 파일명(대소문자, 오타)오류

 

3. 부적합한 Oracle URL 지정: [db.properties.file] 에서 작성한 URL 정확한지 확인

 

 

[모든 회원 정보 테이블로 출력]

 

[DAO]showMember 메소드 만들기

1. 연결하기: sqlSessionFactory.openSession(true)

 

2. SQL문 실행하기: session.selectList(“showMember”)

-id, pw, name 여러 값을 하나로 묶어 가져오므로 selectList 사용

-Mapper의 resultType이 DTO므로 데이터 타입 ArrayList<DTO> 작성

 

3. 연결종료하기: session.close()

 

4. 메소드 리턴타입 ArrayList<DTO>

-매개변수 필요없음: sql문에서 필요한 데이터 없음

-return값 작성: Mapper에서 받아온 id, pw, name을 불러올 수 있도록 리턴

 

[Mapper] id가 showMember인 <select>문 작성

-모든 값을 조회하므로 parmeterType은 필요없음

- resultType은 id, pw, name을 한번에 담을 수 있는 DTO

 

[ShowMember.jsp]출력화면

1. DAO에 있는 showMember 메소드 호출

 

2. 결과값을 테이블 형태로 출력

  •  <table>태그 작성
  •  <tr>태그-<th> 태그 작성: id, name, pw 제목 출력
  •  <tr>태그-<td> 태그 반복하는 for문 작성

[오류]

1. SQLSyntaxErrorException: select문에 세미콜론 작성하지 않음

 

2. IndexOutOfBoundsException: 반복문에서 반복횟수가 리스트의 범위 벗어남

출력할 때 index범위를 벗어나서 작성 =을 지워야 함

 

 

'JSP&Servlet' 카테고리의 다른 글

[JSP]9. 회원정보 관리  (0) 2023.07.06
[JSP]8. lombok  (0) 2023.06.30
[JSP]6. Maven&Mybatis  (0) 2023.06.28
[JSP]6. Maven&Mybatis  (0) 2023.06.27
[JSP]5. Scope  (0) 2023.06.26