jsp_DB 변천사
1. jbdc_test.jsp
모든 DB의 구성요소들이 jsp파일에서 jsp태그로 묶여 자바 코드로 작성되어있다.
로딩성공의 체크와 sql문 역시 가은 파일안에 담겨져있어 기능별로 세분화하여 정리가 되지않아 유지보수에 몹시 불편한 코드이다.
https://songg5453.tistory.com/150
2. DBConnection
DBConneciton과 Dao.java파일로 나뉘어 DB가 관리되기 시작한다.
왼쪽이 jdbc_test.jsp고 오른쪽이 DBConneciton이다.
DB의 드라이버를 입력하고 연결해주는 창이 그대로 DBConneciton의 try창으로 들어갔으며, 초록색 박스의 에러내용이 예외처리를 통해 좀 더 구체화되어 알려주기에 유지보수하기 더 좋아졌다.
왼쪽의 jbdc_test.jsp는 sql문이 하드코딩 되어있으나 Dao는 "?"를 사용함으로서 코드를 동적으로 만들었으며 파라미터를 받아올 수 있게 하였다.
오른쪽의 초록박스가 긴 이유는 DBConneciton의 객체를 생성해야하기 때문이며 하드코딩이 아닌 "?"를 사용함으로 인해 파라미터를 받고 파라미터의 유무를 검증해야하는 절차를 거쳐야하기에 코드가 길어졌다. 왼쪽의 초록박스가 간결한 이유는 하드코딩을 하였기 때문이다.
https://songg5453.tistory.com/152?category=1026981
3. DBCP
개발자가 아닌 사람들과의 협업을 위해서 DB의 연결경로를 java파일이 아닌 WAS에 저장해주기 시작해 DBConnection을 Content.xml과 dbcp_test.jsp로 나누었다.
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