2014년 3월 31일 월요일

(Spring3.2 Board) Spring 3.2에서 게시판 작성하기[6. DAO 만들기] , [자바교육/자바강좌/SpringFramework/스프링교육/자바교육잘하는곳/자바교육추천/자바실무교육/JAVA/JAVA교육/JAVA학원/JAVA실무교육]

(Spring3.2 Board) Spring 3.2에서 게시판 작성하기[6. DAO 만들기] , [자바교육/자바강좌/SpringFramework/스프링교육/자바교육잘하는곳/자바교육추천/자바실무교육/JAVA/JAVA교육/JAVA학원/JAVA실무교육]

데이터베이스 SQL문장을 실행하기 위한 DAO클래스를 만들어 보자.
우선 BoardDAO라는 인터페이스를 만든 이를 구현한 SpringBoardDAO 만들자. SpringBoardDAO configBoard.xml 파일에서 빈으로 등록되어 스프링 프레임워크가 기동될 WebApplicationContext 의해 boardDAO라는 이름의 빈으로 등록되어 서비스 된다.:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
BoardDAO 인터페이스 에서는 게시판 리스트 보기를 위한 boardList() 정의한다.
[BoardDAO.java]
package onj.board.dao;
import java.util.List;
import onj.board.model.BoardDTO;
import org.springframework.dao.DataAccessException;
public interface BoardDAO {
       public List<BoardDTO> boardList() throws DataAccessException;
}
아래 SpringBoardDAO에서 setDataSource 통해 DataSource 세터주입 받는데  boardConfig.xml 다음 구문에 의해 주입 받는다.
(property name값에 대한 set method 있어야 하는데 SpringBoardDAO setDataSource 메소드가 정의되어 있어야 한다.)
<bean id="boardDAO"  class="onj.board.dao.SpringBoardDAO">
             <property name="dataSource">
                    <ref bean="dataSource"/>
             </property>
       </bean>
Spring DI 하나인 세터주입(Setter Inject) 대해서는 다음 URL 참고하자.
http://www.onjprogramming.co.kr/oraclejavanew/oraclejava/bbs/board.php?bo_table=LecSpring&wr_id=193&page=3
jdbcTemplate객체의 query 명령문에 의해 SELECT문장을 실행하며 인자로 넘겨 RowMapper maprow 구현에 의해 실행된 결과를 건씩 BoardDTO 담으며 최종 결과물을 boardList 담아서 리턴해 준다. 모든 게시물을 읽기 위해서 new RowMapper()에서 mapRow 구현 것이다.
다음은 전체 소스코드이다.
[SpringBoardDAO.java]
package onj.board.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import onj.board.model.BoardDTO;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
public class SpringBoardDAO implements BoardDAO {
       private JdbcTemplate jdbcTemplate;
      
       public void setDataSource(DataSource dataSource){              
                    this.jdbcTemplate = new JdbcTemplate(dataSource);
       }
 
       @Override
       public List<BoardDTO> boardList() throws DataAccessException {
             List<BoardDTO> boardList = null;
            
             String sql = "select * from board";
            
             boardList = jdbcTemplate.query(sql, 
                                 new RowMapper() {
                           public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
       BoardDTO board = new BoardDTO();
                                             
                                              board.setSeq(rs.getInt("seq"));                                          board.setName(rs.getString("name"));                                     board.setPasswd(rs.getString("passwd"));                                 board.setTitle(rs.getString("title"));                                   board.setContent(rs.getString("content"));                               board.setFileName(rs.getString("filename"));
       board.setDate(rs.getString("regdate"));
       board.setReadCount(rs.getInt("readcount"));
       board.setReply(rs.getInt("reply"));
       board.setReply_step(rs.getInt("reply_step"));
       board.setReply_level(rs.getInt("reply_level"));
                                             
       return board;
                                        }
             });
            
             return boardList;
       }
}

오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:30) 개강
(4/07)[기업100%환급]SQL기초에서 Schema Object까지
(4/07)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(4/14)C#4.0,ADO.NET,Network 프로그래밍
(4/14)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(4/14)[기업100%환급]PL/SQL,ORACLE HINT,TUNING

평일야간(19:00~22:00) 개강
(4/01)안드로이드개발자과정
(4/04)웹퍼블리싱 마스터
(4/04)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(4/04)C#,ASP.NET마스터
(4/07)SQL초보에서실전전문가까지
(4/08)Spring3.X, MyBatis, Hibernate실무과정

주말(10:00~18:00) 개강
(4/05)웹퍼블리싱 마스터
(4/05)닷넷실무자를위한WPF개발자과정
(4/05)Spring3.X, MyBatis, Hibernate실무과정
(4/05)SQL초보에서실전전문가까지
(4/12)C#,ASP.NET마스터
(4/12)안드로이드개발자과정
(4/12)JAVA기초에서실무까지


댓글 없음:

댓글 쓰기