국비필기노트/jsp

jsp_DB 변천사

개발..너... 2022. 6. 15. 05:02

1. jbdc_test.jsp

 

 

모든 DB의 구성요소들이 jsp파일에서 jsp태그로 묶여 자바 코드로 작성되어있다. 

로딩성공의 체크와 sql문 역시 가은 파일안에 담겨져있어 기능별로 세분화하여 정리가 되지않아 유지보수에 몹시 불편한 코드이다.

 

https://songg5453.tistory.com/150

 

 

2. DBConnection

 

DBConneciton과 Dao.java파일로 나뉘어 DB가 관리되기 시작한다.

 

jbdc_test.jsp와 DBConnection.java의 차이

 

왼쪽이 jdbc_test.jsp고 오른쪽이 DBConneciton이다. 

DB의 드라이버를 입력하고 연결해주는 창이 그대로 DBConneciton의 try창으로 들어갔으며, 초록색 박스의 에러내용이 예외처리를 통해 좀 더 구체화되어 알려주기에 유지보수하기 더 좋아졌다.

 

jbdc_test.jsp와 MemberDao.java의 차이

 

왼쪽의 jbdc_test.jsp는 sql문이 하드코딩 되어있으나 Dao는 "?"를 사용함으로서 코드를 동적으로 만들었으며 파라미터를 받아올 수 있게 하였다. 

 

오른쪽의 초록박스가 긴 이유는 DBConneciton의 객체를 생성해야하기 때문이며 하드코딩이 아닌 "?"를 사용함으로 인해 파라미터를 받고 파라미터의 유무를 검증해야하는 절차를 거쳐야하기에 코드가 길어졌다. 왼쪽의 초록박스가 간결한 이유는 하드코딩을 하였기 때문이다.

 

https://songg5453.tistory.com/152?category=1026981 

 

 

3. DBCP

 

개발자가 아닌 사람들과의 협업을 위해서 DB의 연결경로를 java파일이 아닌 WAS에 저장해주기 시작해 DBConnection을 Content.xml과 dbcp_test.jsp로 나누었다.

 

DBConneciton과 Context.xml

 

DBConnection에 작성되어있던 DB의 정보들을 Context.xml에 입력을 해주고 좀 더 직관화 시켰다. 

또한 maxActive등을 입력함으로서 DBCP의 범위를 지정해주었다.

 

https://songg5453.tistory.com/157?category=1026981 

 

 

4. Mybatis

 

데이터베이스는 객체지향 언어인 자바와 관련이 깊다. 개발자들은 데이터베이스도 캡슐화 또는 매핑을 하여 정리해주고싶어했고 그렇게 나온것이 Mybatis라는 라이브러리이다.

 

기존 Content.xml는 데이터베이스와 자바를 연결해주는 기능을 하였고 dbcp_test.jsp는 dbcp를 사용할 세팅을 진행하였다.

 

Mybatis의 파일들의 역할은 이렇다.

  • SqlMapConfig: Mybatis가 처음 가동될 때 객체 생성하는 역할(클래스가 처음 실행될 때 한번만 수행됨)
  • Config.xml: 데이터베이스와 자바를 연결
  • member.xml: sql쿼리만 모아둔 xml파일
  • MemberDao.java: 데이터베이스의 데이터를 활용한 메서드를 수행시켜 결과를 return시키는 역할

 

https://songg5453.tistory.com/158?category=1026981