네트워크 관계형 데이터베이스 응용 시스템은 3단계 구조입니다. 클라이언트와 서버는 네트워크를 통해 연결된다. 클라이언트 응용프로그램은 통신 프로토콜에 따라 서버측 데이터베이스 프로그램과 통신한다. 데이터베이스 서비스 프로그램은 SQL 명령을 통해 데이터베이스 관리 시스템과 통신한다.
Java 프로그램을 데이터베이스에 연결하는 방법에는 두 가지가 있습니다. 하나는 JDBC-ODBC 브리지를 사용하여 데이터베이스에 연결하는 것이고, 다른 하나는 순수 Java JDBC 드라이버를 사용하여 데이터베이스에 연결하는 것입니다.
JDBC-ODBC 브리지를 사용하여 데이터베이스에 연결
Java 프로그램은 JDBC-ODBC 브리지를 사용하여 데이터베이스에 연결합니다. Java 프로그램과 데이터베이스 간의 통신 프로세스는 다음과 같습니다.
먼저, 데이터베이스 애플리케이션은 ODBC 드라이버 관리자에 대한 API 호출을 실행합니다. ODBC 드라이버 관리자는 이 호출을 데이터베이스 관리 시스템에 대한 ODBC 드라이버 호출로 변환합니다. 그러면 데이터베이스 관리 시스템은 이 호출을 운영 체제에 대한 데이터 입력/출력으로 변환합니다. 시스템. 마지막으로 운영 체제는 데이터베이스에서 실제 데이터를 가져와 단계별로 반환합니다.
데이터베이스 프로그래밍을 하려면 먼저 데이터 소스를 설정해야 합니다. ODBC에서 데이터 소스를 설정하는 단계는 다음과 같습니다.
Windows 제어판에서 관리 도구를 엽니다. Windows XP의 경우: "성능 유지 관리" >> "관리 도구" >> "데이터 소스(ODBC)"를 선택합니다. Windows 2000의 경우: "관리 도구" >> "데이터 소스"를 선택합니다.
"데이터 소스"를 엽니다. ODBC 데이터 소스 관리자 대화 상자가 나타나고 기존 데이터 소스 이름이 표시됩니다.
"사용자 DSN"을 선택하고 "추가" 버튼을 클릭하면 데이터 소스 드라이버 설치 대화 상자가 나타납니다. (*.mdb) 데이터소스에 접속하여 "마침" 버튼을 클릭하면 "데이터소스 생성" 대화상자가 나타나며 생성할 데이터소스의 이름을 입력하고 생성된 데이터소스에 대한 데이터베이스 테이블을 선택합니다.
데이터베이스 영역에서 "선택" 버튼을 클릭하고 필요한 데이터베이스 테이블을 선택합니다. 데이터 소스에 대한 액세스 수준을 승인해야 하는 경우 고급 버튼을 클릭하세요. 로그인 이름과 비밀번호를 설정한 후 "확인" 버튼을 클릭하면 ODBC 관리자에서 Access 데이터베이스 구성이 완료됩니다.
데이터베이스 테이블이 아직 존재하지 않으면 하나를 생성해야 합니다.
데이터 소스는 데이터베이스입니다. 데이터 소스를 설정한 후 Java 프로그램은 데이터베이스 테이블에 액세스하고 JDBC-ODBC 브리지를 설정하여 프로그램을 데이터베이스에 연결해야 합니다. 그런 다음 프로그램은 SQL 문을 데이터베이스로 보내고 데이터베이스에서 반환된 결과를 처리할 수 있습니다. Java 데이터베이스 연결 JDBC(Java DataBase Connectivity)는 Java 언어로 작성된 클래스와 인터페이스 집합으로 구성됩니다. JDBC는 Java 프로그램을 데이터베이스에 연결하기 위한 API입니다. 이는 데이터베이스와의 연결 설정, 데이터베이스에 SQL 문 보내기, 데이터베이스에서 반환된 결과 처리라는 세 가지 작업을 수행할 수 있습니다.
클래스 메서드 Class.forName(String s)을 호출하면 JDBC-ODBC 브리지를 설정할 수 있습니다. 예를 들어, 코드는 다음과 같습니다.
try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") }catch(Exception e){}
Java 프로그램용 드라이버가 로드됩니다.
[예제] 데이터베이스에 연결하는 connectByJdbcOdbc() 메서드를 설명합니다. 이 메서드는 연결에 성공하면 연결 객체를 반환합니다. 실패하면 비어 있는 상태로 반환됩니다.
공용 정적 연결 connectByjdbcOdbc(문자열 url, 문자열 사용자 이름, 문자열 비밀번호){ 연결 con = null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") //ODBC 드라이버 로드} catch(예외 e){ e .printStackTrace(); return null; //연결 실패} try{ con = DriverManager.getConnection(url, 사용자 이름, 비밀번호) } catch (SQLExceotuib e){ e.printStackTrace(); return null; //연결 실패} return con;
다음 코드는 connectByJdbcOdbc() 메소드를 호출하는 코드로, 데이터베이스 연결이 성공하면 데이터베이스 연결 성공 정보창이 팝업된다. 그렇지 않으면 실패한 데이터베이스 연결 정보창이 팝업된다.
if ((con = connectByJdbcOdbc("jdbc:odbc:redsun", "xia", "1234")) != null){ JoptionPane.showMessageDialog(null, "데이터베이스 연결 성공") try{ con.close(); con = null; } catch(SOLException e){}}else JOptionPane.showMessageDialog(null, "데이터베이스 연결 실패");
순수 Java JDBC 드라이버를 사용하여 데이터베이스에 연결
Java 프로그램은 순수 Java JDBC 드라이버를 사용하여 데이터베이스에 연결할 수도 있습니다. 이 방법은 널리 사용되지만, 서로 다른 데이터베이스의 연결 코드가 다를 수 있고, 서로 다른 데이터베이스에 연결할 때 로드된 드라이버도 다를 수 있기 때문에 해당 드라이버 패키지를 다운로드해야 합니다. 예를 들어 SQL Server에 연결하기 위한 드라이버는 www.msdn.com 웹사이트에서 다운로드합니다. msbase.jar, mssqlserver.jar, msutil.jar의 세 가지 패키지가 있으며 이 세 가지 패키지는 jdk/에 있어야 합니다. jre/lib/ext/ 디렉토리를 선택하거나 CLASSPATH에 위치를 설정하세요.
순수 Java JDBC 드라이버를 사용하여 데이터베이스에 연결하는 프로세스는 다음과 같습니다.
드라이버를 로드합니다. 드라이버를 로드하는 방법에는 두 가지가 있습니다.
하나는 java.lang.System의 jdbc.drivers 속성에 드라이버를 추가하는 것입니다. 이는 DriverManager 클래스에 의해 로드된 드라이버 클래스 이름 목록이며 콜론으로 구분됩니다.
또 다른 방법은 해당 웹사이트에서 드라이버를 다운로드한 후 Class.forName() 메소드를 이용하여 프로그램에서 지정된 드라이버를 로드하는 방법입니다. 예를 들어:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
지정된 데이터베이스에 대한 URL을 생성합니다. 데이터베이스의 URL 개체는 네트워크의 URL 개체와 유사하며 형식은 다음과 같습니다.
jdbc:subProtocol:subName://호스트 이름:포트:데이터베이스 이름=XXX
그중 하위 프로토콜은 특정 드라이버가 지원하는 데이터베이스 연결 메커니즘입니다. subName은 현재 연결 메커니즘의 특정 이름이고, port는 해당 연결 포트입니다. 예를 들어 다음 코드는 데이터베이스 URL일 수 있습니다.
jdbc:Microsoft:sqlserver://localhost:1433;데이터베이스 이름=ksinfo
데이터베이스의 URL 설명은 Miscrosoft에서 제공하는 메커니즘을 사용하고 sqlserve 드라이버를 사용하여 포트 1433을 통해 로컬 시스템의 ksInfo 데이터베이스에 액세스합니다.
연결을 설정합니다. DriverManager의 getConnection() 메소드가 연결을 설정합니다.
[예제] 데이터베이스에 연결하는 정적 메소드 connectByJdbc()를 설명합니다. 이 메소드는 지정된 데이터베이스 URL, 사용자 이름 및 비밀번호에 따라 연결에 성공하면 true를 리턴합니다. , false를 반환합니다.
public static Connection conectByJdbc(String url, String username, String Password){ Connection con = null; try{ Class.forName( //특정 드라이버 "com.microsoft.jdbc.sqlserver.SQLServerDriver" 로드 } catch(예외 e ){ e.printStackTrace(); return null; //연결 실패} try{ con = DriverManage.getConnection(url, 사용자 이름, 비밀번호) } catch (SQLException e){ e.printStackTrace(); return null; //연결 실패} return con;