-
데이터를 입력받아 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
'JAVA > DataBase' 카테고리의 다른 글
SQL 문을 하나로 통합해서 DB에 연결하기 (0) 2020.10.23 데이터를 입력받아 DB에 접근하기 - PreparedStatement를 활용 (0) 2020.10.22 SQL의 Delete구문을 이용하기 (0) 2020.10.20 SQL의 Update구문을 이용하기 (0) 2020.10.20 SQL의 Insert구문을 이용해서 데이터 저장하기 (0) 2020.10.19