DB 7일차(java, sql 연결 insert)

2022. 12. 15. 12:33코딩배움일지/DataBase

1건 입력

package main.java.com.study.jdbc.main.dml;

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

import main.java.com.study.jdbc.util.DBConnection;

public class jdbcInsert1 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.print("등록할 아이디 입력: ");
		String username = scanner.nextLine();
		
		Connection con = DBConnection.getInstance().getConnection();
		String sql = " insert into user_mst values(0,?)";
		try {
			PreparedStatement pstmt = con.prepareStatement(sql);
			pstmt.setString(1, username);
			int successCount = pstmt.executeUpdate(); /* 여기에 표시한다.*/
			System.out.println("데이터 " + successCount + "건 등록완료!"); /*몇 행이 들어가는 지*/
			
		} catch (SQLException e) {			
			e.printStackTrace();
		}
		
	}

}

 

 

int successCount = pstmt.executeUpdate(); /* 여기에 표시한다.*/
			System.out.println("데이터 " + successCount + "건 등록완료!"); /*몇 행이 들어가는 지*/

 

 

새로 입력된다.

 

다중입력

 

package main.java.com.study.jdbc.main.dml;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class JdbcInsert2 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		List<String> usernameList = new ArrayList<>();
		
		while(true) {		
			System.out.print("등록할 아이디 입력: ");
			usernameList.add(scanner.nextLine());
			System.out.print("아이디를 추가로 등록하시겠습니까?(Y/y, 취소하려면 아무키나 입력하세요.)");
			if(!"yY".contains(scanner.nextLine().substring(0, 1))) { /*0번 인덱스에서 1번 전까지*/
				break;
			}
		}
		System.out.println(usernameList);
		
	}

}

substring 에서 isBlank 로 바꿈

package main.java.com.study.jdbc.main.dml;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class JdbcInsert2 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		List<String> usernameList = new ArrayList<>();
		
		while(true) {		
			System.out.print("등록할 아이디 입력: ");
			usernameList.add(scanner.nextLine()); /*입력 받고*/
			System.out.print("아이디를 추가로 등록하시겠습니까?(Y/y, 취소하려면 아무키나 입력하세요.)");
			String selected = scanner.nextLine();
			if(!"yY".contains(selected.isBlank() ?"n" : selected)) { 
				break;
			}
		}
		
		System.out.println(usernameList);
		
	}
}

 

--------------------------확인하기-------------------------------

Connection con = DBConnection.getInstance().getConnection();
		String prefixSql = "insert int user_mst values";
		String valuesBody = ""; /*반복될 수 있게 만들자*/
		String suffixSql = ";";
		
		for(int i = 0; i< usernameList.size(); i++) {
			valuesBody += "(0, ?)";
			if(i < usernameList.size()-1) { /*i 가 작다면*/
				valuesBody += ", ";
			}
		}
		System.out.println(valuesBody);
		
		
		try {
			PreparedStatement pstmt = con.prepareStatement(prefixSql + valuesBody + suffixSql);
			
		} catch (SQLException e) {
			
			e.printStackTrace();
		}

 

package main.java.com.study.jdbc.main.dml;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import main.java.com.study.jdbc.util.DBConnection;

public class JdbcInsert2 {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		List<String> usernameList = new ArrayList<>();
		
		while(true) {		
			System.out.print("등록할 아이디 입력: ");
			usernameList.add(scanner.nextLine()); /*입력 받고*/
			System.out.print("아이디를 추가로 등록하시겠습니까?(Y/y, 취소하려면 아무키나 입력하세요.)");
			String selected = scanner.nextLine();
			if(!"yY".contains(selected.isBlank() ?"n" : selected)) { /*0번 인덱스에서 1번 전까지*/
				break;
			}
		}
		Connection con = DBConnection.getInstance().getConnection();
		String prefixSql = "insert into user_mst values";
		String valuesBody = ""; /*반복될 수 있게 만들자*/
		String suffixSql = ";";
		
		for(int i = 0; i < usernameList.size(); i++) {
			valuesBody += "(0, ?)";
			if(i < usernameList.size()-1) { /*i 가 작다면*/
				valuesBody += ", ";
			}
		}
//		System.out.println(valuesBody);
		
		
		try {
			PreparedStatement pstmt = con.prepareStatement(prefixSql + valuesBody + suffixSql);
			for(int i = 0; i <usernameList.size(); i++) {
				pstmt.setString(i + 1, usernameList.get(i));
			}
			int successCount = pstmt.executeUpdate();
			System.out.println(successCount + "건 등록완료!");
		} catch (SQLException e) {
			
			e.printStackTrace();
		}	
		
	}
}

 

완성전
완성후

'코딩배움일지 > DataBase' 카테고리의 다른 글

DB 8일차 1(DCL)  (0) 2022.12.16
DB 7일차 (update)  (0) 2022.12.15
DB 7일차 2-1(조건을 주고싶을때)  (0) 2022.12.15
DB 7일차 2()  (0) 2022.12.15
DB 7일차(java, sql 연결 select)  (0) 2022.12.15