서버 측에서 신속한 프로그램 개발을 촉진하는 JSP(Java Server Pages)는 널리 널리 사용되는 도구가 되었습니다. 지루한 측면이 여전히 존재하지만, 아무리 많은 단점이 있더라도 JSP는 웹 프로그래머에게 특히 데이터베이스 입력 및 출력 작업과 데이터 처리에 대해 많은 것을 제공합니다.
JSP를 통한 데이터베이스 액세스에는 많은 지침이 필요하지 않습니다. 문제는 어떻게 개발자가 웹 프로그램을 통한 데이터베이스 액세스가 기존 로컬 OLAP 시스템의 데이터베이스 액세스보다 더 매력적이라는 점을 받아들이게 하고 명확하고 간결한 데이터 액세스 방법이 핵심이라는 것을 깨닫게 만드는 것입니다. 이 시점에서는 JSP가 매우 잘 해결할 수 있습니다.
당신은 무엇을 할 수 있나요?
데이터 볼륨과 데이터 밀도가 높은 웹 프로그램을 작성하는 경우 데이터베이스 액세스 요구 사항은 무엇입니까? JSP를 사용한다면 많은 서버측 데이터를 처리해야 합니다. 프로그램에는 많은 양의 데이터, 많은 사용자 또는 이 둘의 조합이 필요할 수 있습니다. 고려할 수 있는 영역으로는 성능 최적화, 감지 가능성, 사용자당 여러 쿼리의 영향, 쿼리 복잡성, 단일 세션에서 대량의 데이터를 처리할 때 높은 수준의 유형 변환 등이 있습니다.
여기에는 대규모 처리가 포함됩니다. 하지만 JSP는 JDBC(Java Database Connectivity API)와 잘 호환되므로 이를 잘 처리하는 데 도움이 될 수 있습니다. JSP 코드에 JDBC를 포함할 수 있으며 JDBC 드라이버를 올바르게 사용하는 한 JDBC는 명령문을 전달하여 데이터베이스와 유사한 명령을 실행할 수 있습니다.
시작
다음은 일반적인 추상 JSP 프로그램 실행 시스템입니다. 선호되는 JSP 디자인 패턴은 MVCModel-View-Controller(Model-View-Controller)이며, 이는 서버 프로그램에 더 적합하도록 전통적인 3계층 시스템의 변형입니다. JSP의 MVC 디자인 패턴에서 Model은 프로그램의 로직과 데이터, View는 보기, Controller는 요청 처리를 의미합니다.
JSP 프로그램을 디자인할 때 클라이언트와 서버 상호 작용 사이의 첫 번째 단계인 페이지를 만드는 것이 가장 좋습니다. 예를 들어 일반적인 프로그램에는 데이터 입력 페이지, 유효성 검사 요청 페이지, 데이터베이스 응답 페이지 및 이러한 페이지의 하위 페이지(변경 기록 페이지, 기록 삭제) 등 데이터 교환의 각 특정 단계에 대한 페이지가 있습니다. 페이지 등).
요청된 데이터베이스 작업을 완료하기 위해 모든 페이지에 JDBC를 포함할 수 있습니다. 하지만 이 작업 역시 SQL을 기반으로 하는 JDBC-JDBC와 JSP를 섞어서 프로그램 전체가 뒤섞여 있기 때문에 위험성도 크다. 이는 SQL이 JDBC에 캡슐화되어 있고, JDBC도 JSP에 캡슐화되어 있다는 것을 의미합니다. 이 정도면 어지러울 정도입니다. 이 접근 방식을 선택하면 원하는 기능을 얻을 수 있지만 프로그램 논리와 데이터베이스 액세스 코드 간의 관계가 매우 명확하도록 각별히 주의하십시오.
임베디드JDBC
JDBC API는 데이터베이스와 직접 통신하지 않습니다. 실제 연결은 드라이버에 의해 수행되며, 판매자 웹사이트에서 다운로드할 수 있습니다. 또한 JDBC 드라이버 유형에는 네 가지가 있습니다. JDBC를 사용하기로 결정한 경우 요구 사항에 가장 적합한 유형을 올바르게 선택해야 합니다. DriverManager 클래스를 사용하여 드라이버 기반 연결을 처리합니다.
getConnection이라는 DriverManager 메소드를 사용하여 데이터베이스 연결을 설정할 수 있습니다. URL 매개변수를 사용하여 데이터베이스를 식별할 수도 있습니다.
public static Connection getConnection(jdbc:odbc:nameOfDatabase)
이제 DriverManager에 드라이버에 대해 알려줍니다(클래스 경로에 있어야 함).
Class.forName("sun.jdbc.odbc.nameOfJDBCDriver ");
데이터베이스를 JSP 프로그램에 연결했지만 여전히 데이터베이스 명령을 실행할 수 없습니다. 이 문제를 해결하려면 JSP 코드로 명령문을 생성하여 다음과 같은 데이터베이스 명령을 설정할 수 있습니다.
public 명령문 createStatement(intresultSetType, intresultSetConcurrency)
매개변수를 사용하면 데이터베이스 쿼리에서 얻은 결과를 제어할 수 있습니다. 첫 번째 매개변수를 사용하면 프로그램에서 결과를 볼 수 있고, 두 번째 매개변수를 사용하면 쿼리를 통해 값을 업데이트할 수 있습니다(이는 향후 기사에서 추가 논의할 가치가 있는 놀라운 기능입니다).
표 A는 다음 두 가지 방법을 열거하는 복잡성을 보여줍니다.
명령문은 SQL 명령입니다. ReadyStatement는 SQL 문이며 해당 매개변수를 통해 프로그램 프로세스를 제어할 수 있습니다. CallableStatement는 SQL 저장 프로시저에 액세스하는 데 사용됩니다. 이 지침을 보지 않으면 이 명령문이 복잡하다는 것을 깨닫기 시작하셨나요? 롤백 메소드를 호출하면 트랜잭션 프로세스를 취소할 수 있으므로 주의하세요.
이러한 모든 데이터베이스 액세스 방법을 사용하려는 경우 누락된 유일한 것은
ResultSetexecuteQuery(string sqlQuery)
입니다.
(executeQuery를 사용하여 위 프로세스를 완료할 수 있습니다. 또한 ExecuteUpdate를 사용하여 업데이트, 삽입 및 삭제를 완료할 수도 있습니다.) 위의 선언 인터페이스를 사용하면 다양한 메서드를 사용하여 SQL 선언을 수행할 수 있습니다. ResultSet이 하는 일은 쿼리에서 얻은 데이터에 액세스하는 것이므로 JSP 프로그램에서 이 데이터를 사용할 수 있습니다.
JSP 프로그램을 기능적으로 명확한 단일 페이지로 나누고 특정 페이지에서 단일 데이터베이스 작업을 수행함으로써 데이터베이스 작업을 크게 단순화하고 이러한 페이지의 JDBC에 SQL을 포함하더라도 향후 프로그램 개발에 사용할 수 있는 페이지를 생성할 수 있습니다. .
그러나 JSP 데이터베이스 액세스를 더 깔끔하고 유지 관리하기 쉽게 만들기 위해 할 수 있는 일이 더 있습니다. JSP 코드에 JDBC를 포함시키고 SQL 명령을 보내 데이터베이스와 통신하는 것은 좋은 프로세스입니다. 그러나 코드의 복잡성을 증가시키지 않고 인터페이스를 통해 SQL 명령에 대한 프로그램을 구축해야 합니다. SQL 처리에 향상된 유연성이 필요한 경우 데이터베이스 인터페이스 코드를 추가로 분리하여 JSP 프로그램을 정리할 수 있습니다. 다음 기사에서는 이러한 프로세스를 구현하는 방법을 설명하겠습니다.