전체 자바 개발 중 JDBC 연결 데이터베이스 코드 및 절차
• 데이터베이스에 JDBC를 연결하는 프로그램을 만드는데 7단계가 있습니다.
1. JDBC 드라이버 로드:
데이터베이스에 연결하기 전에 먼저 연결하려는 데이터베이스의 드라이브를 JVM(Java VM)에 로드합니다.
이것은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은 데이터베이스에 연결할 때의 프로토콜, 하위 프로토콜, 데이터 소스 ID를 정의합니다.
• 쓰기 형식: 프로토콜: 하위 프로토콜: 데이터 소스 식별
프로토콜: JDBC에서 항상 jdbc로 시작
하위 프로토콜: 브리지가 연결된 드라이버 또는 데이터베이스 관리 시스템 이름입니다.
데이터 원본 표지: 데이터베이스 원본을 찾은 주소와 연결 포트를 표시합니다.
예: (MySql 연결 URL)
jdbc:mysql:
//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true: Unicode 문자 세트를 사용합니다.characterEncoding이 로 설정된 경우
gb2312 또는 GBK, 이 매개 변수는true로 설정해야 합니다.characterEncoding=gbk: 문자 인코딩 방식입니다.
3. 데이터베이스 연결 만들기
• 데이터베이스에 연결하려면java가 필요합니다.sql.DriverManager 요청 및 Connection 객체,
이 대상은 데이터베이스 연결을 대표한다.
• DriverManager의 getConnectin(String url, String username,
String password) 메서드는 연결할 데이터베이스 경로, 데이터베이스 사용자 이름 및
비밀번호로 얻을 수 있습니다.
예:
// 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. Statement 만들기• SQL 문장을 실행하려면 java를 받아야 합니다.sql.Statement 인스턴스, Statement 인스턴스는 다음 3
유형:
1. 정적 SQL 문을 실행합니다.일반적으로 Statement 인스턴스를 통해 구현됩니다.
2. 동적 SQL 문을 실행합니다.일반적으로 PreparedStatement 인스턴스를 통해 수행됩니다.
3. 데이터베이스 저장 프로세스를 실행한다.일반적으로 CallableStatement 인스턴스를 통해 구현됩니다.
구체적인 실현 방식:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5, SQL 문장 실행Statement 인터페이스는 세 가지 SQL 문장을 실행하는 방법을 제공합니다: executeQuery, executeUpdate
및 execute
1. ResultSet executeQuery(String sqlString): 검색 데이터베이스를 실행하는 SQL 문장
, 결과 세트(ResultSet) 객체를 반환합니다.
2. int executeUpdate(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() ;
}
}
인스턴스 코드:
package com.b510;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* @author Hongten</br>
* @date 2012-7-16
*
*/
public class JDBCTest {
public static void main(String[] args) {
String driver = "com.mysql.jdbc.Driver";
String dbName = "spring";
String passwrod = "root";
String userName = "root";
String url = "jdbc:mysql://localhost:3308/" + dbName;
String sql = "select * from users";
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, userName,
passwrod);
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("id : " + rs.getInt(1) + " name : "
+ rs.getString(2) + " password : " + rs.getString(3));
}
//
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
실행 효과:id : 3 name : hongten password : 123
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.