Index.html example.xml test.action .class.java test.ibatis. IBatisDAO.java test.ibatis. SqlMapLocator.java View.jsp Page test.ibatis. SqlMapConfig.xml example.xml test.ibatis. IBatisDAO.java test.action .class.java test.ibatis. IBatisDAO.java test.ibatis.mem.xml
1> Index. html <a href="list 1> Index.html <a href="list.action">목록보기</a> a 태그는 list.action 을 실행하는데 이것은 주소 호출이 아니라 example.xml 파일을 실행 시키는데 .action 이 하나의 호출 명이라 볼수있고 호출하면서 list 라는 문자열을 보내게 된다. 2>example.xml <action name="list" class="test.action.ListAction"> <result name="success" type="dispatcher">/view/list.jsp</result> </action> xml 이 호출되면서 넘어오는 문자열을 비교 하는데 action 태그의 name 들을 비교해서 class 안의 주소의 java 파일을 실행 시킨다. 그리고 리턴 받은 Pameter 값을 호출하는 페이지로 반환을 한다. 3>test.action.ListAction.java 상속 받은 ActionSupport 클래스의 execute() 메소드가 실행된다. 이곳에서는 parameter 값들의 name 과 이름이 같은 변수 들을 만들어서 setter 메소드를 만들어 놓으면 자동으로 parameter 값들을 변수에 넣어준다. 그리고 getter 메소드를 만들어 놓으면 변수의 정보를 request 의 parameter 에 자동으로 넣어준다. 이곳에서는 parameter 값들을 정리해주는 곳이라 생각 해도 무방하다.
4> test. ibatis. IBatisDAO 4> test.ibatis.IBatisDAO.java private SqlMapClient sqlMapper; public IBatisDAO(){ sqlMapper=SqlMapLocator.getSqlMapper(); } 처음 실행되는 생성자 메소드와 전역 변수다. 생성자 메소드가 실행되면서 SqlMapLovatior.java 가 실행되면서 Connection 정보를 가져오게 된다. 밑의 DAO 메소드가 실행되기 전에 Connection 정보를 가져온다. 5>SqlMapLocator.java Reader reader = Resources.getResourceAsReader("test/ibatis/SqlMapConfig.xml"); sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader); reader 변수를 실행 하면서 sql 접속 xml 파일을 읽어오게 된다. 그리고 밑의 소스들을 친근하다. 6>SqlMapConfig.xml <sqlMap resource="test/ibatis/mem.xml"/> 위의 정보가 리드 되기 전에 벌써 정보는 모두 넘어가서 ibatis 가 자동으로 Connection 을 잡아 놓은 상태이다. 그리고 쿼리문을 보관하고 있는 mem.xml 을 파일에 포함 시켜 놓는다.
7> IBatisDAO.java 생성자 메소드가 끝나고 현재 예제로 실행 하고 있는 list 를 호출하는 메소드를 실행하게 된다. ArrayList<MemDTO> list=(ArrayList<MemDTO>) sqlMapper.queryForList("getList");//queryForList->ibatis에서 재공해주는 함수 return list; sqlMapper 는 생성자에서 생성한 객체 변수고 queryForList 는 ibatis 에서 제공하는 쿼리문을 실행하는 메소드들 중 하나이다. 그리고 “getList”는 mem.xml 에서 내가 정의해논 쿼리문을 실행시킬 명령어라고 볼수 있다. 자동으로 list 라는 배열에 정보는 리턴되고 IBatisDAO 를 호출한 test.action.ListAction.java 로 돌아간다. 8>ListAction.java return SUCCESS; 미리 만들어 져 있는 예약어 인데 이 SUCCESS 를 example.xml 로 전달하면서 getter 메소드를 실행해서 request 안에 list 배열 정보를 넣어 둔다. 9>example.xml <result name="success" type="dispatcher">/view/list.jsp</result> Success 가 리턴 되어서 실행 되는 문장인데 dispatcher 는 전달할 request 정보가 있는상태에서 다른 페이지로 이동할 때 쓰는 type 문장이다 그리고 주소 정보는 result 태그 사이에 써어 주면 된다.
10>