JDBC 가 데이터베이스에 접속하는 방법에 대해 이야기하십시오.
JDBC 를 데이터베이스 1 에 연결하는 방법 ? 다양한 데이터베이스에 연결하는 빠른 조회 테이블입니다.
다음은 설명서로 사용할 수 있는 다양한 데이터베이스가 JDBC 연결을 사용하는 방법입니다.
1, Oracle8/8i/9i 데이터베이스 (씬 모드)
Class.forname ("oracle.jdbc.driver.oracledriver"). New instance ();
String URL = "JDBC racle: thin localhost:1521rcl"; //orcl 은 데이터베이스의 SID 입니다.
Stringuser = "테스트
Stringpassword = "테스트
Connectionconn = drivermanager.getconnection (URL, user, password);
2.DB2 데이터베이스
Class.forname ("com.ibm.db2.jdbc.app.db2driver"). New instance ();
String URL = "JDBC: DB2://localhost: 5000/sample"; //sample 은 데이터베이스의 이름입니다.
Stringuser = "admin
Stringpassword =
Connectionconn = drivermanager.getconnection (URL, user, password);
3.SqlServer7.0/2000 데이터베이스
Class.forname ("com.microsoft.jdbc.sqlserver.sqlserverdriver"). New instance ();
String URL = "JDBC: Microsoft: SQL server://localhost:1433; DatabaseName = mydb ";;
//mydb 는 데이터베이스입니다.
Stringuser = "sa
Stringpassword =
Connectionconn = drivermanager.getconnection (URL, user, password);
4.Sybase 데이터베이스
Class.forname ("com.sybase.jdbc.sybdriver"). New instance ();
문자열 URL = "JDBC: Sybase: TDS: localhost: 5007/mydb"; //myDB 는 데이터베이스의 이름입니다.
Propertiessysprops = system.getproperties ();
SysProps.put("user ","userid ");
SysProps.put("password ","user _ password ");
Connectionconn = drivermanager.getconnection (URL, sysprops);
5.Informix 데이터베이스
Class.forname ("com.informix.jdbc.ifxdriver"). New instance ();
String URL = "JDBC: Informix-sqli://123.45.67.89:1533/;
User = testuser 암호 = 테스트 암호 "; //myDB 는 데이터베이스 이름입니다.
Connectionconn = 드라이버 관리자. getconnection (URL);
6.MySQL 데이터베이스
Class.forname ("org.gjt.mm.mysql.driver"). New instance ();
String URL = "JDBC: MySQL://localhost/mydb? 사용자 = 소프트웨어 & amp 비밀번호 = soft1234 & Use unicode = true & ampcharacterencoding = 8859 _1"
//myDB 는 데이터베이스 이름입니다.
Connectionconn = 드라이버 관리자. getconnection (URL);
7.PostgreSQL 데이터베이스
Class.forname ("org.postgresql.driver"). New instance ();
Stringurl = "JDBC: PostgreSQL://localhost/mydb"//mydb 는 데이터베이스 이름입니다.
Stringuser = "내 사용자
Stringpassword = "mypassword
Connectionconn = drivermanager.getconnection (URL, user, password);
8, ODBC 를 사용하여 access 데이터베이스에 직접 연결합니다.
Class.forname ("sun.jdbc.odbc.jdbc odbc driver");
Stringurl = "jdbcdbcriver = {Microsoft accessdriver (*). Mdb)}; Dbq = "+application.getrealpath ("/data/reportdemo.mdb ");
Connectionconn = drivermanager.getconnection (URL, "",","");
Statementstmtnew = conn.createstatement ();
JDBC 를 데이터베이스 2 에 연결하려면 어떻게 해야 합니까? JDBC 를 MySql 에 연결하려면 어떻게 해야 합니까?
다음은 JDBC 를 사용하여 MySql 에 연결하는 작은 자습서입니다.
1, 운전자 찾기
MySQL 이 현재 제공하는 Java 드라이버는 연결/J 이며, MySQL 홈페이지에서 다운로드할 수 있으며, MySQL-커넥터-Java-3.0.15-GA-를 찾을 수 있습니다. 이 드라이버는 순수한 Java 드라이버이므로 다른 구성은 필요하지 않습니다.
2. 클래스 경로를 동적으로 지정합니다.
런타임 시 클래스 경로를 동적으로 지정해야 하는 경우 런타임 시 -CP 모드를 사용합니다. 그렇지 않으면 위 내용을 추가합니다. Jar 파일이 classpath 환경 변수에 추가됩니다.
3. 드라이버를 로드합니다
시도 {
Class.forname (com.mysql.jdbc.driver);
System.out.println (successloadingmysql driver! );
}catch (예외)
{
System.out.println (errorloadingmysql 드라이버! );
E. printstacktrace ();
}
4. 연결의 URL 을 설정합니다.
Jdbc: MySQL://localhost/databasename [? Pa=va][&pa=va]
JDBC 를 데이터베이스에 연결하려면 어떻게 해야 합니까? 다음은 JDBC 를 사용하여 Oracle 데이터베이스에 접속할 때 사용할 수 있는 몇 가지 팁입니다.
1. 클라이언트 소프트웨어 개발에 씬 드라이버 사용
Java 소프트웨어 개발을 위해 Oracle 데이터베이스는 애플리케이션, 애플리케이션, 서블릿 등의 클라이언트 소프트웨어 및 데이터베이스의 Java 저장 프로 시저와 같은 서버 소프트웨어 등 네 가지 유형의 드라이버를 제공합니다. 클라이언트 소프트웨어 개발에서 OCI 드라이버나 씬 드라이브를 선택할 수 있습니다. OCI 드라이버는 JNI (Java 현지화 인터페이스) 를 사용하여 Oracle 클라이언트 소프트웨어를 통해 데이터베이스와 통신합니다. 씬 드라이버는 순수 Java 드라이버로 데이터베이스와 직접 통신합니다. 최상의 성능을 위해 클라이언트 소프트웨어 개발에 OCI 드라이버를 사용하는 것이 좋습니다. 그러나 여러 번의 테스트를 통해 정상적인 상황에서 씬 드라이브의 성능이 OCI 드라이버보다 우수하기 때문에 씬 드라이브를 사용하는 것이 좋습니다.
2. 자동 커밋 기능을 꺼서 시스템 성능을 향상시킵니다.
데이터베이스에 처음 연결할 때 연결은 기본적으로 자동 커밋 모드에 있습니다. 성능 향상을 위해 다음과 같이 부울 false 매개 변수를 사용하여 Connection 클래스의 setAutoCommit () 메서드를 호출하여 자동 커밋 기능을 해제할 수 있습니다.
Conn.set 자동 commit (false);
자동 커밋 기능이 꺼지면 접속 클래스의 commit () 및 rollback () 메서드를 호출하여 트랜잭션을 수동으로 관리해야 합니다.
3. 동적 SQL 또는 시간 제한 명령에 명령문 객체를 사용합니다.
SQL 명령을 실행할 때 PreparedStatement 객체 또는 Statement 객체를 사용할 수 있는 두 가지 옵션이 있습니다. PreparedStatement 는 동일한 SQL 명령이 사용되는 횟수에 관계없이 한 번만 구문 분석하고 컴파일합니다. Statement 객체를 사용하면 SQL 명령을 실행할 때마다 구문 분석 및 컴파일됩니다. 이로 인해 PreparedStatement 객체를 사용하는 것이 Statement 객체를 사용하는 것보다 빠르다고 느낄 수 있습니다. 그러나 내 테스트에 따르면 클라이언트 소프트웨어에서는 그렇지 않습니다. 따라서 시간 제한이 있는 SQL 작업에서는 SQL 명령을 일괄 처리하지 않는 한 Statement 객체 사용을 고려해야 합니다.
또한 명령문 객체를 사용하면 문자열을 연결하여 유효한 SQL 명령을 만들 수 있으므로 동적 SQL 명령을 쉽게 작성할 수 있습니다. 따라서 명령문 객체를 사용하면 동적 SQL 명령을 쉽게 작성하고 실행할 수 있다고 생각합니다.
4. helper 함수를 사용하여 동적 SQL 명령을 포맷합니다.
명령문 객체를 사용하여 실행되는 동적 SQL 명령을 만들 때 몇 가지 형식 문제를 처리해야 합니다. 예를 들어, O'Reilly 의 이름을 테이블에 삽입하는 SQL 명령을 만들려면 O'Reilly 의'' 기호를 두 개의 연속'' 기호로 바꿔야 합니다. 이러한 작업을 수행하는 가장 좋은 방법은 대체 작업을 완료하는 도우미 방법을 만든 다음 문자열을 연결할 때 만든 도우미 방법을 사용하여 공식이 있는 SQL 명령을 표현하는 것입니다. 마찬가지로 helper 메서드에서 Date 유형의 값을 받아들이고 Oracle 기반 to_date () 함수를 기반으로 하는 문자열 표현식을 출력하도록 할 수 있습니다.
5. PreparedStatement 객체를 사용하여 데이터베이스의 전반적인 효율성을 향상시킵니다.
PreparedStatement 객체를 사용하여 SQL 명령을 실행하면 데이터베이스에서 명령을 구문 분석하고 컴파일하여 명령 버퍼에 넣습니다. 그런 다음 동일한 PreparedStatement 객체가 실행될 때마다 다시 구문 분석되지만 다시 컴파일되지는 않습니다. 사전 컴파일된 명령은 버퍼에서 찾을 수 있으며 재사용할 수 있습니다. 사용자 수가 많은 엔터프라이즈 응용 프로그램에서는 동일한 SQL 명령이 자주 반복되며, PreparedStatement 객체를 사용하여 발생하는 컴파일 횟수를 줄이면 데이터베이스의 전체 성능이 향상됩니다. 클라이언트에서 PreparedStatement 작업을 생성, 준비 및 실행하는 데 명령문 작업보다 시간이 오래 걸리는 경우 동적 SQL 명령을 제외한 모든 경우에 PreparedStatement 객체를 사용하는 것이 좋습니다.
6. 배치 반복 삽입 또는 갱신 작업에 PreparedStatement 객체를 사용합니다.
삽입 및 업데이트 작업을 일괄 처리하면 필요한 시간을 크게 줄일 수 있습니다. Oracle 에서 제공하는 Statement 및 CallableStatement 는 배치를 실제로 지원하지 않습니다. PreparedStatement 객체만 배치를 실제로 지원합니다. AddBatch () 및 executeBatch () 메서드를 사용하여 표준 JDBC 배치를 선택하거나 PreparedStatement 객체의 setExecuteBatch () 메서드와 표준 ExecuteBatch () 메서드를 사용하여 더 많은 것을 선택할 수 있습니다 Oracle 전용 배치 메커니즘을 사용하려면 setExecuteBatch () 를 다음과 같이 호출할 수 있습니다.
PreparedStatementpstmt3Dnull
시도 {
((OraclePreparedStatement)pstmt). Setexecutebatch (30);
...
Pstmt.executeupdate ();
}
SetExecuteBatch () 를 호출할 때 지정된 값이 상한입니다. 이 값에 도달하면 SQL 명령 실행이 자동으로 트리거되고 표준 executeUpdate () 메서드가 데이터베이스에 일괄 처리로 전송됩니다. PreparedStatement 클래스의 sendBatch () 메서드를 호출하여 언제든지 배치 작업을 전송할 수 있습니다.
7. Oraclelocator 메소드를 사용하여 lob (대형 객체) 를 삽입하고 갱신합니다.
Oracle 의 PreparedStatement 클래스는 BLOB, CLOB 등의 대형 객체 처리를 완전히 지원하지 않습니다. 특히 씬 드라이버는 PreparedStatement 객체의 setObject () 및 setBinaryStream () 메서드를 지원하지 않습니다 로케이터 자체의 메서드만 데이터베이스에서 LOB 유형의 값을 얻을 수 있습니다. PreparedStatement 객체를 사용하여 lob 를 삽입하거나 갱신할 수 있지만 lob 값을 가져오려면 locator 가 필요합니다. 이 두 가지 문제 때문에 locator 메서드를 사용하여 LOB 값을 삽입, 업데이트 또는 가져오는 것이 좋습니다.
8. SQL92 구문을 사용하여 저장 프로시저를 호출합니다.
내장 프로시저를 호출할 때 SQL92 또는 OraclePL/SQL 을 사용할 수 있습니다. OraclePL/SQL 을 사용하면 실질적인 이점이 없고 향후 애플리케이션 유지 관리에 어려움을 겪을 수 있으므로 저장 프로시저를 호출할 때 SQL92 를 사용하는 것이 좋습니다.
9. ObjectSQL 을 사용하여 객체 스키마를 데이터베이스로 전송합니다.
Oracle 데이터베이스를 객체 지향 데이터베이스로 사용할 수 있으므로 응용 프로그램에서 객체 지향 스키마를 데이터베이스로 전송하는 것을 고려해 볼 수 있습니다. 현재 메소드는 Javabean 을 위장된 데이터베이스 객체로 만들고 해당 속성을 관계형 테이블에 매핑한 다음 이러한 bean 에 메소드를 추가하는 것입니다. Java 에서 이렇게 하는 것은 틀리지 않지만, 데이터베이스에 액세스하는 다른 응용 프로그램은 객체 스키마를 이용할 수 없습니다. 왜냐하면 작업은 모두 데이터베이스 외부에서 이루어지기 때문입니다. Oracle 의 객체 지향 기술을 사용하는 경우 새 데이터베이스 객체 유형을 생성하여 데이터베이스의 데이터와 작업을 모방한 다음 JPublisher 와 같은 도구를 사용하여 자체 Javabean 클래스를 생성할 수 있습니다. 이 방법을 사용하면 Java 응용 프로그램에서 응용 프로그램의 개체 패턴을 사용할 수 있을 뿐만 아니라 응용 프로그램의 데이터와 작동을 즐길 수 있는 다른 응용 프로그램에서도 응용 프로그램의 개체 패턴을 사용할 수 있습니다.
10, SQL 을 사용하여 데이터베이스 작업을 완료합니다.
제가 여러분께 소개하고 싶은 가장 중요한 경험은 Java 와 같은 절차적 프로그래밍 언어를 사용하는 대신 SQL 컬렉션 지향 접근 방식을 최대한 활용하여 데이터베이스 처리 요구 사항을 해결하는 것입니다.
프로그래머가 한 테이블에서 많은 행을 찾으려는 경우 결과의 각 행은 다른 테이블에서 데이터를 찾습니다. 마지막으로 프로그래머는 첫 번째 테이블의 데이터를 일괄 업데이트하는 별도의 업데이트 명령을 작성합니다. Set 절에 다중 열 하위 질의를 사용하면 UPDATE 명령에서 유사한 작업을 수행할 수 있습니다. SQL 명령을 사용하여 작업을 완료할 수 있을 때 인터넷에서 데이터를 스트리밍하는 이유는 무엇입니까? 나는 사용자가 SQL 의 기능을 극대화하는 방법을 진지하게 연구할 것을 건의한다.