Spring-4 Eclipse EE [Util, DTO, DAO,]

디렉터리 구조


dto/board/Board.java

public class Board {
	private int _id;
	private String subject;
	private String content;
	private String writer;
	private int hit;
	private String wdate;
	public int get_id() {
		return _id;
	}
	public void set_id(int _id) {
		this._id = _id;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getWriter() {
		return writer;
	}
	public void setWriter(String writer) {
		this.writer = writer;
	}
	public int getHit() {
		return hit;
	}
	public void setHit(int hit) {
		this.hit = hit;
	}
	public String getWdate() {
		return wdate;
	}
	public void setWdate(String wdate) {
		this.wdate = wdate;
	}
}

dao/util/JDBCUtil.java

public clas JDBCUtil {
	public static Connection getConn() {
		String DBFileName = "MyBoard.db";
		Connection conn = null;
		try {
			Class.forName("org.sqlite.JDBC");
			conn = DriverManager.getConnection("jdbc:sqlite:" + DBFileName);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
	public static void close(Connection conn, PreparedStatement ps) {
		if (ps != null) {
			try {
				ps.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				ps = null;
			}
		}
		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				conn = null;
			}
		}
	}
	public static void close(ResultSet rs, PreparedStatement ps, Connection conn) {
		if (rs != null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				rs = null;
			}
		}
		close(conn, ps);
	}
}

dao/board/BoardDAOJDBC.java // 코딩 후 BoardDAO라는 interface를 만들것임

public class BoardDAOJDBC implements BoardDAO{
	private final String BOARD_INSERT = "INSERT INTO board(subject,content,writer) VALUES(?,?,?);";
	private final String BOARD_DELETE = "DELETE FROM board WHERE _id = ?;";
	private final String BOARD_UPDATE = "UPDATE board SET subject=?, content = ?,writer =? WHERE _id = ?;";
	private final String BOARD_SELECTE_ONE = "SELECT * FROM board WHERE _id = ?;";
	private final String BOARD_SELECTE_ALL = "SELECT * FROM board ORDER BY _id DESC;";
	public int insert(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		int r = -1;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_INSERT);
			ps.setString(1, vo.getSubject());
			ps.setString(2, vo.getContent());
			ps.setString(3, vo.getWriter());
			r = ps.executeUpdate();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return r;
	}
	public int delete(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_DELETE);
			ps.setInt(1, vo.get_id());
			int r = ps.executeUpdate();
			return r;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return -1;
	}
	public int update(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_UPDATE);
			ps.setString(1, vo.getSubject());
			ps.setString(2, vo.getContent());
			ps.setString(3, vo.getWriter());
			ps.setInt(4, vo.get_id());
			int r = ps.executeUpdate();
			return r;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return -1;
	}
	public Board getOne(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		Board gvo = null;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_SELECTE_ONE);
			ps.setInt(1, vo.get_id());
			rs = ps.executeQuery();
			if (rs.next()) {
				gvo = new Board();
				gvo.set_id(rs.getInt("_id"));
				gvo.setSubject(rs.getString("subject"));
				gvo.setContent(rs.getString("content"));
				gvo.setWriter(rs.getString("writer"));
				gvo.setHit(rs.getInt("hit"));
				gvo.setWdate(rs.getString("wdate"));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return gvo;
	}
	public List<Board> getAll() {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		List<Board> list = new ArrayList<Board>();
		try {
			conn = JDBCUtil.getConn();
			ps = conn.prepareStatement(BOARD_SELECTE_ALL);
			rs = ps.executeQuery();
			while (rs.next()) {
				Board gvo = new Board();
				gvo.set_id(rs.getInt("_id"));
				gvo.setSubject(rs.getString("subject"));
				gvo.setContent(rs.getString("content"));
				gvo.setWriter(rs.getString("writer"));
				gvo.setHit(rs.getInt("hit"));
				gvo.setWdate(rs.getString("wdate"));
				list.add(gvo);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return list;
	}
}

DAOJDBC 클래스를 DAO interface로 만들기

BoardDAOJDBC.java 작업창에 오른족 마우스 – Refactor – Extract Interface
Interface name : BoardDAO
Members to declare in the interface – 전체 선택 – OK

서비스를 위해 메타태그를 달아야 한다

@Repository
클래스 상단에 @Repository

@Override
매서드 상단에 Override

@Repository
public class BoardDAOJDBC implements BoardDAO{
	private final String BOARD_INSERT = "INSERT INTO board(subject,content,writer) VALUES(?,?,?);";
	private final String BOARD_DELETE = "DELETE FROM board WHERE _id = ?;";
	private final String BOARD_UPDATE = "UPDATE board SET subject=?, content = ?,writer =? WHERE _id = ?;";
	private final String BOARD_SELECTE_ONE = "SELECT * FROM board WHERE _id = ?;";
	private final String BOARD_SELECTE_ALL = "SELECT * FROM board ORDER BY _id DESC;";
	@Override
	public int insert(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		int r = -1;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_INSERT);
			ps.setString(1, vo.getSubject());
			ps.setString(2, vo.getContent());
			ps.setString(3, vo.getWriter());
			r = ps.executeUpdate();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return r;
	}
	@Override
	public int delete(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_DELETE);
			ps.setInt(1, vo.get_id());
			int r = ps.executeUpdate();
			return r;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return -1;
	}
	@Override
	public int update(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_UPDATE);
			ps.setString(1, vo.getSubject());
			ps.setString(2, vo.getContent());
			ps.setString(3, vo.getWriter());
			ps.setInt(4, vo.get_id());
			int r = ps.executeUpdate();
			return r;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return -1;
	}
	@Override
	public Board getOne(Board vo) {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		Board gvo = null;
		conn = JDBCUtil.getConn();
		try {
			ps = conn.prepareStatement(BOARD_SELECTE_ONE);
			ps.setInt(1, vo.get_id());
			rs = ps.executeQuery();
			if (rs.next()) {
				gvo = new Board();
				gvo.set_id(rs.getInt("_id"));
				gvo.setSubject(rs.getString("subject"));
				gvo.setContent(rs.getString("content"));
				gvo.setWriter(rs.getString("writer"));
				gvo.setHit(rs.getInt("hit"));
				gvo.setWdate(rs.getString("wdate"));
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return gvo;
	}
	@Override
	public List<Board> getAll() {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		List<Board> list = new ArrayList<Board>();
		try {
			conn = JDBCUtil.getConn();
			ps = conn.prepareStatement(BOARD_SELECTE_ALL);
			rs = ps.executeQuery();
			while (rs.next()) {
				Board gvo = new Board();
				gvo.set_id(rs.getInt("_id"));
				gvo.setSubject(rs.getString("subject"));
				gvo.setContent(rs.getString("content"));
				gvo.setWriter(rs.getString("writer"));
				gvo.setHit(rs.getInt("hit"));
				gvo.setWdate(rs.getString("wdate"));
				list.add(gvo);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			JDBCUtil.close(conn, ps);
		}
		return list;
	}
}f

Leave a Comment