본문 바로가기

개발

MessageDaoProvider와 MessageDaoProviderInit 구현 chap13\WEB-INF\src\kame\chap13\dao\MessageDaoProvider.java package kame.chap13.dao; import kame.chap13.dao.mssql.MSSQLMessageDao; import kame.chap13.dao.mysql.MySQLMessageDao; import kame.chap13.dao.oracle.OracleMessageDao; public class MessageDaoProvider { private static MessageDaoProvider instance = new MessageDaoProvider(); public static MessageDaoProvider getInstance() { return instance; } p..
MySQL에서의 DAO 구현 (1) MySQL 테이블 생성 쿼리 D:\>mysqladmin -u root -p create chap13 D:\>mysql -u root -p mysql> grant select, insert, update, delete, create, drop -> on chap14.* to 'jernin20'@'localhost' identified by '******'; mysql> grant select, insert, update, delete, create, drop -> on chap14.* to 'jernin20'@'$' identified by '******'; mysql> quit D:\>mysql -u jernin20 -p chap13 mysql> create table guestbook_messa..
방명록을 구성하는 클래스의 구조 방명록 구현에 관련된 클래스 GetMessageListService : 요청한 페이지 번호에 포함된 메시지 목록을 구한다. WriteMessageService : 방명록에 메시지를 작성하는 기능을 제공한다. DeleteMessageService : 작성한 메시지를 삭제하는 기능을 제공한다. DAO 관련 클래스들은 다음과 같은 기능을 제공한다. MessageDao : GUESTBOOK_MESSAGE 테이블에 대한 CRUD 기능을 정의한 추상 클래스. DELETE 쿼리와 같이 모든 DBMS에 공통으로 적용될 수 있는 기능은 구현도 함께 제공한다. MySQLMessageDao : MySQL에 알맞은 쿼리를 수행하는 MessageDao OracleMessageDao : 오라클에 알맞은 쿼리를 수행하는 Messa..
Connection을 제공해 주는 ConnectionProvider JDBC API를 이용해서 DB 프로그래밍을 하려면 다음과 같이 Connection 객체를 먼저 생성해 준다. Connection conn = null; try { conn = DriverManager.getConnection(jdbcUrl, userId, userPassword); ... DB 연동이 필요한 모든 코드에서 DriverManager.getConnection() 메서드를 사용해서 Connection 객체를 구할 경우 JDBC URL, 사용자 아이디, 암호가 모든 코드에서 중본된다. 만약 JDBC URL을 변경해야 한다거나 커넥션 풀 구현 방식을 변경해야 할 경우 모든 코드에서 DriverManager.getConnection() 부분을 수정해 주어야 하는 부담이 발생할 수 있다. 또한, D..
DBCP를 이용해서 커넥션 풀 사용하기 자카르타 프로젝트의 DBCP API를 사용할 때에는 다음과 같은 과정을 거친다. 1. DBCP 관련 Jar 파일 및 JDBC 드라이버 Jar 파일 설치하기 2. 커넥션 풀 관련 설정 파일 초기화하기 3. 커넥션 풀 관련 드라이버 로딩하기 4. 커넥션 풀로부터 커넥션 사용하기 (1) 필요한 jar 파일 복사하기 Commons-DBCP API 관련 Jar 파일 Commons-DBCP API가 사용하는 Commons-Pool API의 Jar 파일(1.3 이상) 이 두 라이브러리는 http://commons.apache.org 사이트에서 다운로드 받을 수 있다. 다운받은 라이브러리의 압축을 풀면 jar 파일을 발견할 수 있는데, 이 두 jar 파일을 WEB-INF\lib 디렉터리에 복사해 준다. (2) 설정 파..
웹 어플리케이션의 일반적인 구성 및 방명록 구현 >> 자바는 객체 지향 언어로서 역할에 따라 클래스를 설게함으로써 효율적인 프로그래밍을 할수 있다. JSP의 기반 기술은 자바이기 때문에, 객체 지향에서 비롯되는 자바 언어의 효율성을 JSP 프로그래밍에서도 그대로 적용할 수 있다. 웹 어플리케이션을 개발할 때 클래스를 구성하는 전형적인 구조가 있는데 오늘은 이부분에 대해서 공부해 본다. 01. 어플리케이션의 전형적인 구성 요소 웹 어플리케이션을 포함한 다수의 소프트웨어는 개발 비용 이상으로 유지 보수 비용을 필요로 한다. 특히 웹 어플리케이션의 경우는 일반 어플리케이션에 비해서 개발이 완료된 뒤에도 지속적으로 수정 요구 사항이 발생한다. 이는, 개발이 완료된 이후에도 지속적으로 웹 어플리케이션의 코드를 수정하거나 새롭게 작성해야 한다는 것을 의미한다. ..
웹 어플리케이션 구동시 JDBC 드라이버 로딩하기 JDBC 드라이버는 한 번만 로딩하면 이후로 계속해서 사용할 수 있기 때문에 JSP페이지에서 매번 JDBC 드라이버를 로딩할 필요는 없다. 웹 어플리케이션이 시작될 때 자동으로 JDBC 드라이버를 로딩하도록 다음과 같은 서블릿 클래스를 사용한다. WEB-INF\src\kame\jdbc\loader\Loader.java package kame.jdbc.loader; import javax.servlet.http.HttpServlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import java.util.StringTokenizer; public class Loader extends HttpServlet { pub..
데이터 베이스 프로그래밍 기초 04. JSP 에서 JDBC 프로그래밍 하기 4.1 JDBC의 구조 4.2 JDBC 드라이버 준비하기 4.3 JDBC 프로그래밍의 코딩 스타일 MEMBER 테이블의 내용 이름 아이디 이메일 실행결과 4.4 DBMS와의 통신을 위한 JDBC 드라이버 주요 데이터베이스에 대한 DJBC 드라이버에 해당하는 클래스 MySQL : com.mysql.jdbc.Driver 오라클 : oracle.jdbc.driver.OracleDriver MS SQL 서버 : com.microsoft.sqlserver.jdbc.SQLServerDriver 4.5 데이터베이스 식별을 위한 JDBC URL jdbc:[DBMS]:[데이터베이스식별자] jdbc:mysql://HOST[:PORT]/DBNAME[?param=value&para..