Java를 사용하여 SQL Server2000 데이터베이스에 연결하는 방법에는 여러 가지가 있습니다. 다음은 가장 일반적으로 사용되는 두 가지 방법입니다(JDBC 드라이버를 통해 데이터베이스에 연결).
1. Microsoft의 JDBC 드라이버를 통해 연결합니다. 이 JDBC 드라이버에는 mssqlserver.jar, msutil.jar 및 msbase.jar라는 세 가지 파일이 포함되어 있으며 Microsoft 웹사이트(://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502 -461A)에서 다운로드할 수 있습니다. -B138-2AA54BFDC03A&displaylang=en), setup.exe를 다운로드한 경우에도 설치해야 합니다. 설치 후 위의 3개 jar 파일이 생성됩니다. 이 JDBC 드라이버는 JDBC 2.0을 구현합니다.
드라이버 이름: com.microsoft.jdbc.sqlserver.SQLServerDriver(예: 아래 classforname)
데이터베이스 연결 URL: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname(예: 다음 URL)
2. JTDS JDBC 드라이버를 통해 SQL Server 데이터베이스에 연결합니다. 이 드라이버의 파일 이름은 jtds-1.2.jar이고 다운로드 경로는 ( http://sourceforge.net/project/showfiles.php?group_id=33291 ) 입니다. ) 이 드라이버는 Microsoft SQL Server(6.5, 7.0, 2000 및 2005) 및 Sybase를 지원하며 JDBC3.0 구현은 무료입니다.
드라이버 이름: net.sourceforge.jtds.jdbc.Driver(예: 아래 classfor 이름)
데이터베이스 연결 URL: jdbc:jtds:sqlserver://localhost:1433/dbname (즉, 다음 URL)
인터넷에서 SQL Server 데이터베이스에 연결하기 위한 JDBC용 Bean 코드가 많이 있습니다. 다음은 그 중 일부를 발췌한 것입니다. (localhost 및 1433을 실제 애플리케이션의 SQL Server 서버 주소 및 포트 번호로 변경하고 변경하십시오. dbname을 실제 데이터베이스 이름으로 변경)
import java.sql.*;
공개 클래스 DatabaseConn {
개인 연결 연결;
개인 성명 stmt;
개인 문자열 url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname";
private String classforname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
개인 문자열 uid = "sa";
개인 문자열 비밀번호 = "비밀번호";
공개 DatabaseConn(){}
/**
* <p>Microsoft JDBC 드라이버를 통해 데이터베이스 연결 얻기</p>
* @return 연결
* @Exception ClassNotFoundException, SQLException
*/
공용 연결 getConnection()
{
노력하다
{
Class.forName(클래스명);
if (conn == null || conn.isClosed())
conn = DriverManager.getConnection(url, uid, pwd);
}
잡기(ClassNotFoundException 예)
잡기(SQLException ex)
반환 연결;
}
}
물론, 위의 작업을 수행하기 전에 먼저 SQL Server 설정에 문제가 있는지 확인해야 합니다. 단계는 다음과 같습니다.
먼저 MS-Dos 창인 "명령줄 창"을 열고 다음을 입력합니다.
telnet localhost 1433 (물론 localhost를 SQL Server가 위치한 서버 주소로 바꾸고, 포트를 실제 SQL Server의 포트로 변경합니다. 기본값은 1433입니다.)
성공하면 SQL Server를 연결할 수 있다는 의미입니다. 실패할 경우(일반적으로 Win2003 또는 WinXP SP2의 경우) 제어판에 들어가서 "관리 도구"에서 "서비스"를 열고 "SQLSERVERAGENT" 서비스를 시작하십시오. 물론 SQL Server의 SP3 패치 패키지를 적용하고 위 작업을 계속하면 성공할 수도 있습니다.
둘째, 사용자 이름과 비밀번호가 SQL Server 서버에 로그인할 수 있는지 확인하십시오. 물론 가장 직접적인 방법은 SQL Server의 "쿼리 분석기"를 열고 사용자 이름과 비밀번호를 입력한 후 확인을 클릭하는 것입니다.
성공하면 SQL Server 로그인 설정이 정상이라는 의미입니다. 실패하면 SQL Server의 "엔터프라이즈 관리자"를 열고 등록한 SQL Server 서버(즉, "SQL Server 그룹" 아래에 있는 서버)로 이동하세요. 왼쪽 동동) 즉, 마우스 오른쪽 버튼을 클릭하고 "속성"을 선택한 후 "SQL Server(속성) 구성" 대화상자에서 "보안"을 선택하고 인증을 "SQL Server 및 Windows(S)"로 설정한 후 쿼리 분석을 사용하여 서버를 한 번 테스트해 보세요. 그래도 연결이 되지 않으면 사용자 이름과 비밀번호가 올바른지 확인하세요. 성공할 때까지 테스트를 반복합니다.
물론 JSP에서 Connection을 사용한다면 JDBC를 직접 사용하는 것 외에도 모두가 가장 관심을 가질 부분은 Connection Pool(Pool)입니다. 여기서는 Connection Pool의 여러 가지 용도에 대해 중점적으로 살펴보겠습니다.
편의상 먼저 JSP 컨테이너를 Tomcat으로 설정합니다. 모든 사람이 Tomcat을 더 많이 사용하기 때문입니다.
1. 전역 구성(Tomcat의 모든 웹 애플리케이션은 구성된 연결 풀을 사용할 수 있음): server.xml에서 연결 풀을 구성합니다. server.xml 파일은 $TOMCAT_HOME$/conf/ 디렉터리에 있습니다. GlobalNamingResources>를 선택하고 이 줄 앞에 다음 코드를 삽입하세요.
<자원
이름="jdbc/풀이름"
auth="컨테이너"
유형="javax.sql.DataSource"
최대활성="100"
maxIdle="30"
maxWait="10000"
사용자 이름="sa"
비밀번호="비밀번호"
드라이버클래스이름="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
참고: name은 연결 풀의 전체 전역 JNDI 이름이고, username은 데이터베이스 연결 사용자 이름과 비밀번호이며, driversClassName은 데이터베이스 드라이버 이름이고, url은 데이터베이스 연결 문자열입니다. 실제 구성에 따라 수정하십시오.
아직 구성이 완료되지 않았습니다. 다음으로 context.xml에 전역 액세스 이름을 설정해야 합니다.
</Context>를 찾아서 이 줄 앞에 다음 코드를 삽입하세요.
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
2. 부분 구성: $TOMCAT_HOME$/conf/Catalina/localhost/ 디렉터리에 새 xml 파일을 생성합니다. xml 파일은 게시하는 웹 애플리케이션 디렉터리와 동일한 이름을 가져야 합니다. webappname.xml인 경우 다음을 추가합니다. 콘텐츠(Tomcat 구성 외부 가상 디렉터리도 여기서 처리됩니다. 하!
<Context path="/webappname" docBase="d:/webappname" debug="0" reloadable="true" crossContext="true">
<자원
이름="jdbc/풀이름"
auth="컨테이너"
유형="javax.sql.DataSource"
최대활성="100"
maxIdle="30"
maxWait="10000"
사용자 이름="sa"
비밀번호="비밀번호"
드라이버클래스이름="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=dbname"/>
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
</컨텍스트>
처음 두 가지 메소드에 대해 연결 풀을 호출하는 코드는 다음과 같습니다. (com.yeno.util.Debug의 Debug.log() 메소드는 주로 디버깅 정보를 인쇄하는 데 사용되며 System.out.println으로 대체 가능합니다. ())
import java.sql.*;
import javax.sql.DataSource;
import javax.naming.*;
import com.yeno.util.Debug;
/**
* <p>데이터베이스 운영 관리 클래스는 데이터베이스 연결, 종료, 트랜잭션 처리만 구현합니다.</p>
* @Aurhor Yeno.hhr
* 작성일자 2005-12-9
*/
공개 클래스 DataPool {
공개 데이터풀(){}
/**
* <p>Tomcat 연결 풀을 통해 데이터베이스 연결 얻기</p>
* @param 아니요
* @return 연결 데이터베이스 연결
* @Exception NamingException,SQLException,Exception
*/
공용 연결 getConnect()
{
연결 연결 = null;
노력하다
{
컨텍스트 intitCtx = new InitialContext();
Context envCtx = (Context)intitCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/poolName");
conn = ds.getConnection();
}
catch(NamingException nex)
{
Debug.log(this,"getConnect()","올바른 환경이 없습니다!");
}
catch(SQLException sqlex)
{
Debug.log(this,"getConnect()","연결할 수 없습니다!");
}
반환 연결;
}
}
위 코드를 사용하기 전에 JDBC 드라이버의 관련 JAR 파일(Microsoft의 경우 mssqlserver.jar, msutil.jar 및 msbase.jar, JTDS의 경우 jtds-1.2.jar)이 올바르게 구성되었는지 확인해야 합니다. 관련 JAR 파일을 $TOMCAT_HOME $/common/lib/ 디렉터리에 복사하거나 $WEB_ROOT$/WEB-INF/lib/ 디렉터리에 복사할 수 있습니다.
또한 주입을 사용하여 연결 풀을 호출할 수 있습니다. 즉, Hibernate 구성 파일 hibernate.cfg.xml에서 호출할 수 있습니다. JSP 컨테이너에서 연결 풀을 구성한 후 Hibernate 구성 파일에서 시스템 연결 풀 설정을 호출합니다. 코드 발췌 내용은 다음과 같습니다.
<세션 팩토리>
<!--
<property name="jndi.class"></property>
<속성 이름="jndi.url"></property>
-->
<property name="connection.datasource">java:comp/env/jdbc/poolName</property>
<property name="show_sql">false</property>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
</세션 팩토리>
Hibernate의 구체적인 사용법에 대해서는 관련 세부 사항을 확인하십시오.