이번엔 Scanner로 데이터를 입력받아서
데이터베이스에 insert까지 해보겠습니다.
Scanner sc = new Scanner(System.in);
System.out.println("마트이름?: ");
String name = sc.next();
System.out.println("지역은?: ");
String location = sc.next();
System.out.println("몇 평?: ");
int size = sc.nextInt();
System.out.println("주차장?: ");
int parking = sc.nextInt();
String sql = "insert into MARKET " +
"values(M_SEQ.NEXTVAL, " +
"'"+name + "'"+ "," + "'" +
location + "'" + ","+ size + ","+ parking +
")";
String sql = "insert into MARKET " +
"values(M_SEQ.NEXTVAL, " +
"'"+name + "'"+ "," + "'" +
location + "'" + ","+ size + ","+ parking +
")";
그런데 sql문을 보면 String 자료형에는 작은 따옴표를 붙여야 하기 때문에
매우 지저분합니다.
이는 PreparedStatement에 내장되어 있는 메소드인set 기능을 사용해서 간단히 줄일 수 있습니다.
String sql = "insert into MARKET " +
"values(M_SEQ.NEXTVAL, " +"?,?,?,?" +
")";
아직 값을 모르는 부분을
?로 작성해 놓고
pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setString(2, location);
pstmt.setInt(3, size);
pstmt.setInt(4, parking);
pstmt.set[자료형] (물음표 번호, 넣을 값)
형태로 사용하면 되는데
이때 물음표 번호는 1부터 시작합니다.
그리고 pstmt.executeUpdate는 다룬 데이터의 개수를 반환하는데
이를 사용해서
에러처리를 할 수 있습니다.
if(pstmt.executeUpdate() == 1) {
System.out.println("Insert 성공 !");
}
위 코드는 데이터의 첫번째 삽입이 성공하면
성공했다는 문구를 출력합니다.
'Java > 이론' 카테고리의 다른 글
[Java] DB 연동 후 Update하기 (0) | 2025.01.07 |
---|---|
[Java] DB 연동 후 Select하기 (0) | 2025.01.07 |
[Java] DB연동 후 Insert하기 (0) | 2025.01.07 |
[Java] Database 연동 (1) | 2025.01.07 |
[Java] 컬렉션(Collection) (2) | 2024.12.20 |