현재 위치 - 법률 상담 무료 플랫폼 - 특허 조회 - SQL server 2000 과 높은 Java 연결 상세 단계
SQL server 2000 과 높은 Java 연결 상세 단계
한번 해 보세요.

JSP 를 사용하여 Oracle, SQL Server, DB2, Informix 및 Access 데이터베이스에 액세스합니다.

2007- 1- 13

JSP 를 사용하여 Oracle, SQL Server, DB2, Informix 및 Access 데이터베이스에 액세스합니다.

요즘 많은 JSP 초보자들이 데이터베이스 연결 방법을 자주 묻는데, 왜 자꾸 오류가 나나요? 그래서 저는 여러분이 참고할 수 있도록 여기에 문장 한 편을 집중적으로 썼습니다. 실제로 모든 데이터베이스 논리를 JSP 에 넣는 것이 반드시 좋은 방법은 아니지만 초보자의 학습에 좋기 때문에 그렇게 했습니다. 어느 정도 배우면 MVC 모델로 개발하는 것을 고려해 볼 수 있다. 이러한 코드를 연습할 때는 서버의 클래스 경로에 JDBC 드라이버를 넣은 다음 데이터베이스에 테스트1및 테스트 2 와 같은 두 개의 필드가 있는 테이블 테스트로 설정해야 합니다. 다음 SQL 을 사용하여 create table test (test1varchar (20) 및 Test2Varchar (20)) 를 구축한 다음 이 테이블에 테스트 레코드를 기록하면 지금 시작할 수 있습니다

1.jsp 는 Oracle8/8i/9i 데이터베이스에 연결됩니다 (씬 모드).

Testoracle.jsp 는 다음과 같습니다.

<% @ pagecontenttype = "text/html; Charset=gb23 12"% >

< %@ page import="java.sql.*"% >

< html >

<% class.forname ("oracle.jdbc.driver.oracledriver"). New instance ();

String URL = "JDBC: Oracle: thin: @ localhost:1521:orcl";

//orcl 은 데이터베이스의 SID 입니다.

String user = "Scott

String password = "tiger

Connectionconn = drivermanager.getconnection (URL, user, password);

문 stmt = conn.createstatement (resultset). TYPE_SCROLL_SENSITIVE, ResultSet 입니다. CONCUR _ 업데이트 가능);

String SQL = "select * from test

Resultset RS = stmt.executequery (SQL);

While(rs.next()) {% >

첫 번째 필드는 다음과 같습니다.

두 번째 필드는 다음과 같습니다.

<% rs.close ();

Stmt.close ();

Conn.close ();

% >

둘째, JSP 는 Sql Server7.0/2000 데이터베이스에 연결됩니다

Testsqlserver.jsp 는 다음과 같습니다.

<% @ pagecontenttype = "text/html; Charset=gb23 12"% >

< %@ page import="java.sql.*"% >

< html >

<% class.forname ("com.microsoft.jdbc.sqlserver.sqlserverdriver"). New instance ();

String URL = "JDBC: Microsoft: SQL server://localhost:1433; DatabaseName = pubs ";;

//데이터베이스의 pubs

String user = "sa

문자열 암호 = "";

Connectionconn = drivermanager.getconnection (URL, user, password);

문 stmt = conn.createstatement (resultset). TYPE_SCROLL_SENSITIVE, ResultSet 입니다. CONCUR _ 업데이트 가능);

String SQL = "select * from test

Resultset RS = stmt.executequery (SQL);

While(rs.next()) {% >

첫 번째 필드는 다음과 같습니다.

두 번째 필드는 다음과 같습니다.

<% rs.close ();

Stmt.close ();

Conn.close ();

% >

셋째, JSP 는 DB2 데이터베이스에 연결합니다.

Testdb2.jsp 는 다음과 같습니다.

<% @ pagecontenttype = "text/html; Charset=gb23 12"% >

< %@ page import="java.sql.*"% >

< html >

<% class.forname ("com.ibm.db2.jdbc.app.db2driver"). New instance ();

String URL = "JDBC: DB2://localhost: 5000/sample";

//sample 은 데이터베이스의 이름입니다.

문자열 user = "admin

문자열 암호 = "";

Connectionconn = drivermanager.getconnection (URL, user, password);

문 stmt = conn.createstatement (resultset). 유형 _ 롤링 _ 민감성,

결과 세트. CONCUR _ 업데이트 가능);

String SQL = "select * from test

Resultset RS = stmt.executequery (SQL);

While(rs.next()) {% >

첫 번째 필드는 다음과 같습니다.

두 번째 필드는 다음과 같습니다.

<% rs.close ();

Stmt.close ();

Conn.close ();

% >

넷째, JSP 는 Informix 데이터베이스에 연결합니다

Testinformix.jsp 는 다음과 같습니다.

<% @ pagecontenttype = "text/html; Charset=gb23 12"% >

< %@ page import="java.sql.*"% >

< html >

<% class.forname ("com.informix.jdbc.ifxdriver"). New instance ();

문자열 URL =

"JDBC: Informix-sqli://123.45.67.89:1533/testdb: Informix

User = testuser 암호 = 테스트 암호 ";

//testDB 는 데이터베이스의 이름입니다.

Connectionconn = 드라이버 관리자. getconnection (URL);

문 stmt = conn.createstatement (resultset). TYPE_SCROLL_SENSITIVE, ResultSet 입니다. CONCUR _ 업데이트 가능);

String SQL = "select * from test

Resultset RS = stmt.executequery (SQL);

While(rs.next()) {% >

첫 번째 필드는 다음과 같습니다.

두 번째 필드는 다음과 같습니다.

<% rs.close ();

Stmt.close ();

Conn.close ();

% >

다섯째, JSP 연결 액세스 데이터베이스

< %@page import="java.sql.* "

Import ="java.util.* "

Import ="java.io.* "

Import="java.text.* "

컨텐트 유형 = "텍스트/html; Charset=gb23 12 "

Buffer="20kb "

% >

(24) 개의 의견 (0) 보기

최대 절전 모드 빠른 시작

2006-11-10

사실 Hibernate 자체는 웹 서버나 응용 프로그램 서버의 지원이 필요하지 않은 독립적인 프레임워크입니다. 그러나 대부분의 Hibernate 시작 소개에는 Tomcat, Eclipse, Log4j, Struts, XDoclet, JBoss 등 Hibernate 가 아닌 많은 것들이 포함되어 있습니다. 이로 인해 Hibernate 에 대한 복잡한 오해, 특히 초보자의 적극성을 꺾을 수 있다.

Eclipse, log4j, struts, Tomcat, XDoclet 및 JBoss 는 이 문서에서 다루지 않습니다. 이 문서의 목적은 Hibernate 의 설치 과정과 가장 기본적인 기능을 시연하여 초보자에게 매우 낮은 입문 임계값을 제공하는 것입니다.

파일을 다운로드합니다

Java SDK, Hibernate 가방, Ant 가방, JDBC 드라이버가 필요합니다.

1, Hibernate 패키지 다운로드 주소:

/소프트웨어/h ... tdocs/jdbc9201.html

MySQL JDBC 드라이버 다운로드 주소

/downloads/connector/j/3.0.html

PostgreSQL JDBC 드라이버 다운로드 주소

/downloa...bf7 1. Displaylang=en

4. Hibernate 패키지와 Ant 패키지의 압축을 c:dev 에 풉니다 (이 디렉토리는 중요하지 않으므로 다른 디렉토리로 바꿀 수 있음).

환경을 구성합니다

1, c: dev 를 가리키도록 새 환경 변수 ANT_HOME 을 추가해야 합니다 % ANT _ HOME% 을 PATH 환경 변수에 추가합니다.

2. j2sdk 루트 디렉토리를 가리키는 새 환경 변수 JAVA_HOME 을 추가해야 합니다. % JAVA _ HOME% 을 PATH 환경 변수에 추가합니다.

3. 프로젝트를 생성하시겠습니까? 디렉토리 (예: c: workspace my1shibernate) 입니다.

프로젝트 디렉토리 아래에 src, classes 및 lib 라는 세 개의 추가 디렉토리를 작성합니다.

Lib 디렉토리 아래에 hibernate 와 db 라는 두 개의 디렉토리를 만듭니다.

따라서 다음과 같은 파일 구조가 있습니다.

C: 작업 공간 my 1s 섬유

C: 작업공간 My 1stHibernatesrc

C: 작업 공간 My 1stHibernateclasses

C: 작업공간 My 1stHibernatelib

C: 작업 공간 my 1 sthibernate

C: 작업공간 My 1stHibernatelibdb

4, C: dev hibernate2.jar 파일을 C: Workspace My 1 hibernate 로 복사합니다.

Under lib 아래의 모든 파일도 C: Workspace My 1 hibernate 로 복사됩니다.

JDBC 드라이버 파일 (일반적으로 jar 파일) 을 c: workspace my1hibernatelibdb 에 복사합니다.

데이터베이스를 생성합니다

1. 좋아하는 데이터베이스 소프트웨어를 사용하여 hibernate_test 에 대한 데이터베이스를 만듭니다.

2. 이 데이터베이스 아래에 고객이라는 신규 테이블을 생성합니다.

테이블 고객 생성

(참조)

CID 정수 null 키가 아님, 사용자 이름 VARCHAR( 12) null 아님, 암호 VARCHAR( 12)

);

Java 파일 작성

공용 클래스 고객 {

Private int id

개인 문자열 사용자 이름

개인 문자열 암호

공용 intgetid () {

Id 를 반환합니다

}

공용 문자열 getPassword() {

비밀번호를 반환합니다.

}

공용 문자열 getUsername() {

사용자 이름을 반환합니다

}

공용 voidsetid (intid) {

This.id = id

}

Public void setPassword (문자열 암호) {

This.password = 암호;

}

Public void setUsername (문자열 사용자 이름) {

This.username = 사용자 이름;

}

}

클래스를 c: workspace my1shibernatesrccustomer.java 파일로 저장합니다.

테스트 클래스 작성

Net.sf.hibernate. *;

Net.sf.hibernate.cfg 를 가져옵니다. *;

공용 클래스 테스트 {

공용 정적 void main(String[] args) {

시도 {

SessionFactory SF = 새 배치 (). 구성 (). Buildsessionfactory ();

Sessionsession = sf.opensession ();

Transactiontx = session.begintransaction ();

For(int I = 0;; 나 & lt200; I++) {

고객 고객 고객 = 신규 고객 ();

사용자 정의? Mer.setusername ("고객"+I);

Customer.setPassword ("고객");

Session.save (고객);

}

Tx.commit ();

Session.close ();

} catch (HibernateException e) {

E. printstacktrace ();

}

}

}

클래스를 c: workspace my1shibernatesrctest.java 파일로 저장합니다.

Hibernate 맵 파일 만들기

클래스-CUSTOMER 와 테이블-CUSTOMER 가 하나뿐이므로 Customer 클래스와 Customer 테이블 간의 관계에 해당하는 매핑 파일-Customer.hbm.xml 을 하나만 만들면 됩니다.

& ltxml version=" 1.0 "? & gt

& ltDOCTYPE hibernate- 맵 공용

"-//휴면/휴면 매핑 DTD//EN"

소스 파일 스택>

& lt avac classpath ref = "myclasspath" srcdir = "$ {src.dir}" destdir = "$ {build.dir}" "

& ltopy todir = "$ {build.dir}">

& ltileset dir = "$ {src.dir}">

-응? & ltxclude name="**/*. 자바 "/>;

& lt 파일 세트>

& lt 복사>

& lt 대상>

& l target name = "run" depends = "build" >

& lt ava classpath ref = "myclasspath" classname = "test" fork = "true"/>

& lt 대상>

& ltarget name="clean ">

& l telete includeemptydirs = "true" >

& ltilesetdir = "$ {build.dir}"/>

& lt 삭제>

& lt 대상>

& lt 프로젝트 & gt

최대 절전 모드 프로파일 구성

Hibernate 프로파일은 속성 또는 XML 파일일 수 있으며 가장 중요한 것은 데이터베이스에 대한 연결을 정의하는 것입니다. 여기에 나열된 것은 XML 형식의 hibernate.cfg.xml 에 대한 설명 파일입니다.

& ltxml 버전 =" 1.0 "인코딩 ="utf-8"? & gt

& ltDOCTYPE 최대 절전 모드-구성

PUBLIC "-// 휴면/휴면 구성 DTD//EN "

"그리고 이베이). 그러나 웹의 강력함, 대기, 서버 응답 대기, 화면 새로 고침 대기, 요청 반환 및 새 페이지 생성 대기 등이 있습니다.

분명히, 이것은 지나치게 단순화된 표현이지만, 이것은 기본 개념이다. 이미 짐작했듯이 Ajax 는 데스크톱 응용 프로그램과 지속적으로 업데이트되는 웹 응용 프로그램의 기능과 상호 작용 사이에 다리를 놓으려고 합니다. 데스크톱 응용 프로그램에서 흔히 볼 수 있는 동적 사용자 인터페이스와 아름다운 컨트롤을 사용할 수 있지만 웹 응용 프로그램에서는 사용할 수 있습니다.

당신은 무엇을 기다리고 있습니까? Ajax 가 어떻게 서투른 웹 인터페이스를 반응이 빠른 Ajax 어플리케이션으로 바꾸는지 살펴보겠습니다.

낡은 기술, 새로운 기술

Ajax 에 대해 말하자면, 사실 많은 기술이 관련되어 있다. 이를 유연하게 사용하려면 이러한 다양한 기술에 대해 깊이 이해해야 합니다 (이 시리즈의 처음 몇 편의 문장 중 이러한 기술에 대해 별도로 논의할 예정). 좋은 소식은 이러한 기술의 대부분을 잘 알고 계실 수 있다는 것입니다. 더 좋은 것은 이러한 기술이 배우기 쉽고 Java 나 Ruby 와 같은 완전한 프로그래밍 언어만큼 어렵지 않다는 것입니다.

Ajax 의 정의

아약스는 비동기 자바스크립트와 XML (DHTML 등) 의 약어입니다. ). 이 문구는 Adaptive Path 의 Jesse James Garrett 가 발명한 것이다 (참고 자료 참조). 제시의 설명에 따르면, 그것은 이니셜이 아니다.

다음은 Ajax 응용 프로그램에서 사용하는 기본 기술입니다.

HTML 은 웹 양식을 작성하고 응용 프로그램의 다른 부분에서 사용되는 필드를 결정하는 데 사용됩니다.

JavaScript 코드는 Ajax 응용 프로그램을 실행하는 핵심 코드이며 서버 응용 프로그램과의 통신을 향상시키는 데 도움이 됩니다.

양식을 동적으로 업데이트하는 DHTML 또는 동적 HTML. Div, span 등의 동적 HTML 요소를 사용하여 HTML 에 태그를 지정하겠습니다.

문서 객체 모델 DOM 은 HTML 구조 및 경우에 따라 서버에서 반환된 XML (JavaScript 코드 사용) 을 처리하는 데 사용됩니다.

이제 이러한 기술의 책임을 좀 더 분석해 보겠습니다. 나는 앞으로의 문장 중에 이 기술들을 심도 있게 토론할 것이다. 현재 저는 이러한 구성 요소와 기술에 익숙해지기만 하면 됩니다. 이러한 코드에 익숙해질수록 이러한 기술에 대한 단편적인 이해에서 이러한 기술에 대한 진정한 파악으로 쉽게 전환될 수 있습니다 (웹 애플리케이션 개발의 문을 열어줍니다).

XMLHttpRequest 객체

알고 싶은 객체 중 하나는 당신에게 가장 낯선 객체인 XMLHttpRequest 일 수 있습니다. 이것은 JavaScript 객체이며 1 인벤토리와 같이 쉽게 만들 수 있습니다.

목록 1. 새 XMLHttpRequest 객체 만들기

& lt 스크립팅 언어 = "JavaScript" type = "text/JavaScript" >

Var xmlhttp = new xmlhttprequest ();

& lt/스크립트 >

다음 문장 중 이 대상에 대해 더 자세히 설명하겠습니다. 이제 모든 서버 통신을 처리하는 대상이라는 것을 알아야 합니다. 독서를 계속하기 전에 JavaScript 기술은 XMLHttpRequest 개체를 통해 서버와 대화하는 데 사용된다는 점을 잠시 생각해 보십시오. 이것은 일반적인 응용 프로그램 프로세스가 아니며, 이것이 바로 Ajax 의 강력한 기능의 원천이다.

일반적인 웹 응용 프로그램에서는 사용자가 양식 필드를 채우고 Submit 버튼을 클릭합니다. 그런 다음 전체 양식을 서버로 보내고 서버는 양식을 처리하는 스크립트 (일반적으로 PHP 또는 Java, CGI 프로세스 또는 이와 유사한 것 포함) 로 양식을 전달한 다음 스크립트가 실행된 후 새 페이지로 다시 보냅니다. 이 페이지는 일부 데이터가 채워진 새 양식, 확인 페이지 또는 원본 양식에 입력된 데이터를 기반으로 일부 옵션이 선택된 HTML 일 수 있습니다. 물론 사용자는 서버에서 스크립트나 프로그램이 처리되고 새 양식이 반환될 때까지 기다려야 합니다. 화면이 비어 있고 서버가 데이터를 반환하면 다시 그려집니다. 이것이 바로 상호 작용이 좋지 않은 이유이다. 사용자들은 즉각적인 피드백을 받지 못해 데스크톱 애플리케이션과는 다른 느낌이 든다.

Ajax 는 기본적으로 JavaScript 기술과 XMLHttpRequest 객체를 웹 양식과 서버 사이에 배치합니다. 사용자가 양식을 작성하면 데이터가 서버로 직접 전송되지 않고 일부 자바스크립트 코드로 전송됩니다. 대신 자바스크립트 코드는 양식 데이터를 캡처하여 서버에 요청을 보냅니다. 또한 사용자 화면의 양식이 깜박이거나 사라지거나 지연되지 않습니다. 즉, JavaScript 코드는 백그라운드에서 요청을 보내는데, 사용자는 요청이 이미 실행되었다는 사실조차 알지 못합니다. 더 좋은 것은 요청이 비동기적으로 전송된다는 것입니다. 즉, JavaScript 코드 (및 사용자) 는 서버의 응답을 기다릴 필요가 없습니다. 따라서 사용자는 계속해서 데이터를 입력하고, 화면을 스크롤하고, 응용 프로그램을 사용할 수 있습니다.

그런 다음 서버는 JavaScript 코드 (여전히 웹 형식) 에 데이터를 반환하며 JavaScript 코드에 따라 데이터 처리 방법이 결정됩니다. 양식 데이터를 빠르게 업데이트할 수 있어 응용 프로그램이 즉시 완료되는 것처럼 보이고 양식이 제출되거나 새로 고쳐지지 않아 사용자가 새 데이터를 얻을 수 있습니다. 자바스크립트 코드는 수신된 데이터에 대해 일부 계산을 수행한 다음 사용자 개입 없이 다른 요청을 보낼 수도 있습니다! 이것이 XMLHttpRequest 의 강점입니다. 필요에 따라 서버와 상호 작용할 수 있으며, 사용자는 배후에서 무슨 일이 일어나고 있는지 전혀 알 수 없습니다. 그 결과 데스크탑 어플리케이션의 동적, 빠른 응답 및 고도의 상호 작용 경험과 비슷하지만 그 뒤에는 인터넷의 모든 강력한 힘이 있습니다.

일부 자바스크립트 추가

XMLHttpRequest 의 핸들을 받으면 다른 JavaScript 코드는 간단합니다. 실제로 JavaScript 코드를 사용하여 매우 기본적인 작업을 수행합니다.

양식 데이터 가져오기: 자바스크립트 코드는 HTML 양식에서 데이터를 쉽게 추출하여 서버에 보낼 수 있습니다.

양식의 데이터 수정: 필드 값 설정에서 빠른 이미지 대체에 이르기까지 양식 업데이트도 간단합니다.

HTML 및 XML 구문 분석: JavaScript 코드를 사용하여 DOM (다음 섹션 참조) 을 조작하고 HTML 양식 서버에서 반환된 XML 데이터의 구조를 처리합니다.

처음 두 점의 경우 목록 2 에서와 같이 getElementById () 메서드에 대해 잘 알고 있어야 합니다.

목록 2. JavaScript 코드를 사용하여 필드 값 캡처 및 설정

//"전화" 필드의 값을 가져와서 phone 이라는 변수에 채웁니다

Var phone = document.getelementbyid ("phone"). 가치;

//response 라는 배열을 사용하여 양식에 일부 값을 설정합니다

Document.getElementById("order ") 입니다. 값 = 응답 [0];

Document.getelementbyid ("address") 입니다. 값 = 응답 [1];

여기에는 특별히 주의할 것이 없다. 훌륭해요! 너는 여기에 매우 복잡한 것이 없다는 것을 깨달아야 한다. XMLHttpRequest 만 익히면 Ajax 응용 프로그램의 나머지 부분은 간단한 JavaScript 코드입니다. 체크리스트 2 에 나와 있듯이 소량의 HTML 이 혼합되어 있습니다. 동시에, 우리는 약간의 DOM 을 사용해야 한다, 그래서 한번 보자.

DOM 으로 끝나다

마지막으로 DOM, 문서 객체 모델입니다. DOM 은 일부 독자들에게 좀 무서울 수 있으며, HTML 디자이너는 그것을 거의 사용하지 않는다. 심지어 JavaScript 프로그래머조차도 고급 프로그래밍 임무를 완수하고 싶어하지 않는 한 별로 사용하지 않는다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 예술명언) DOM 은 복잡한 Java 와 C/C++ 프로그램에 널리 사용되고 있는데, 이것이 DOM 이 배우기 어려운 원인으로 여겨지는 이유일 수 있다.

다행히도 JavaScript 기술에서 DOM 을 사용하는 것은 간단하고 직관적입니다. 이제 규칙으로서 DOM 사용 방법을 설명하거나 적어도 몇 가지 예제 코드를 제공해야 할 수도 있지만, 이로 인해 오도될 수도 있습니다. DOM 을 무시하더라도 Ajax 를 깊이 탐구할 수 있습니다. 이것이 제가 도입할 수 있는 방법입니다. DOM 은 향후 문장 중에 다시 토론할 것이다. 이제 DOM 이 필요할 수도 있다는 것만 알면 됩니다. JavaScript 코드와 서버 간에 XML 을 전송하고 HTML 형식을 변경해야 할 때 DOM 을 더 자세히 살펴보겠습니다. 그것 없이도 재미있는 일을 할 수 있으니, 지금 먼저 DOM 을 한쪽에 놓아라.

맨 위로 돌아가다

요청 객체 가져오기

위의 기초지식을 가지고, 우리는 다시 몇 가지 구체적인 예를 살펴 보겠습니다. XMLHttpRequest 는 Ajax 응용 프로그램의 핵심이며 많은 독자들이 낯설을 수 있습니다. 여기서 시작합시다. 체크리스트 1 에서 볼 수 있듯이 이 개체를 만들고 사용하는 것은 매우 간단합니다. 그렇지 않습니까? 잠깐만요.

몇 년 전 그 얄미운 브라우저 전쟁을 기억하시나요? 서로 다른 브라우저에서 같은 결과를 얻지 못했다. 믿거 나 말거나, 이 전쟁은 여전히 ​​계속되고 있습니다. 그런데 이상하게도 XMLHttpRequest 는 이 전쟁의 피해자 중 하나가 되었다. 따라서 XMLHttpRequest 객체를 가져오는 데 다른 메서드가 필요할 수 있습니다. 아래에서 자세히 설명하겠습니다.

Micr 사용