Java JDBC
4067 ワード
Java Database Connectivity
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBC {
public static void main(String[] args) {
作成//データベース接続情報
String url = "jdbc:oracle:thin:@localhost:1521:xe";
//ドライバ(異なる子供をつなぐ中間ブリッジ)名情報@接続アドレス(ローカルホスト:ポート:sld)
String user = "JSG99";
String password = "java";
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
1.接続の作成(DB接続)
- 자바와 데이터베이스를 연결해주는 라이브러리
- ojdbc : 오라클 JDBC
JDBCを作成するには1. Connection 생성(DB연결): 오라클과 자바 연결
2. Statement 생성(쿼리 작성): 실행 결과가 자바로 넘어옴
3. Query 실행
4. ResultSet에서 결과 추출(select인 경우)
5. ResultSet, Statement, Connection 닫기
package k_jdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JDBC {
public static void main(String[] args) {
作成//データベース接続情報
String url = "jdbc:oracle:thin:@localhost:1521:xe";
//ドライバ(異なる子供をつなぐ中間ブリッジ)名情報@接続アドレス(ローカルホスト:ポート:sld)
String user = "JSG99";
String password = "java";
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
1.接続の作成(DB接続)
try {
con = DriverManager.getConnection(url, user, password);
2.ステータスの作成(クエリーの作成):実行結果をJavaに移行 String sql = "select * from member"; //select 쿼리
ps = con.prepareStatement(sql);
//ps에 쿼리에 대한 정보가 담겨있음
3.クエリー1:selectの実行--結果セット(現在のクエリー状況)を返します. rs = ps.executeQuery();
//쿼리 실행2:insert, update, delete -- int 리턴 받음
int result = ps.executeUpdate(); // 영향 받은 행의 개수를 리턴
4.ResultSetから結果を抽出(selectの場合) while(rs.next()) {
//next()를 호출하면 첫번쩨 행을 바라봄 그게 반복되면 2,3행을 바라봄
: 다음 행이 있는지 없는지를 보면서 알려줌(다음행이 있으면 true, 없으면 false)
String memId = rs.getString(1);
//getString: 가져올 값의 타입을 정의하는 것 / (1): 첫번째 컬럼
String memPass = rs.getString("MEM_PASS");//("MEM_PASS"): 컬럼명
System.out.println("MEM_ID: "+memId+" / MEM_PASS: "+memPass);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//DriverManager : 드라이버 관리 클래스에 getConnection메서드 호출
// 5. ResultSet、Statement、Connectionを閉じる }finally {
if(rs != null) try {rs.close(); }catch(Exception e) {}
if(ps != null) try {ps.close(); }catch(Exception e) {}
if(con != null) try {con.close(); }catch(Exception e) {}
}
}
}
しゅつりょく package k_jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class JDBC2 {
public static void main(String[] args) {
// 작성 예
// 데이터베이스 접속 정보 3가지가 필요
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 골뱅이 앞 부분은 드라이버 뒤는 오라클의 호스트이름 포트 SID 를 차례대로 입력
String user = "JSG99";
String password = "java";
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
// 변수 만들고 드라이브 를 관리해주는 드라이브매니저와 겟 커넥션 메소드 사용해서 커넥션 값 받기
try {
con = DriverManager.getConnection(url, user, password);
String sql = "select * from cart where cart_member = ? and cart_qty > ?";
// 보통 where 절에는 값이 와야하는데 ? 를 사용하면 ?에 동적으로 값만 넣어줄 수 있음.
ps = con.prepareStatement(sql);
ps.setString(1, "a001");
// 첫번째 물음표에 a001 이라는 값을 넣겠다는 뜻.
ps.setInt(2, 5);
// 두번째 물음표에는 5라는 int 값을 넣겠다.
// ps.setObject(3, 10); 타입에 상관없이 ? 에 값을 넣어 줄 수 있음.
rs = ps.executeQuery();
** // 뽑아올 컬럼의 개수 알아오기/**
ResultSetMetaData metaData = rs.getMetaData(); // 메타데이터 : 데이터에 대한 데이터
int columnCount = metaData.getColumnCount(); // 컬럼의 수
while(rs.next()){
for(int i = 1; i <= columnCount; i++){
Object value = rs.getObject(i);
System.out.print(value + "\t");
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(rs != null) try { rs.close(); } catch(Exception e) {} // 값이 들어있는 객체만 뽑기.
if(ps != null) try { ps.close(); } catch(Exception e) {}
if(con != null) try { con.close(); } catch(Exception e) {}
}
}}
Reference
この問題について(Java JDBC), 我々は、より多くの情報をここで見つけました https://velog.io/@susan9905/자바-JDBCテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol