JDBC insert, delete 질문.
-
게시물 수정 , 삭제는 로그인 필요
자바 데이터베이스를 배우면서 한 데이터 베이스의 테이블에 정보를 담는 예제를 해보는 중입니다. primary key로 id를 쓰고 title, genre, year로 설정했는데
테이블에서 데이터를 삭제할 때, id를 기준으로
int delete_id = sc.nextInt();
String s = "delete from Movies where id like ";
s += delete_id;
stmt.excuteUpdate(s);
이런 식으로 진행했고, 추가할 때는
String s = "INSERT INTO Movies (title, genre, year) VALUES ";
s += "('" + title + "','" + genre + "','" + year+ "')";
stmt.executeUpdate(s);
이렇게 진행하였습니다.
이때 문제가 id를 통해 삭제를 하고 새로운 데이터를 추가할 때, 원래 데이터의 id가 1,2,3 이 있었다면 추가 후 아이디가 5로 나오는 겁니다. 역시 또 5를 삭제 후 데이터를 추가하면 6으로 나옵니다. id가 삭제 한 뒤에 추가 하더라도 순차적으로 나왔으면 합니다.
Connection 부분은 제외한 본문 입니다. 아직 많이 부족하여 지저분하다고 느껴지실 수 있으실 것 같습니다..
id => INTAUTO_INCREMENT title => varchar(255) genre => varchar(255) year => INT
PRIMARY KEY (id)
private static void addMovie(String title, String genre, int year
) throws SQLException {
Connection con = makeConnection();
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Movies");
stmt = con.createStatement();
String s = "INSERT INTO Movies (title, genre, year) VALUES ";
s += "('" + title + "','" + genre + "','" + year+ "')";
stmt.executeUpdate(s);
con.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
System.exit(0);
}
}
public static void main(String arg[]) throws SQLException {
Scanner sc = new Scanner(System.in);
while(true) {
int ans = sc.nextInt();
Connection con = makeConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM Movies");
if (ans == 1) {
while (rs.next()) {
int id = rs.getInt("id");
String title = rs.getString("title");
String genre = rs.getString("genre");
String year = rs.getString("year");
System.out.println(id + " " + title+" / "+genre+" / "+year);
}
con.close();
stmt.close();
}
else if (ans ==2) {
System.out.println("제목, 장르, 년도 순으로 입력.");
String ntitle = sc.next();
String ngenre = sc.next();
int nyear = sc.nextInt();
addMovie(ntitle, ngenre, nyear);
stmt.close();
con.close();
}
else if (ans == 3) {
System.out.println("삭제하고자 하는 id입력.");
int did = sc.nextInt();
String s = "delete from Movies where id like ";
s+= did;
stmt.executeUpdate(s);
stmt.close();
}
else if (ans == 4) {
con.close();
System.out.println("종료합니다.");
break;
}
}
}
}
#jdbc insert 여러개 #jdbc insert into #jdbc insert query #jdbc insert auto increment id #jdbc insert bulk #jdbc insert example #jdbc insert json #jdbc insert blob #jdbc insert batch #jdbc insert or update