본문 바로가기

Java/이론

[Java] ?

이번엔 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