Java java지도 시간 Java의 데이터베이스 및 단계에 대한 JDBC 연결에 대한 자세한 설명 및 예

Java의 데이터베이스 및 단계에 대한 JDBC 연결에 대한 자세한 설명 및 예

Feb 28, 2017 pm 03:37 PM

Java의 JDBC 데이터베이스 연결 코드 및 단계에 대한 자세한 설명

JDBC 연결 데이터베이스

• 데이터베이스에 연결하는 프로그램 만들기 JDBC 사용, 7단계 포함:

1. JDBC 드라이버 로드:

데이터베이스에 연결하기 전에 먼저 드라이버를 로드해야 합니다. 연결하려는 데이터베이스의 JVM(Java Virtual Machine)에 대한 작업은 java.lang.Class 클래스의 정적 메소드 forName(String className)을 통해 수행됩니다.

예:


  try{  
  //加载MySql的驱动类  
  Class.forName("com.mysql.jdbc.Driver") ;  
  }catch(ClassNotFoundException e){  
  System.out.println("找不到驱动程序类 ,加载驱动失败!");  
  e.printStackTrace() ;  
  }
로그인 후 복사


성공적으로 로드된 후 Driver 클래스의 인스턴스 DriverManager 클래스에 등록됩니다.

2. JDBC 연결을 위한 URL 제공

• 연결 URL은 연결 시 프로토콜, 하위 프로토콜, 데이터 소스 식별을 정의합니다. 데이터베이스에.
•작성 형식: 프로토콜: 하위 프로토콜: 데이터 소스 식별자

프로토콜: JDBC에서 항상 jdbc로 시작

하위 프로토콜: 브리지 연결의 드라이버 또는 이름 데이터베이스 관리 시스템의 일부입니다. ​

데이터 소스 식별: 데이터베이스 소스가 발견된 주소와 연결 포트를 표시합니다.

예: (MySql 연결 URL)


 jdbc:mysql:  
    //localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
로그인 후 복사


useUnicode=true: 유니코드 문자 세트를 사용하십시오. CharacterEncoding이

gb2312 또는 GBK로 설정된 경우 이 매개변수를 true로 설정해야 합니다. CharacterEncoding=gbk: 문자 인코딩 방법.

3. 데이터베이스 연결 생성

• 데이터베이스에 연결하려면 java.sql에서 Connection 개체를 요청하고 가져와야 합니다. .DriverManager, 이는 데이터베이스 연결을 나타냅니다.
• DriverManager의 getConnectin(문자열 url, 문자열 사용자 이름, 문자열 비밀번호) 메소드를 사용하여 연결할 지정된 데이터베이스의 경로, 데이터베이스의 사용자 이름 및

비밀번호를 전달하여 가져옵니다. 그것.

예:


//连接MySql数据库,用户名和密码都是root  
   String url = "jdbc:mysql://localhost:3306/test" ;  
   String username = "root" ;  
   String password = "root" ;  
   try{  
  Connection con =  
       DriverManager.getConnection(url , username , password ) ;  
   }catch(SQLException se){  
  System.out.println("数据库连接失败!");  
  se.printStackTrace() ;  
   }
로그인 후 복사


4. 성명 만들기

•SQL 문장을 실행하기 위해서는 java.sql.Statement 인스턴스를 얻어야 한다. 문장 인스턴스는 다음과 같은 3가지 종류로 나누어진다.

1. 실행 정적 SQL 문. 일반적으로 State 인스턴스를 통해 구현됩니다.​
2. 동적 SQL문을 실행한다. 일반적으로 ReadyStatement 인스턴스를 통해 구현됩니다.
3. 데이터베이스 저장 프로시저를 실행합니다. 일반적으로 CallableStatement 인스턴스를 통해 구현됩니다.

구체적인 구현:


Statement stmt = con.createStatement() ;  
    PreparedStatement pstmt = con.prepareStatement(sql) ;  
    CallableStatement cstmt =  
              con.prepareCall("{CALL demoSp(? , ?)}") ;
로그인 후 복사


5. SQL 문 실행

Statement 인터페이스는 SQL 문을 실행하기 위한 세 가지 메서드인 ExecuteQuery, ExecuteUpdate 및 Execution
을 제공하며 결과 집합(ResultSet) 개체를 반환합니다.

2. int excuteUpdate(String sqlString): INSERT, UPDATE 또는 DELETE 문과 SQL DDL 문(예: CREATE TABLE 및 DROP TABLE 등)을 실행하는 데 사용됩니다.

3. Execute(sqlString): 실행하는 데 사용됩니다. 여러 결과 집합, 여러 업데이트 횟수 또는 이 둘의 조합을 반환하는 문입니다.


구체적인 구현 코드 :


     ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;  
  int rows = stmt.executeUpdate("INSERT INTO ...") ;  
  boolean flag = stmt.execute(String sql) ;
로그인 후 복사


6. 처리 결과

두 가지 상황:

1. 업데이트를 실행하면 이 작업의 영향을 받은 레코드 수가 반환됩니다.

2. 쿼리를 실행하여 반환되는 결과는 ResultSet 개체입니다. ​

​ • ResultSet에는 SQL 문의 조건을 충족하는 모든 행이 포함되어 있으며 일련의 get 메소드를 통해 이러한 행의 데이터에 대한 액세스를 제공합니다.
• ResultSet 객체의 액세스 방법을 사용하여 데이터를 얻습니다.


  while(rs.next()){  
     String name = rs.getString("name") ;  
  String pass = rs.getString(1) ; // 此方法比较高效  
   }
로그인 후 복사


(열은 왼쪽에서 오른쪽으로 번호가 매겨져 있습니다. 1열부터 시작)


7、关闭JDBC对象

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:

1、关闭记录集
2、关闭声明
3、关闭连接对象


     if(rs != null){  // 关闭记录集  
    try{  
      rs.close() ;  
    }catch(SQLException e){  
      e.printStackTrace() ;  
    }  
     }  
     if(stmt != null){  // 关闭声明  
    try{  
      stmt.close() ;  
    }catch(SQLException e){  
      e.printStackTrace() ;  
    }  
     }  
     if(conn != null){ // 关闭连接对象  
     try{  
      conn.close() ;  
     }catch(SQLException e){  
      e.printStackTrace() ;  
     }  
     }
로그인 후 복사


感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

更多java 中JDBC连接数据库和步骤详解及实例相关文章请关注PHP中文网!


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Java 원격 디버깅에서 원격 서버에서 일정한 값을 올바르게 얻는 방법은 무엇입니까? Java 원격 디버깅에서 원격 서버에서 일정한 값을 올바르게 얻는 방법은 무엇입니까? Apr 19, 2025 pm 01:54 PM

Java 원격 디버깅의 지속적인 획득에 대한 질문과 답변 원격 디버깅에 Java를 사용할 때 많은 개발자가 어려운 현상을 만날 수 있습니다. 그것...

백엔드 개발에서 서비스 계층과 DAO 계층의 책임을 구별하는 방법은 무엇입니까? 백엔드 개발에서 서비스 계층과 DAO 계층의 책임을 구별하는 방법은 무엇입니까? Apr 19, 2025 pm 01:51 PM

백엔드 개발에서 계층 구조에 대해 논의합니다. 백엔드 개발에서 계층 구조는 일반적으로 컨트롤러, 서비스 및 DAO 3 계층을 포함한 일반적인 설계 패턴입니다.

그룹 내에서 정렬을 구현하기 위해 이름을 숫자로 변환하는 방법은 무엇입니까? 그룹 내에서 정렬을 구현하기 위해 이름을 숫자로 변환하는 방법은 무엇입니까? Apr 19, 2025 pm 01:57 PM

그룹 내에서 정렬을 구현하기 위해 이름을 숫자로 변환하는 방법은 무엇입니까? 그룹으로 사용자를 정렬 할 때는 종종 사용자 이름을 숫자로 변환하여 다르게 만들 수 있습니다 ...

Spring Boot Project에서 타사 인터페이스가 호출되고 필드 이름 케이스 및 Getter 메소드가 일치하지 않아 데이터 전송 실패가 발생하면 어떻게해야합니까? Spring Boot Project에서 타사 인터페이스가 호출되고 필드 이름 케이스 및 Getter 메소드가 일치하지 않아 데이터 전송 실패가 발생하면 어떻게해야합니까? Apr 19, 2025 pm 02:03 PM

SpringBoot 프로젝트에서 데이터를 전송하기 위해 타사 인터페이스를 호출 할 때 발생하는 어려움은 스프링에 사용됩니다 ...

원사에 pyflink 작업을 제출할 때 오류를보고하는 이유는 무엇입니까? 원사에 pyflink 작업을 제출할 때 오류를보고하는 이유는 무엇입니까? Apr 19, 2025 pm 02:06 PM

원사를 통해 pyflink 작업을 제출하려고 할 때 원사에 pyflink 작업을 제출할 때 Python 스크립트를 찾을 수없는 이유를 분석하면 만날 수 있습니다.

Java에서 프로젝트가 시작될 때 Easypoi에서 @excel 주석의 SavePath 매개 변수를 동적으로 수정하는 방법은 무엇입니까? Java에서 프로젝트가 시작될 때 Easypoi에서 @excel 주석의 SavePath 매개 변수를 동적으로 수정하는 방법은 무엇입니까? Apr 19, 2025 pm 02:09 PM

개발 프로세스 중에 Java의 엔티티 클래스 주석의 매개 변수를 동적으로 구성하는 방법 개발 프로세스 중에는 종종 다른 환경에 따라 주석 매개 변수를 동적으로 구성해야합니다 ...

See all articles