Java로 MySQL 데이터베이스에 연결하는 방법

Java로 MySQL 데이터베이스에 연결하는 방법

자바 제공 JDBC(자바 데이터베이스 연결) Java SDK(소프트웨어 개발 키트)의 일부로. 이것을 사용하여 , 관계형 데이터베이스에 연결하고 레코드 쿼리, 삽입, 업데이트 및 삭제와 같은 일반적인 작업을 수행하는 것은 매우 쉽습니다.





핵심 JDBC API가 Java에 포함되어 있지만 MySQL 또는 SQL Server와 같은 특정 데이터베이스에 연결하려면 데이터베이스 드라이버라는 추가 구성 요소가 필요합니다. 이 데이터베이스 드라이버는 핵심 JDBC 호출을 해당 데이터베이스에서 이해할 수 있는 형식으로 변환하는 소프트웨어 구성 요소입니다.





배터리 부족 모드는 무엇을합니까

이 기사에서는 MySQL 데이터베이스에 연결하는 방법과 몇 가지 쿼리를 수행하는 방법에 대해 자세히 살펴보겠습니다.





MySQL 데이터베이스 드라이버

위에서 설명한 것처럼 MySQL 데이터베이스에 연결하려면 MySQL용 JDBC 드라이버가 필요합니다. 이것을 Connector/J 드라이버라고 하며 다음에서 다운로드할 수 있습니다. 여기에서 MySQL 사이트.

ZIP(또는 TAR.GZ) 파일을 다운로드한 후 아카이브를 추출하고 JAR 파일을 복사합니다. mysql-connector-java--bin.jar 적당한 위치로. 이 파일은 MySQL JDBC 드라이버를 사용하는 코드를 실행하는 데 필요합니다.



샘플 데이터베이스 생성

MySQL 데이터베이스를 다운로드하고 제대로 설정 액세스 권한이 있는 곳에서 쿼리를 연결하고 수행하는 데 사용할 수 있도록 샘플 데이터베이스를 생성하겠습니다.

선택한 클라이언트를 사용하여 데이터베이스에 연결하고 다음 명령문을 실행하여 샘플 데이터베이스를 생성합니다.





create database sample;

또한 데이터베이스에 연결할 수 있으려면 사용자 이름과 암호가 필요합니다(일반적으로 나쁜 생각인 관리자로 연결하려는 경우 제외).

다음은 이라는 사용자를 생성합니다. 테스트 사용자 실행 중인 동일한 시스템에서 MySQL 데이터베이스에 연결할 사람(다음으로 표시됨) 로컬 호스트 ), 비밀번호를 사용하여 보안 암호 .





create user 'testuser'@'localhost' identified by 'securepwd';

다른 머신에서 실행 중인 데이터베이스에 연결하는 경우(이름이 리모트엠씨 ), 다음을 사용해야 합니다( 리모트엠씨 호스트 이름 또는 IP 주소일 수 있음):

create user 'testuser'@'remotemc' identified by 'securepwd';

사용자 이름과 암호가 생성되었으므로 이전에 생성한 샘플 데이터베이스에 대한 액세스 권한을 부여해야 합니다.

grant all on sample.* to 'testuser'@'localhost';

또는 데이터베이스가 원격인 경우:

grant all on sample.* to 'testuser'@'remotemc';

이제 다음을 수행할 수 있는지 확인해야 합니다. 데이터베이스에 연결 동일한 비밀번호로 방금 생성한 사용자로 연결 후 다음 명령을 실행하여 권한이 모두 올바른지 확인할 수도 있습니다.

create table joe(id int primary key auto_increment, name varchar(25));
drop table joe;

Java 클래스 경로 설정

이제 Java에서 MySQL에 연결하는 방법에 대해 자세히 알아보겠습니다. 첫 번째 단계는 데이터베이스 드라이버를 로드하는 것입니다. 이것은 적절한 위치에서 다음을 호출하여 수행됩니다.

토렌트 다운로드 속도를 높이는 방법
Class.forName('com.mysql.jdbc.Driver');

코드에서 예외가 발생할 수 있으므로 처리하려는 경우(예: GUI에 대한 오류 메시지 형식 지정) 예외를 catch할 수 있습니다.

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

드라이버를 로드할 수 없는 경우 프로그램이 즉시 실패하도록 클래스의 정적 블록에서 이 코드를 호출하는 것은 매우 일반적입니다.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

물론 드라이버를 찾기 위해서는 다음과 같이 클래스 경로에 포함된 드라이버 JAR(위에서 다운로드 및 추출)로 프로그램을 호출해야 한다.

java -cp mysql-connector-java--bin.jar:...

자바에서 MySQL에 연결하기

이제 Java에서 MySQL 드라이버를 로드하는 세부 정보를 정리했으므로 데이터베이스에 연결해 보겠습니다. 데이터베이스 연결을 만드는 한 가지 방법은 다음을 사용하는 것입니다. 드라이버매니저 .

String jdbcUrl = ...;
Connection con = DriverManager.getConnection(jdbcUrl);

그리고 무엇입니까 jdbcUrl ? 데이터베이스가 위치한 서버, 사용자 이름 등을 포함하여 연결 세부 정보를 나타냅니다. 다음은 예제의 샘플 URL입니다.

String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';

호스트 이름( 로컬 호스트 ), 사용자 이름과 비밀번호. (이와 같은 비밀번호를 포함하는 것은 좋은 습관이 아닙니다. 대안은 아래를 참조하세요.)

이것을 사용하여 jdbcUrl , 다음은 연결을 확인하는 완전한 프로그램입니다.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
con.close();
}
}

데이터베이스 연결은 프로그램에서 소중한 자원이므로 위와 같이 적절하게 닫아야 합니다. 그러나 위의 코드는 예외가 발생한 경우 연결을 닫지 않습니다. 정상 또는 비정상 종료 시 연결을 종료하려면 다음 패턴을 사용하십시오.

try(Connection con = DriverManager.getConnection(jdbcUrl)) {
System.out.println('Connected!');
}

위에서 언급했듯이 JDBC URL에 비밀번호를 포함하는 것은 좋지 않습니다. 사용자 이름과 암호를 직접 지정하려면 다음 연결 옵션을 대신 사용할 수 있습니다.

메신저에서 파란색 원은 무엇을 의미합니까
String jdbcUrl = 'jdbc:mysql://localhost/sample';
try(Connection con = DriverManager.getConnection(jdbcUrl, 'testuser', 'securepwd')) {
}

Java에서 데이터베이스 쿼리

이제 데이터베이스에 대한 연결이 설정되었으므로 데이터베이스 버전 쿼리와 같은 쿼리를 수행하는 방법을 살펴보겠습니다.

select version();

쿼리는 다음과 같이 자바에서 실행된다. NS 성명 객체가 생성되고 쿼리가 다음을 사용하여 실행됩니다. 쿼리 실행() 반환하는 메소드 결과 집합 .

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

에서 버전을 인쇄하십시오. 결과 집합 다음과 같이. 1 1부터 시작하는 결과의 열 인덱스를 나타냅니다.

while ( rset.next()) {
System.out.println('Version: ' + rset.getString(1));
}

결과를 처리한 후 개체를 닫아야 합니다.

rset.close();
stmt.close();

그리고 그것은 자바에서 MySQL에 연결하고 간단한 쿼리를 수행하는 것과 관련된 모든 것을 다룹니다.

또한 우리의 SQL 명령 치트 시트 .

공유하다 공유하다 트위터 이메일 호환되지 않는 PC에 Windows 11을 설치해도 되나요?

이제 공식 ISO 파일을 사용하여 구형 PC에 Windows 11을 설치할 수 있습니다... 하지만 그렇게 하는 것이 좋은 생각입니까?

다음 읽기
관련 항목
  • 프로그램 작성
  • 자바
  • SQL
저자 소개 제이 스리다르(17건의 기사 게재) 제이 스리다르가 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.