[JDBC] JDBC
26477 ワード
🍋 JDBC(Java Database Connectivity)
JDBCは、Javaからデータベースへの接続を許可するJava APIである.
🟡 JDBCプログラミングの全体的な流れ
1.実行中のDB
使用するDBを実行しています.これは、ウィンドウ検索ウィンドウで「サービス」を検索し、データベースを検索して実行するかどうかを知ることができます.
2.ドライバマネージャを使用して、特定のデータベースに接続されたオブジェクトを作成します.
public Connection getConnection() throws SQLException {
return DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe","ora01","oracle_4U");
}
Statement stmt = null;
stmt = con.createStatement(); //oracle db에 접속된
//Connection객체로 부터 획득
4.sql文の実行(メソッド呼び出し) ResultSet rset = null;
rset = stmt.executeQuery("select * from dept");
5.利用結果 while(rset.next()) {
System.out.println(rset.getInt("deptno") + "/"
+ rset.getString("dname") + "/"
+ rset.getString("loc"));
}
6.資源返還public void close(Connection con, Statement stmt, ResultSet rset) {
try {
if (rset != null) {
rset.close();
rset = null;
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void close(Connection con, Statement stmt) {
try {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
❗リソースの戻り順が重要❗️ResultSet → Statment → Connection
🟡 dept table crudタスク
public void deleteOne() {
Connection con = null;
Statement stmt = null;
try {
con = getConnection();
stmt = con.createStatement();
int result = stmt.executeUpdate
("DELETE FROM dept WHERE deptno=60");
if (result == 1) {
System.out.println("삭제 성공");
} else {
System.out.println("삭제 실패");
}
if (stmt != null) {
stmt.close();
stmt = null;
}
if (con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateOne() {
Connection con = null;
Statement stmt = null;
try {
con = getConnection();
stmt = con.createStatement();
//executeUpdate : insert/update/delete sql문장 처리 메소드
int result = stmt.executeUpdate
("UPDATE DEPT SET loc='평양' WHERE deptno=60");
if (result == 1) {
System.out.println("수정 성공");
} else {
System.out.println("수정 실패");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(con, stmt);
}
}
public void insertOne() {
Connection con = null;
Statement stmt = null;
try {
con = getConnection();
stmt = con.createStatement();
//executeUpdate : insert/update/delete sql문장 처리 메소드
int result = stmt.executeUpdate("insert into dept values
(60, '교육부', '남부')");
if (result == 1) {
System.out.println("저장 성공");
} else {
System.out.println("deptno 중복 저장 불허");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(con, stmt, null);
}
public void selectOne() {
Connection con = null;
Statement stmt = null;
ResultSet rset = null;
try {
con = getConnection();
stmt = con.createStatement();
rset = stmt.executeQuery("select * from dept where
deptno=10");
if(rset.next()) {
System.out.println(rset.getInt("deptno") + "/"
+ rset.getString("dname") + "/"
+ rset.getString("loc"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(con, stmt, rset);
}
}
Reference
この問題について([JDBC] JDBC), 我々は、より多くの情報をここで見つけました https://velog.io/@bingbong-party/JDBC-JDBCテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol