JDBC 연결 MySQL 데이터베이스 (A) - 기본 데이터베이스 연결

JDBC 개념
JDBC의 개념에서 우리의 첫번째보기 전에는, JDBC는 API의 집합입니다 데이터베이스 연결 (Java 데이터베이스 연결)의 약자, SQL 문을 실행하는 응용 프로그램은이 API를 통해 관계형 데이터베이스에 연결할 수 있습니다 와, 등, 데이터베이스 쿼리를 완료 추가, 변경, 삭제하는 SQL 문을 사용 ..
내부 데이터베이스는 사용자가 현재의 프로그램에 사용되는 경우, 애플리케이션 이식성이 매우 나빠질 것이다 데이터베이스 벤더의 방법에 의해 데이터를 직접 액세스를 확립하는 경우, 상이한 타입의 데이터가 다른 처리 JDBC 코드를 만드는 기반 통합 데이터베이스를 제공하는 요구 사항에 따라 데이터베이스 공급 업체를 필요로하기 때문에 필요, 이러한 상황이 존재하지 않는 JDBC와 코드를 많이 변경 그래서 만약 오라클의 데이터베이스로 MySQL 데이터베이스입니다 더 융통성.

 

여러 다른 구동 데이터 연결, 상응하는 연결 작업과, 응용 프로그램과 브리지의 역할 데이터베이스 사이도, JDBC 본

은 JDBC API 알아보기
드라이버 인터페이스
드라이버 인터페이스는 모든 JDBC 드라이버 인터페이스를 사용하는 데이터베이스 공급 업체 전용, 구현해야합니다. JDBC 프로그램을 작성하는 경우, 당신은 클래스 패스에로드 된 모든 데이터베이스 드라이버 나 라이브러리를 넣어해야합니다.

DriverManager의 인터페이스
방법 역할
JDBC 드라이버 DriverManager에 등록 regsiterDriver (드라이버 드라이버)
의 getConnection (문자열 URL을 문자열 사용자 문자열 암호) 데이터베이스에 대한 연결을 설정하는
연결 인터페이스
방법 역할
) (SQL 문에 전송 객체 생성 문을의 createStatement를 데이터베이스
의 prepareStatement ()는 SQL 문을 데이터베이스로 전송하는데의 prepareStatement 객체를 생성하기 위해
호출하는 CallableStatement 오브젝트 데이터베이스 저장 프로 시저를 만들 수의 prepareCall ()
참고 : 우리의 createStatement 개체 만들기를 참조하십시오 여기 및 방법의 prepareStatement 데이터베이스에 SQL 문을 보내고 있지만, 차이점은 무엇입니까? 우리는 그것의 사용에 대해 이야기 한 후 우리의 createStatement 방법의 prepareStatement 메소드를 사용하자.

Statement 인터페이스의
메소드의 역할은
결과가 표시되는 경우 실행 (문자열 SQL) 실행 SQL 문은 메소드의 ResultSet에 의한 쿼리 결과 사실의 부울 값을 반환
삽입 업데이트 방법은 SQL 문이 int 형의 값을 반환합니다 executeUpdate의 (문자열 SQL)를 수행 삭제
수행하는 executeQuery를 SQL select 문
의 ResultSet 인터페이스
방법을 설명
에는 getString (문자열 이름) String 형의 값을 가져옵니다, 이름 필드 대표 이름
의 getInt (INT 지수)를 int, 필드 이름의 인덱스 대표 가져옵니다
다음 () 다음 줄에 현재 위치
이전을 ( ) 결과 집합 행에
지정된 위치 절대 INT (행)의 ResultSet 인
연결 공정 확립
단지 패키지 프로젝트에 코드 MySQL의 가스를 작성할 필요하여 MySQL의 \ 커넥터 J MySQL을 커넥터 - 발견 자바 8.0.14 에서 8.0 프로젝트에 .jar 파일

데이터베이스에 대한 연결을 설정하려면, 우리는 MySQL 데이터베이스 먼저 등록을 운전해야
, 전체 데이터베이스 드라이버 등록을 데이터베이스에 연결 설정
Statement 오브젝트 생성하는
SQL 문을 실행
통과 쿼리 데이터
릴리스 자원
JDBC 코드베이스
데이터베이스와 공통 API에 대한 연결을 설정하는 단계를 설명하기를, 다음 코드의 가장 기본적인를 달성하는 방법에 대해 살펴 :


java.sql.Connection의 수입;
가져는 java.sql.DriverManager;
가져 java.sql.ResultSet의,
수입은 java.sql.SQLException;
가져 java.sql.Statement의,
공용 클래스 pracjdbc {
공공 정적 무효 메인 (문자열 []에 args) {
{은 try
// 등록 드라이브 1.
DriverManager.registerDriver (새 새 com.mysql.cj.jdbc.Driver ())
. / 2 * 데이터베이스에 연결을 순차적으로 획득 매개 변수가 URL, 사용자, 암호 URL이 로컬 데이터베이스에 연결, 사용자의 사용자 이름, 암호 데이터베이스 암호 * /
연결 CONN =
DriverManager.getConnection를 ( "JDBC를 : MySQL의 :? // localhost를 / studentinformation serverTimezone = GMT %의 2B8", "루트", "81604152");
3 // 명령문 객체 생성.
문 성을 conn.createStatement = ();
문자열 SQL = "* 선택 (SELECT)에서 정보를";
. // 4 실행 SQL 문을
ResultSet의 RS = st.executeQuery (SQL);
// 5遍历查询数据.
반면 (rs.next ()) {
INT 식 rs.getInt ( "ID");
문자열 이름 = rs.getString ( "이름");
에서 System.out.println (ID + ":"+ 이름);
}
// 6释放资源.
conn.close ();
st.close ();
rs.close ();
} 캐치 (예외 : SQLException 전자) {
e.printStackTrace ();
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
JDBC 코드가 향상된다
단지 코드의 대부분은 우리가 일부 개선 할 수있는 조금의 기준으로 보는이로 지금 썼다

리소스 해제
자원 릴리스 실을 이용하여 초기 기록이 최종적으로 차단하는 경우가 아니라
자원 방출
은 try {
IF {(코네티컷 = NULL은!)
Conn.Close ();
}
} 캐치 (되는 SQLException E) {

e.printStackTrace ()
} {최종적
코네티컷 = NULL;
}
. 1
2
. 3
. 4
. 5
. 6
. 7
. 8
. 9
(10)
전체 기록 너무 길고 균일 한 기록이 동작 클래스를 얻어


수입 java.sql.Connection의;
수입의 java.sql.ResultSet;
수입은 java.sql.SQLException;
수입 java.sql.Statement의;

공용 클래스 JDBCutils {
공공 정적 무효 ReleaseAll (연결 CONN,의 ResultSet rs는 성명 성) {
CloseConn (CONN);
가까운 (성);
클로저 (RS);
}
공공 정적 무효 ReleaseAll (연결 CONN 명령문 일) {
CloseConn (CONN);
가까운 (성);
}
개인 정적 무효 CloseConn (연결 CONN) {
{시도
하면 {(코네티컷 주 = 널!)
conn.close ();
}
} 캐치 (예외 : SQLException 전자) {
e.printStackTrace ();
마지막} {
CONN = NULL;
}
}
개인 정적 무효 클로저 (의 ResultSet RS는) {
{시도
하는 경우 (! RS = NULL) {
rs.close ();
}
} 캐치 (예외 : SQLException 전자) {
e.printStackTrace ();
{} 마지막
RS = NULL;
}

}
개인 정적 무효 가까운 곳 (문 일을) {
시도 {
경우 (일 = 널!) {
st.close ();
}
} 캐치 (예외 : SQLException 전자) {
e.printStackTrace ();
마지막} {
세인트 = NULL;
}

}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 인
(32)
(33)이
34 인
35
36
37
38 인
(39)
(40)
(41)이
42 인
43 인
44된다
(45)
(46)는
(47)
48
49
50
51
52이된다
구동원의 바닥으로 구축하는 단계를 보면


{정적
은 try {
java.sql.DriverManager.registerDriver (새 새 드라이버 ());
} 캐치 (예외 : SQLException E) {
말고 RuntimeException 새 새 ( "드라이버를 등록 할 수 없습니다!") 던져;
}
}
. 1
2
. 3
. 4
. 5
. 6
. 7
. 8
드라이버 사실, 우리는 자신의 운전이 이미 중복 설정하기 위해 드라이브를 설정 한
다음과 같이 코드를 수정


가 Class.forName ( "com.mysql.cj.jdbc.Driver");
1.
2
전체 코드는 다음과 같이 :


수입 java.sql.Connection의;
수입 java.sql.DriverManager의;
수입의 java.sql.ResultSet;
수입 java.sql.Statement의;
공용 클래스 pracjdbc {
공공 정적 무효 메인 (문자열 []에 args) {
접속 CONN = NULL;
정책 성 = NULL;
ResultSet의 RS = NULL;
{시도
Class.forName을 ( "com.mysql.cj.jdbc.Driver을");
//DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver ());
CONN = DriverManager.getConnection를 ( "JDBC한다 : mysql : // localhost를 / studentinformation serverTimezone = GMT % 2B8", "루트", "81604152");
세인트 = conn.createStatement ();
문자열 SQL = "정보 SELECT * FROM";
RS = st.executeQuery (SQL);
반면 (rs.next ()) {
INT 자료 = rs.getInt ( "
문자열 이름 = rs.getString ( "이름");
에서 System.out.println (ID + ":"+ 이름);
}
} 캐치 (예외 전자) {
e.printStackTrace ();
마지막} {
JDBCutils.ReleaseAll (CONN, RS, 일);
}
}
}
--------------------- 

추천

출처www.cnblogs.com/ly570/p/10987478.html