티스토리 뷰
package ex1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DBConnection {
Connection conn=null;
public DBConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); //1.드라이버 로드
conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe", "edu", "1234");
conn.setAutoCommit(false); // 자동 커밋 해제
// 2. Connection 연결객체 생성 /데이터베이스 커넥션에서 오른쪽 마우스 클릭, 프로퍼티에서 가져옴
// System.out.println("OK");
} catch (ClassNotFoundException e) { // 클래스명 체크
e.printStackTrace();
} catch (SQLException e) { //
e.printStackTrace();
}
}
//----------
public void dbClose() {
try {
if(conn != null) conn.close(); // 5번. 연결객체 해제
}catch(SQLException e){}
}
public void insertSQL(String name, String phone, String addr) {
PreparedStatement pstmt = null; // 3. 연결객체
try {
System.out.println("hi");
String sql = "INSERT INTO USERDB(NUM, NAME, PHONE, ADDR) VALUES(NUM_SEQ.NEXTVAL, ?, ?, ?)";
// ctrl + shift + x -> 대문자 (소문자는 y) // 대문자로 써서 SQL 구문과 자바 구문 구별
pstmt=conn.prepareStatement(sql); // conn과 pstmt 연결
pstmt.setString(1, name);
pstmt.setString(2, phone);
pstmt.setString(3, addr);
int n=pstmt.executeUpdate(); // 4. 결과 반환
if(n>0) { //결과가 성공으로 뜨면
conn.commit();
System.out.println(n + "건의 데이터를 추가했습니다");
}
}catch(SQLException e) {
System.out.println("2222");
e.printStackTrace();
try {
conn.rollback();
}catch(SQLException e1){
e1.printStackTrace();
}
}
}
}
package ex1;
public class DBMain {
public static void main(String[] args) {
DBConnection ob=new DBConnection();
int n = Integer.parseInt(args[0]);
if(n==1) {
ob.insertSQL("hong", "010-7777-7777", "제주");
}
ob.dbClose();
}
}
위 파일 JRE System Library에 넣은 후 실행해야 함. 이렇게 하면 오라클과 자바를 연결해준 것.
** conn.setAutoCommit(false); // 자동 커밋 해제 ** 나는 꼭 시작할 때 넣기
package ex1;
public class DBMain {
public static void main(String[] args) {
DBConnection ob=new DBConnection();
int n = Integer.parseInt(args[0]);
if(n==1) {
ob.insertSQL("hong", "010-7777-7777", "제주");
}else if(n==2) {
ob.insertSQL2("min","010-8888-8888","강원");
}
ob.dbClose();
}
}
package ex1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConnection {
Connection conn=null;
public DBConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); //1.드라이버 로드
conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe", "edu", "1234");
conn.setAutoCommit(false); // 자동 커밋 해제
// 2. Connection 연결객체 생성 /데이터베이스 커넥션에서 오른쪽 마우스 클릭, 프로퍼티에서 가져옴
// System.out.println("OK");
} catch (ClassNotFoundException e) { // 클래스명 체크
e.printStackTrace();
} catch (SQLException e) { //
e.printStackTrace();
}
}
//----------추가하기1
public void dbClose() {
try {
if(conn != null) conn.close(); // 5번. 연결객체 해제
}catch(SQLException e){}
}
public void insertSQL(String name, String phone, String addr) {
PreparedStatement pstmt = null; // 3. 연결객체
try {
System.out.println("hi");
String sql = "INSERT INTO USERDB(NUM, NAME, PHONE, ADDR) VALUES(NUM_SEQ.NEXTVAL, ?, ?, ?)";
// ctrl + shift + x -> 대문자 (소문자는 y) // 대문자로 써서 SQL 구문과 자바 구문 구별
pstmt=conn.prepareStatement(sql); // conn과 pstmt 연결
pstmt.setString(1, name);
pstmt.setString(2, phone);
pstmt.setString(3, addr);
int n=pstmt.executeUpdate(); // 4. 결과 반환
if(n>0) { //결과가 성공으로 뜨면
conn.commit();
System.out.println(n + "건의 데이터를 추가했습니다");
}
}catch(SQLException e) {
System.out.println("2222");
e.printStackTrace();
try {
conn.rollback();
}catch(SQLException e1){
e1.printStackTrace();
}
}finally {
try {
if(pstmt != null) pstmt.close(); // 5. 연결객체 해제
}catch(SQLException e1){
e1.printStackTrace();
}
}
}
//추가하기2---------------------------------------------------------
public void insertSQL2(String name, String phone, String addr) {
Statement stmt=null; //3. SQL연결 객체
try {
String sql="INSERT INTO USERDB(NUM,NAME,PHONE,ADDR) VALUES(NUM_SEQ.NEXTVAL,'"
+ name +"','"+ phone +"','" + addr +"')";
// System.out.println("SQL:" + sql);
stmt=conn.createStatement(); // conn과 pstmt 연결
int n=stmt.executeUpdate(sql); // 4. 결과 반환
if(n > 0) {
conn.commit();
System.out.println(n + "건의 데이터를 추가 했습니다");
}
}catch(SQLException e) {
e.printStackTrace();
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}finally {
try {
if(stmt != null) stmt.close(); // 5.연결객체해제
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
댓글