logo

Java에서 JDBC 연결 설정

전에 Java에서 JDBC 연결 설정 (프론트엔드, 즉 Java 프로그램과 백엔드, 즉 데이터베이스) 우리는 JDBC가 정확히 무엇인지, 왜 존재하게 되었는지 배워야 합니다. 이제 JDBC가 정확히 무엇을 의미하는지 논의하고 이를 작동시키기 위한 실제 일러스트레이션의 도움을 받아 설명하겠습니다.

JDBC란 무엇입니까?

JDBC Java Database Connectivity의 약어입니다. 이는 ODBC(개방형 데이터베이스 연결)의 발전입니다. JDBC는 프런트엔드에서 백엔드로 데이터를 이동하기 위해 개발된 표준 API 사양입니다. 이 API는 Java로 작성된 클래스와 인터페이스로 구성됩니다. 이는 기본적으로 Java 프로그램과 데이터베이스 사이의 인터페이스(Java에서 사용하는 것이 아님) 또는 채널 역할을 합니다. 즉, 프로그래머가 Java 코드에서 데이터를 보내고 나중에 사용할 수 있도록 데이터베이스에 저장할 수 있도록 둘 사이의 링크를 설정합니다. .



삽화: 실시간과 연계된 JDBC 작업

realtime_working_of_JDBC

JDBC가 존재하는 이유는 무엇입니까?

이전에 JDBC가 ODBC의 발전이라고 말했듯이, 플랫폼에 의존하는 ODBC에는 많은 단점이 있었습니다. ODBC API는 C, C++, Python 및 Core Java로 작성되었으며 위에서 알고 있듯이 언어(Java 및 Python의 일부 제외)는 플랫폼에 따라 다릅니다. 따라서 종속성을 제거하기 위해 JDBC는 Java로 작성된 클래스와 인터페이스로 구성된 데이터베이스 공급업체에서 개발되었습니다.



Java 애플리케이션을 데이터베이스와 연결하는 단계

다음은 Java에서 데이터베이스에 연결하는 방법을 설명하는 단계입니다.

자바의 데이터 유형

1 단계 – 패키지 가져오기
2 단계 – 다음을 사용하여 드라이버를 로드합니다. forName() 메서드
3단계 – 드라이버 등록 DriverManager 사용
4단계 – 연결 설정 연결 클래스 객체 사용
5단계 – 성명서를 작성하세요
6단계 – 쿼리를 실행
7단계 – 연결을 닫습니다.

자바 데이터베이스 연결

Java에서 JDBC 연결 설정 중



JDBC의 연결 단계를 설명하기 위해 적절한 코드를 작성하여 구현하기 전에 이러한 단계를 간략하게 논의하겠습니다.

1 단계: 패키지 가져오기

2 단계: 드라이버 로드

우선, 프로그램에서 사용하기 전에 먼저 드라이버를 로드하거나 등록해야 합니다. 등록은 프로그램에서 한 번만 수행하면 됩니다. 다음 두 가지 방법 중 하나로 드라이버를 등록할 수 있습니다.

2-A 클래스.for이름()

여기서는 런타임 시 드라이버의 클래스 파일을 메모리에 로드합니다. 새로운 객체를 사용하거나 객체를 생성할 필요가 없습니다. 다음 예제에서는 Class.forName()을 사용하여 아래와 같이 Oracle 드라이버를 로드합니다.

Class.forName(oracle.jdbc.driver.OracleDriver);>

2-B DriverManager.registerDriver()

DriverManager는 정적 멤버 레지스터가 있는 Java 내장 클래스입니다. 여기서는 컴파일 타임에 드라이버 클래스의 생성자를 호출합니다. 다음 예제에서는 아래와 같이 DriverManager.registerDriver()를 사용하여 Oracle 드라이버를 등록합니다.

 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver())>

3단계: 연결 설정 사용하여 그만큼 연결 클래스 객체

드라이버를 로드한 후 아래와 같이 연결을 설정합니다.

Connection con = DriverManager.getConnection(url,user,password)>
  • 사용자: U SQL 명령 프롬프트에 액세스할 수 있는 sername입니다.
  • 비밀번호: SQL 명령 프롬프트에 액세스할 수 있는 비밀번호입니다.
  • 와 함께: Connection 인터페이스에 대한 참조입니다.
  • URL : 아래와 같이 생성된 URL(Uniform Resource Locator)입니다.
String url = jdbc:oracle:thin:@localhost:1521:xe>

여기서 oracle은 사용되는 데이터베이스, Thin은 사용되는 드라이버, @localhost는 데이터베이스가 저장된 IP 주소, 1521은 포트 번호, xe는 서비스 공급자입니다. 위의 3개 매개변수는 모두 문자열 유형이며 함수를 호출하기 전에 프로그래머가 선언해야 합니다. 이를 사용하여 최종 코드를 구성할 수 있습니다.

4단계: 명세서 작성

연결이 설정되면 데이터베이스와 상호 작용할 수 있습니다. JDBCStatement, CallableStatement 및 ReadyStatement 인터페이스는 SQL 명령을 보내고 데이터베이스에서 데이터를 수신할 수 있는 메소드를 정의합니다.
JDBC 문의 사용은 다음과 같습니다.

Statement st = con.createStatement();>

메모: 여기서 con은 이전 단계에서 사용된 연결 인터페이스에 대한 참조입니다.

5단계: 쿼리 실행

이제 가장 중요한 부분, 즉 쿼리 실행이 나옵니다. 여기서 쿼리는 SQL 쿼리입니다. 이제 우리는 여러 유형의 쿼리가 있을 수 있다는 것을 알고 있습니다. 그 중 일부는 다음과 같습니다:

  • 데이터베이스의 테이블을 업데이트/삽입하기 위한 쿼리입니다.
  • 데이터 검색을 위한 쿼리입니다.

ExecutionQuery() 메소드는 성명 인터페이스 데이터베이스에서 값을 검색하는 쿼리를 실행하는 데 사용됩니다. 이 메소드는 테이블의 모든 레코드를 가져오는 데 사용할 수 있는 ResultSet의 객체를 반환합니다.
업데이트/삽입 쿼리를 실행하기 위해서는 State 인터페이스의 ExecuteUpdate(sql 쿼리) 메소드를 사용합니다.

의사 코드:

int m = st.executeUpdate(sql); if (m==1)  System.out.println('inserted successfully : '+sql); else  System.out.println('insertion failed');>

여기서 sql은 문자열 유형의 SQL 쿼리입니다.

자바

끈으로 길게




// This code is for establishing connection with MySQL> // database and retrieving data> // from db Java Database connectivity> /*> >*1. import --->java.sql> >*2. load and register the driver --->com.jdbc.> >*3. create connection> >*4. create a statement> >*5. execute the query> >*6. process the results> >*7. close> >*/> import> java.io.*;> import> java.sql.*;> class> GFG {> >public> static> void> main(String[] args)>throws> Exception> >{> >String url> >=>'jdbc: mysql://localhost:3306/table_name '>; // table details> >String username =>'rootgfg'>;>// MySQL credentials> >String password =>'gfg123'>;> >String query> >=>'select *from students'>;>// query to be run> >Class.forName(> >'com.mysql.cj.jdbc.Driver'>);>// Driver name> >Connection con = DriverManager.getConnection(> >url, username, password);> >System.out.println(> >'Connection Established successfully'>);> >Statement st = con.createStatement();> >ResultSet rs> >= st.executeQuery(query);>// Execute query> >rs.next();> >String name> >= rs.getString(>'name'>);>// Retrieve name from db> >System.out.println(name);>// Print result on console> >st.close();>// close statement> >con.close();>// close connection> >System.out.println(>'Connection Closed....'>);> >}> }>

안드로이드의 imessage 게임

>

>

산출 :

console_window

6단계: 연결 닫기

마침내 우리는 데이터를 지정된 위치로 보냈고 이제 작업 완료 직전에 있습니다. 연결을 닫으면 State 및 ResultSet의 개체가 자동으로 닫힙니다. Connection 인터페이스의 close() 메소드는 연결을 닫는 데 사용됩니다. 아래와 같이 표시됩니다.

 con.close();>

예:

자바


자바 문자열 연결



// Java Program to Establish Connection in JDBC> // Importing database> import> java.sql.*;> // Importing required classes> import> java.util.*;> // Main class> class> Main {> >// Main driver method> >public> static> void> main(String a[])> >{> >// Creating the connection using Oracle DB> >// Note: url syntax is standard, so do grasp> >String url =>'jdbc:oracle:thin:@localhost:1521:xe'>;> >// Username and password to access DB> >// Custom initialization> >String user =>'system'>;> >String pass =>'12345'>;> >// Entering the data> >Scanner k =>new> Scanner(System.in);> >System.out.println(>'enter name'>);> >String name = k.next();> >System.out.println(>'enter roll no'>);> >int> roll = k.nextInt();> >System.out.println(>'enter class'>);> >String cls = k.next();> >// Inserting data using SQL query> >String sql =>'insert into student1 values(''> + name> >+>'','> + roll +>',''> + cls +>'')'>;> >// Connection class object> >Connection con =>null>;> >// Try block to check for exceptions> >try> {> >// Registering drivers> >DriverManager.registerDriver(> >new> oracle.jdbc.OracleDriver());> >// Reference to connection interface> >con = DriverManager.getConnection(url, user,> >pass);> >// Creating a statement> >Statement st = con.createStatement();> >// Executing query> >int> m = st.executeUpdate(sql);> >if> (m ==>1>)> >System.out.println(> >'inserted successfully : '> + sql);> >else> >System.out.println(>'insertion failed'>);> >// Closing the connections> >con.close();> >}> >// Catch block to handle exceptions> >catch> (Exception ex) {> >// Display message when exceptions occurs> >System.err.println(ex);> >}> >}> }>

>

>

데이터베이스에 데이터를 가져온 후 출력:

output_screen_after_importing_data