학원/JDBC
10/21 26-7( InsertSQL .statement )
도원결의
2022. 10. 23. 17:41
연결을 넘어서
이번엔 사용자에게 값을 받아서 입력하고 출력까지 해 볼 거임!
public class InsertSQL {
private Connection conn;
private Statement stmt;
private ResultSet rs; // 결과값도 가져올거얌
public InsertSQL(){ // 생성자에서 오라클 연결
try{
Class.forName("oracle.jdbc.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","kosmo","kosmo");
}
catch(ClassNotFoundException e){
System.out.println("드라이버 클래스가 없음");
}
catch(SQLException e) {
System.out.println("데이터베이스 연결실패");
}
}
private void execute(){ // 쿼리실행 출력 메소드
try{
stmt = conn.createStatement(); // 객체생성
while(true){
try{
String sql = "INSERT INTO member VALUES('"+getvalue("아이디").toString+"',
'"+getvalue("비밀번호").toString+"',
'"+getvalue("이름").toString+"',
SYSDATE)";
int affected = stmt.excuteUpdate(sql);
System.out.println(affected +"행이 입력되었습니다."); // 여기까진 INSERT문 쿼리
Stirng sql2 = "SELECT * FROM member";
rs = stmt.executeQuery(sql2);
while(rs.next()) {
String id = rs.getString(1);
int pass =rs.getInt("password");
String name = rs.getString("name");
Date today = rs.getDate(4);
System.out.println(String.format("%-5s%-11s%-10s%-10s",
id,pass,name,today));
} // 여기까진 SELECT문 쿼리
}
catch(SQLException e) {
System.out.println("쿼리문 실행 오류:"+e.getMessage());
}
catch(NullPointerException e) {
System.out.println("오라클 데이터와 연동 끊어짐");
break; // 끝내기
}
}
}
catch(SQLException e){
System.out.println("statement 객체생성 실패");
}
finally{
close();
}
}
private void close() {
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
if (rs != null) rs.close();
}catch(SQLException e) {}
}/////
private static Scanner sc = new Scanner(System.in);
public static String getValue(String message) {
System.out.println(message+"(을)를 입력하세요,종료는 exit ");
String value = sc.nextLine();
if("exit".equalsIgnoreCase(value)) {
return null;
}
return value;
}//////
public static void main(String[] args) {
new InsertSQL().execute();
}////main
}///class