JdbcBoard(xml이용)

조수경·2021년 11월 29일
0

고급자바

목록 보기
81/97

JdbcBoardDaoImpl

package kr.or.ddit.board.dao;

import java.sql.SQLException;
import java.util.List;

import com.ibatis.sqlmap.client.SqlMapClient;

import kr.or.ddit.board.vo.JdbcBoardVO;
import kr.or.ddit.util.SqlMapClientFactory;

public class JdbcBoardDaoImpl implements IJdbcBoardDao{
	
private SqlMapClient smc = null;
	
	// 1번
	private static JdbcBoardDaoImpl dao;
	
	// 2번
	private JdbcBoardDaoImpl(){
		smc = SqlMapClientFactory.getSqlMapClient();   // SqlMapClient객체 생성
	}
	
	// 3번
	public static JdbcBoardDaoImpl getInstance(){
		if(dao==null) dao = new JdbcBoardDaoImpl();
		
		return dao;
	}

	@Override
	public int insertBoard(JdbcBoardVO boardVo) {
		int cnt = 0;
		
		try {
			
			Object obj = smc.insert("board.insertBoard", boardVo);
			if(obj==null) {
				cnt = 1;
			}
			
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		} 
		
		return cnt;
	}

	@Override
	public int deleteBoard(int boardNo) {
		int cnt = 0;
		
		try {
			cnt = smc.delete("board.deleteBoard", boardNo);
			
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		} 
		
		return cnt;
	}

	@Override
	public int updateBoard(JdbcBoardVO boardVo) {
		int cnt = 0;
		
		try {
			
			cnt = smc.update("board.updateBoard", boardVo);
			
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		}	
		return cnt;
	}

	@Override
	public List<JdbcBoardVO> getAllBoardList() {
		List<JdbcBoardVO> boardList = null;
		
		try {
			
			boardList = smc.queryForList("board.getAllBoardList");
			
		} catch (SQLException e) {
			boardList = null;
			e.printStackTrace();
		} 
		
		return boardList;
	}

	@Override
	public JdbcBoardVO getBoard(int boardNo) {
		JdbcBoardVO board = null;
		
		try {
		
			board = (JdbcBoardVO)smc.queryForObject("board.getBoard", boardNo);
			
		} catch (SQLException e) {
			board = null;
			e.printStackTrace();
		}
		
		return board;
	}

	@Override
	public List<JdbcBoardVO> getSearchBoardList(String title) {
		List<JdbcBoardVO> boardList = null;
		
		try {
			boardList = smc.queryForList("board.getSearchBoardList", title);
			
			
		} catch (SQLException e) {
			boardList = null;
			e.printStackTrace();
		} 
		return boardList;
	}

	@Override
	public int setCountIncrement(int boardNo) {
		int cnt = 0;
		
		try {
			cnt = smc.update("board.setCountIncrement", boardNo);
			
		} catch (SQLException e) {
			cnt = 0;
			e.printStackTrace();
		} 
		
		
		return cnt;
	}

}

Board.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap
  PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
  "http://ibatis.apache.org/dtd/sql-map-2.dtd">
  
  <sqlMap namespace="board">
  
  <insert id ="insertBoard"  parameterClass="boardVo">
  	insert into jdbc_board(board_no, board_title, board_writer, board_date, board_cnt, board_content) 
  	values(board_seq.nextVal, #board_title#, #board_writer#, sysdate, 0, #board_content#)
  </insert>
  
  <delete id="deleteBoard" parameterClass="int">
  	delete from jdbc_board where board_no = #board_no#
  </delete>
  
  <update id="updateBoard" parameterClass="boardVo">
  	update jdbc_board set board_title = #board_title#, board_content = #board_content#, 
  		board_date = sysdate where board_no = #board_no# 
  </update>
  
  <select id="getAllBoardList" resultClass="boardVo">
  select board_no, board_title, board_writer, to_char(board_date, 'YYYY-MM-DD') board_date, 
  	board_cnt, board_content from jdbc_board order by board_no desc
  </select>
  
  <select id="getBoard" resultClass="boardVo" parameterClass="int">
  select board_no, board_title, board_writer, to_char(board_date, 'YYYY-MM-DD') as board_date, 
  		board_cnt, board_content from jdbc_board where board_no = #board_no# 
  </select>
  
  <select id="getSearchBoardList" resultClass="boardVo">
  select board_no, board_title, board_writer, to_char(board_date, 'YYYY-MM-DD') as board_date, 
  board_cnt, board_content from jdbc_board
  where board_title like '%' || #board_title# || '%' order by board_no desc
  </select>
  
  <update id="setCountIncrement" parameterClass="int">
 update jdbc_board set board_cnt = board_cnt + 1 where board_no = #board_no#
  </update>
  
  
  </sqlMap>
  
  

sqlMapConfig

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMapConfig
   PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
   "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
   
 <sqlMapConfig>
   <!-- 
     DB와 연결하는 정보를 properties파일에 설정해 놓고
          이 properties파일의 내용을 읽어올 수 있도록 설정한다.
    -->
   <properties resource="kr/or/ddit/config/dbinfo.properties"/>
   
   <!-- 
     SQL문이 저장된 xml문서에서  실행할 쿼리문을 찾을때
          이  xml문서의 네임스페이스와 SQL문이 작성된 태그의 id속성값을 
          연결해서 찾도록 설정한다.
    -->
    <settings useStatementNamespaces = "true"/>
    
    <!-- 
      쿼리문에 사용할 VO객체는 패키지 이름을 포함한 전체 이름을
      사용해야 하는데 그렇게 되면 문장이 너무 길어질 수 있기 때문에
      전체 이름을 대신할 alias를 설정할 수 있다.
    
         형식) <typeAlias alias="alias명" type="클래스의 풀네임"/>
     -->
     
     <typeAlias alias ="lprodVo" type="kr.or.ddit.vo.LprodVO"/>
     <typeAlias alias ="memberVo" type="kr.or.ddit.mvc.vo.MemberVO"/>
     <typeAlias alias ="boardVo" type="kr.or.ddit.board.vo.JdbcBoardVO"/>
     
    
    
    <!-- DB와의 연결을 처리하는 부분 -->
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="${driver}"/>
			<property name="JDBC.ConnectionURL" value="${url}"/>
			<property name="JDBC.Username" value="${user}"/>
			<property name="JDBC.Password" value="${pass}"/>
       </dataSource>
	</transactionManager>   
	
	 
    <!-- 실행할 SQL문 등록하기 -->
    <!-- 
        실행할 SQL문은 xml문서로 따로 만든 후 그 xml문서를
        아래와 같이 등록하면 된다.
        
        형식) <sqlMap resource="경로명/파일명.xml"/>
     -->
     
     <sqlMap resource="kr/or/ddit/ibatis/mapper/lprodTest.xml"/> 
     <sqlMap resource="kr/or/ddit/ibatis/mapper/jdbc2ibatis.xml"/>
  	 <sqlMap resource="kr/or/ddit/ibatis/mapper/memberTest.xml"/>
  	 <sqlMap resource="kr/or/ddit/ibatis/mapper/Board.xml"/>
  

 </sqlMapConfig>
profile
신입 개발자 입니다!!!

0개의 댓글

관련 채용 정보