Java createStatement()

2023. 2. 7. 11:55Java

프로젝트 내 src 내 oracle.db 패키지 내 OracleConnect.java

package oracle.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class OracleConnect {
	// 다른 클래스에서는 new 로 생성할수 없다
	private OracleConnect() {
		// 오라클 드라이버 클래스 실행
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println("오라클 드라이버가 없어요:" + e.getMessage());
		}
	}

	public static OracleConnect getInstance() {
		return new OracleConnect();
	}

	// db 연결해서 성공한 커넥션 반환하는 메서드
	public Connection getConnection() {
		Connection conn = null;
		String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
		try {
			conn = DriverManager.getConnection(url, "사용자이름", "a1234");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println("오라클 서버 연결 실패:" + e.getMessage());
		}

		return conn;
	}

	// 총 4개의 dbClose 를 만듬
	public void dbClose(ResultSet rs, Statement stmt, Connection conn) {
		try {
			if (rs != null)
				rs.close();
			if (stmt != null)
				stmt.close();
			if (conn != null)
				conn.close();
		} catch (SQLException e) {

		}
	}

	public void dbClose(Statement stmt, Connection conn) {
		try {
			if (stmt != null)
				stmt.close();
			if (conn != null)
				conn.close();
		} catch (SQLException e) {
		}
	}

	public void dbClose(ResultSet rs, PreparedStatement pstmt, Connection conn) {
		try {
			if (rs != null)
				rs.close();
			if (pstmt != null)
				pstmt.close();
			if (conn != null)
				conn.close();
		} catch (SQLException e) {

		}
	}

	public void dbClose(PreparedStatement pstmt, Connection conn) {
		try {
			if (pstmt != null)
				pstmt.close();
			if (conn != null)
				conn.close();
		} catch (SQLException e) {

		}
	}
}

프로젝트 내 src 내 javabasic 패키지 내 Ex2PersonInsert.java

package javabasic;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

import oracle.db.OracleConnect;

public class Ex2PersonInsert {
	OracleConnect connect;

	public Ex2PersonInsert() {
		connect = OracleConnect.getInstance();
	}

	public void personInsert() {
		Scanner sc = new Scanner(System.in);
		String name, blood;
		int java, spring;
		double height;
		System.out.println("이름입력");
		name = sc.nextLine();
		System.out.println("혈액형 입력(소문자로)");
		blood = sc.nextLine();
		System.out.println("자바점수입력");
		java = sc.nextInt();
		System.out.println("스프링점수입력");
		spring = sc.nextInt();
		System.out.println("키 입력");
		height = sc.nextDouble();

		String sql = "insert into person2 values (seq_person.nextval,'" + name + "','" + blood + "'," + java + ","
				+ spring + "," + height + ",sysdate)";
		System.out.println(sql);

//		Connection conn=null;
		Connection conn = null;
//		Statement stmt=null;
		Statement stmt = null;

//		conn=connect.getConnection();
		conn = connect.getConnection();

		try {
			stmt = conn.createStatement();
			stmt.execute(sql);
//			System.out.printf("데이타 추가 성공입니다\n");
			System.out.println("데이타 추가 성공!!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println("sql 오류 : " + e.getMessage());
		} finally {
			connect.dbClose(stmt, conn);
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Ex2PersonInsert ex = new Ex2PersonInsert();
		ex.personInsert();
	}

}

실행 결과

이름입력
간수라
혈액형 입력(소문자로)
a
자바점수입력
22
스프링점수입력
15
키 입력
167.999
insert into person2 values (seq_person.nextval,'간수라','a',22,15,167.999,sysdate)
데이타 추가 성공!!

Statement java.sql.Connection.createStatement() throws SQLException

createStatement() 메서드는 

데이타베이스로 SQL 문을 보내기 위해서 한개의 Statement 객체를 만든다.

 

'Java' 카테고리의 다른 글

Java ParseException  (0) 2023.02.07
Java PreparedStatement  (0) 2023.02.07
Java executeUpdate(String sql)  (0) 2023.02.07
Java Statement class  (0) 2023.02.06
Java getConnection(String url, String user, String password)  (0) 2023.02.06