ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터를 입력받아 DB에 접근하기
    JAVA/DataBase 2020. 10. 20. 22:52

    우선 테이블을 하나 만들도록 한다.

    테이블에 저장할 데이터는 번호(정수), 이름(String), 전화번호(String),메모(String) 이다.

    create table Phonebook(no NUMBER(3), name varchar2(20), phonenum varchar2(20), memo varchar2(100));

    직접 키보드로 데이터들을 입력받아 데이터를 입력,출력,삭제,수정을 해보자.

     

    위의 구문을 통해서 테이블을 하나 만든다.

     

    1. Insert구문

    소스 코드

    더보기
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Scanner;
    
    public class InsertPhonebook {
    	public static void main(String[] args) throws ClassNotFoundException, SQLException {
    		//1.ojdbc6.jar 드라이버를 라이브러리로 포함(bulid path)
    				//2.드라이버 로딩
    				Class.forName("oracle.jdbc.driver.OracleDriver");
    				Connection conn=DriverManager.getConnection(
    				"jdbc:oracle:thin:@localhost:1521:xe","hr","1234");
    				//url,id,password
    				
    				if(conn==null) {System.out.println("DB접속에 실패");}
    				System.out.println("DB접속 성공");
    				
    				//sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기
    				Statement stmt=null;
    				
    				int no;
    				String name,phonenum,memo;
    				Scanner input=new Scanner(System.in);
    				System.out.println("번호 이름 전화번호 메모 입력(2 홍길동 010-1111-1111 없음)");
    				no=input.nextInt();
    				name=input.next();
    				phonenum=input.next();
    				memo=input.next();
    				//System.out.printf("%d %s %s %s\n",no,name,phonenum,memo);				
    		
    				//String sql="insert into Phonebook(no,name,phonenum,memo) values(" + 
    				//no + ",'" + name + "','"+phonenum +"','"+memo+"')";
    				
    				String sql=String.format("insert into Phonebook(no,name,phonenum,memo) values(%d,'%s','%s','%s')",
    						no,name,phonenum,memo);
    				
    				stmt=conn.createStatement();//위의 sql문을 처리하기 위해 객체 생성
    				int result=stmt.executeUpdate(sql);
    				System.out.println(result+"개가 입력되었습니다.");
    				
    				stmt.close();
    				conn.close();
    	}
    }
    
    

     

     

    2. Select 구문

    소스 코드

    더보기
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class SelectPhonebook {
    
    	public static void main(String[] args) throws ClassNotFoundException, SQLException {
    		//1.ojdbc6.jar 드라이버를 라이브러리로 포함(bulid path)
    		//2.드라이버 로딩
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		Connection conn=DriverManager.getConnection(
    		"jdbc:oracle:thin:@localhost:1521:xe","hr","1234");
    		//url,id,password
    		
    		if(conn==null) {System.out.println("DB접속에 실패");}
    		System.out.println("DB접속 성공");
    		
    		//sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기
    		Statement stmt=null;
    		ResultSet rs=null;
    		
    		String sql="select * from phonebook";
    		stmt=conn.createStatement();//위의 sql문을 처리하기 위해 객체 생성
    		rs=stmt.executeQuery(sql);
    		
    		//결과를 가지고 출력하는 방법 알아보기
    		while(rs.next()) {
    			int no=rs.getInt("no");
    			String name=rs.getString("name");
    			String phonenum=rs.getString("phonenum");
    			String memo=rs.getString("memo");
    			
    			System.out.printf("%d %s %s %s\n",no, name, phonenum ,memo);
    		}
    		rs.close();
    		stmt.close();
    		conn.close();
    	}
    }

     

     

    3. Update 구문

    소스 코드

    더보기
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Scanner;
    
    public class UpdatePhonebook {
    	public static void main(String[] args) throws ClassNotFoundException, SQLException 
    	{
    		//1.ojdbc6.jar 드라이버를 라이브러리로 포함(bulid path)
    		//2.드라이버 로딩
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		Connection conn=DriverManager.getConnection(
    		"jdbc:oracle:thin:@localhost:1521:xe","hr","1234");
    		//url,id,password
    		
    		if(conn==null) {System.out.println("DB접속에 실패");}
    		System.out.println("DB접속 성공");
    		
    		//sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기
    		Statement stmt=null;
    		
    		String search_name;
    		String phonenum;
    		
    		Scanner input=new Scanner(System.in);
    		System.out.println("이름과 전화번호를 입력해 변경하세요.");
    		search_name=input.next();
    		phonenum=input.next();
    		
    						
    		String sql=String.format("update Phonebook set phonenum='%s' where name='%s'",
    				phonenum,search_name);
    		
    		stmt=conn.createStatement();//위의 sql문을 처리하기 위해 객체 생성
    		
    		int result=stmt.executeUpdate(sql);
    		System.out.println(result+"개가 수정되었습니다.");
    		
    		stmt.close();
    		conn.close();
    	}
    }

     

     

     

    4. Delete 구문

    소스 코드

    더보기
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Scanner;
    
    public class DeletePhonebook {
    	public static void main(String[] args) throws ClassNotFoundException, SQLException 
    	{
    		//1.ojdbc6.jar 드라이버를 라이브러리로 포함(bulid path)
    		//2.드라이버 로딩
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		Connection conn=DriverManager.getConnection(
    		"jdbc:oracle:thin:@localhost:1521:xe","hr","1234");
    		//url,id,password
    		
    		if(conn==null) {System.out.println("DB접속에 실패");}
    		System.out.println("DB접속 성공");
    		
    		//sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기
    		Statement stmt=null;
    		
    		String name;
    				
    		Scanner input=new Scanner(System.in);
    		System.out.println("이름 입력해 삭제 하세요.");
    		name=input.next();
    				
    		String sql=String.format("delete from Phonebook where name='%s'",name);
    		stmt=conn.createStatement();//위의 sql문을 처리하기 위해 객체 생성
    		int result=stmt.executeUpdate(sql);
    		System.out.println(result+"개가 삭제되었습니다.");
    		
    		stmt.close();
    		conn.close();
    	}
    }

     

     

    5. 이름으로 탐색해서 정보 출력하는 내용으로 부록이다.

    더보기
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Scanner;
    
    public class SearchSelectPhonebook {
    	public static void main(String[] args) throws ClassNotFoundException, SQLException 
    	{
    		//1.ojdbc6.jar 드라이버를 라이브러리로 포함(bulid path)
    		//2.드라이버 로딩
    		Class.forName("oracle.jdbc.driver.OracleDriver");
    		Connection conn=DriverManager.getConnection(
    		"jdbc:oracle:thin:@localhost:1521:xe","hr","1234");
    		//url,id,password
    		
    		if(conn==null) {System.out.println("DB접속에 실패");}
    		System.out.println("DB접속 성공");
    		
    		//sql문을 작성해서 conn객체를 이용하여 데이터 베이스에 데이터 가져오기
    		Statement stmt=null;
    		ResultSet rs=null;
    		
    		String search_name;
    		Scanner input=new Scanner(System.in);
    		System.out.println("찾을 이름을 입력하세요.");
    		search_name=input.next();
    		
    		String sql=String.format("select * from phonebook where name='%s'",search_name);
    		stmt=conn.createStatement();//위의 sql문을 처리하기 위해 객체 생성
    		rs=stmt.executeQuery(sql);
    		
    		//결과를 가지고 출력하는 방법 알아보기
    		while(rs.next()) {
    			int no=rs.getInt("no");
    			String name=rs.getString("name");
    			String phonenum=rs.getString("phonenum");
    			String memo=rs.getString("memo");
    			
    			System.out.printf("%d %s %s %s\n",no, name, phonenum ,memo);
    		}
    		rs.close();
    		stmt.close();
    		conn.close();
    	}
    }

     

     

     

     

    PreparedStatement구문을 이용해서 위의 네 SQL문을 다음과 같이 바꾸어 쓸 수 있다.

    designatedroom87.tistory.com/223

     

    댓글

Designed by Tistory.