๐ปStatement ๊ฐ์ฒด
- Statement ๊ฐ์ฒด๋ SQL ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ธฐ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
- ์ด ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL ๋ฌธ์ ์ ๋ฌํ๊ณ  ์คํํ  ์ ์๋ค. 
์ข ๋ฅ
Statement ์ธํฐํ์ด์ค๋ ๊ธฐ๋ณธ์ ์ผ๋ก SQL ๋ฌธ์ ์คํํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, ์ด๋ฅผ ๊ตฌํํ ์ธ ๊ฐ์ง ํ์ ์ธํฐํ์ด์ค๊ฐ ์๋ค
1. Statement (๊ธฐ๋ณธํ)
- ์ ์ ์ธ SQL ๋ฌธ์ ์คํํ๋ค.
- ๋งค๊ฐ ๋ณ์ ์ฒ๋ฆฌ๊ฐ ๊ท์ฐฎ๋ค.
- ์์ ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด ๋ฎ๋ค.
2. PreparedStatement
- ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ SQL ๋ฌธ์ ์คํํ๋ค. (SQL Injection์ ๋ฐฉ์งํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค)
- ๊ธฐ๋ฅ์ด ๋ ํฅ์๋ ๊ฐ๋ํ์ด๋ค.
- Statement ์์ ๋งค๊ฐ ๋ณ์ ์ฒ๋ฆฌ๋ฅผ ํนํํ๋ค.
- ์์ ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด ๋๋ค.
3. CallableStatement
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ฅ ํ๋ก์์ ๋ฅผ ํธ์ถํ๋ค.
- ๊ธฐ๋ฅ์ด ๋ ํฅ์๋ ๊ฐ๋ํ์ด๋ค.
- ํ๋ก์์  ํธ์ถ ์ ์ฉ์ด๋ค.
SQL ์ฟผ๋ฆฌ ์คํ ๋ฐฉ๋ฒ
- ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ์ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ์ ์ฒ๋ฆฌ๋ ํ์ฐํ ๋ค๋ฅด๋ค.
- select ์ ๋ก ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์์์ผํ๋ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ executeQuery() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ResultSet ๊ฐ์ฒด๋ก ๋ฐ์์จ๋ค.
- ๊ทธ์ธ ๋ฐํ๊ฐ(๊ฒฐ๊ณผ๊ฐ)์ด ์๋ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ executeUpdate() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ์ ๋ฐ์ดํธ๋ ํ์ ์๋ฅผ ๋ฐ์์จ๋ค.
- execute(): ์คํ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ true ๋๋ false๋ฅผ ๋ฐํ๋ค. (SELECT ๋ฌธ ์ด์ธ์ ์ฟผ๋ฆฌ์ ์ฌ์ฉ)
- executeQuery(): ResultSet ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. (SELECT ๋ฌธ์ ์ฌ์ฉ)
- executeUpdate(): ์ ๋ฐ์ดํธ๋ ํ์ ์๋ฅผ ๋ฐํํ๋ค. (INSERT, UPDATE, DELETE ๋ฑ์ ์ฌ์ฉ)
๋ฐ์ธ๋ฉ: 
Statement ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ  ๋ ํ๋ผ๋ฏธํฐ ๊ฐ์ ์ง์  ๋ฌธ์์ด๋ก ํฌํจ์์ผ SQL ๋ฌธ์ ๋ง๋ค๊ฒ ๋๋๋ฐ, ์ด๋ ๋ณด์ ๋ฌธ์ ์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ  ์ ์์ต๋๋ค.
๐ปStatement ์์ 
๋จผ์  ๊ธฐ๋ณธ์ผ๋ก ํ์ํ ๋ฐ์ดํฐ ์์ฑ๊ณผ ๊ธฐ๋ณธ ํ์ ์์ฑํ๋ค.
๋ฐ์ดํฐ ์์ฑ
SQL Developer ํด์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ค.
create table tblAddress (
    seq number primary key,
    name varchar2(30) not null,
    age number not null,
    gender char(1) not null,
    address varchar2(300) not null,
    regdate date default sysdate not null
);
create sequence seqAddress;
insert into tblAddress (seq, name, age, gender, address, regdate) values (seqAddress.nextVal, 'ํ๊ธธ๋', 20, 'm', '์์ธ์ ๊ฐ๋จ๊ตฌ', default);
select * from tblAddress;
commit;
์๋ฐ ๊ธฐ๋ณธ ํ
	private static void m2() {
		
		Connection conn = null;
		Statement stat = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
            		//์ฝ๋ ์์ฑ
			
			stat.close();
			conn.close();
			
		} catch(Exception e) {
			e.printStackTrace();
		}
	}ํญ์ ์ด ์ฝ๋๋ ๊ธฐ๋ณธ์ผ๋ก ๋ค์ด๊ฐ๋ ๋ด์ฉ์ผ๋ก์จ ์ธ์๋๋ ๊ฒ์ด ์ข๋ค.
DB์ ์ํธ์์ฉํ๊ธฐ
- ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ์ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ์ ์ฒ๋ฆฌ๋ ํ์ฐํ ๋ค๋ฅด๋ค.
- select ์ ๋ก ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์์์ผํ๋ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ, executeQuery() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ResultSet ๊ฐ์ฒด๋ก ๋ฐ์์จ๋ค.
- ๊ทธ์ธ ๋ฐํ๊ฐ(๊ฒฐ๊ณผ๊ฐ)์ด ์๋ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ, executeUpdate() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ณ ์ ๋ฐ์ดํธ๋ ํ์ ์๋ฅผ ๋ฐ์์จ๋ค.
๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ
1. insert
insert ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด๊ธฐ์ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ๋ก ์ฒ๋ฆฌํ๋ค
SQL๋ฌธ ์์ฑ
String sql = "insert into tblAddress (seq, name, age, gender, address, regdate) values (seqAddress.nextVal, '์ด์์ ', 25, 'm', '์์ธ์ ๊ฐ๋จ๊ตฌ', default)";SQL๋ฌธ ๊ทธ๋๋ก ๋ฌธ์์ด ์์ ์์ฑํ๋ค
๋จ, ์๋ฐ์ฝ๋๋ก ์์ฑ ์ ์ฃผ์ํด์ผํ๋ ์ ์ sql ์์ ์ธ๋ฏธ์ฝ๋ก ์ ์ ์ผ๋ฉด ์๋๋ค!
'ORA-00911: invalid character' ์๋ฌ๊ฐ ๋ฐ์ ํ๋ค๋ฉด, sql ๋ฌธ์ ์์ธํ ๋ค์ฌ๋ค ๋ณธ๋ค.
JDBC๋ ์ฟผ๋ฆฌ๋ฌธ์ ํ๋ฒ์ ํ๋์ ๋ฌธ์ฅ๋ง ์ฝ์ ํ ์ ์๊ธฐ๋๋ฌธ์ ์ธ๋ฏธ์ฝ๋ก ์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฌธ์์ ๋ง๋๋ ๊ฒ์ ์๋๋ค.
Statement ๊ฐ์ฒด ์์ฑ
sql๋ฌธ์ ์คํํ๊ธฐ ์ํ Statement ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
stat = conn.createStatement();
๊ฒฐ๊ณผ๊ฐ ์ ์ฅ
sql๋ฌธ ์คํ์ด ์ ๋๋ก ๋์๋์ง executeUpdate() ๋ฉ์๋๋ก ์ ๋ฐ์ดํธ๋ ํ์ ์๋ฅผ ๋ฐํ๋ฐ๋๋ค.
int result = stat.executeUpdate(sql);
ํ์ธ
์ ๋ฐ์ดํธ๋ ํ์ ์๊ฐ 1์ด๋ฉด sql๋ฌธ ์คํ์ด ์ ๋๋ก ๋์๋ค๊ณ ๋ณผ ์ ์๊ณ , 1์ด ์๋๋ฉด ์คํจํ๋ค๊ณ ๋ณธ๋ค.
if (result == 1) {
	System.out.println("์ฝ์
 ์ฑ๊ณต");
} else {
	System.out.println("์ฝ์
 ์คํจ");
}
์ ์ฒด ์ฝ๋
	private static void m1() {
		
		Connection conn = null;
		Statement stat = null;
				
		try {
			
			conn = DBUtil.open();
			
			if (!conn.isClosed()) {
				
				String sql = "insert into tblAddress (seq, name, age, gender, address, regdate) values (seqAddress.nextVal, '์ด์์ ', 25, 'm', '์์ธ์ ๊ฐ๋จ๊ตฌ', default)";
				
				stat = conn.createStatement();
				
				int result = stat.executeUpdate(sql);
				
				if (result == 1) {
					System.out.println("์ฝ์
 ์ฑ๊ณต");
				} else {
					System.out.println("์ฝ์
 ์คํจ");
				}
				
				stat.close();
				conn.close();
				
			} else {
				System.out.println("DB ์ ์ ์คํจ");
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
sql developer์ ์๋ฐ๋ก insert ํ๋ ๊ฑด ๋๊ฐ์ ์ฟผ๋ฆฌ์ด๋ค. ๊ตฌ๋ณํ ์ ์๋ ์ ๋๋ก ์ฐจ์ด์ ์ด ์๋ค.
2. update
update ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ๊ฒ์ด๊ธฐ์ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ๋ก ์ฒ๋ฆฌํ๋ค.
๋๋ถ๋ถ์ ์ฝ๋๋ insert ํ ๋์ ๋์ผํ๋ค.
private static void m2() {
		
		Connection conn = null;
		Statement stat = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
			String sql = "update tblAddress set age = age + 1";
			
			int result = stat.executeUpdate(sql);
			
			if (result > 0) {
				System.out.println("์์  ์ฑ๊ณต");
			} else {
				System.out.println("์์  ์คํจ");
			}
			
			stat.close();
			conn.close();
			
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
3. delete
delete ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด๊ธฐ์ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ๋ก ์ฒ๋ฆฌํ๋ค.
๋๋ถ๋ถ์ ์ฝ๋๋ insert ํ ๋์ ๋์ผํ๋ค.
private static void m3() {
		
		Connection conn = null;
		Statement stat = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
			String sql = "delete from tblAddress where seq = 1";
			
			int result = stat.executeUpdate(sql);
			
			if (result > 0) {
				System.out.println("์ญ์  ์ฑ๊ณต");
			} else {
				System.out.println("์ญ์  ์คํจ");
			}
			
			stat.close();
			conn.close();
			
		} catch(Exception e) {
			e.printStackTrace();
		}
	}
4. create
DDL์ ์๋์ง๋ง create ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด๊ธฐ์ ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ๋ก ์ฒ๋ฆฌํ๋ค.
๋๋ถ๋ถ์ ์ฝ๋๋ insert ํ ๋์ ๋์ผํ๋ค.
private static void m4() {
		
		Connection conn = null;
		Statement stat = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
			String sql = "create table tblAddress (\r\n"
					+ "    seq number primary key,\r\n"
					+ "    name varchar2(30) not null,\r\n"
					+ "    age number not null,\r\n"
					+ "    gender char(1) not null,\r\n"
					+ "    address varchar2(300) not null,\r\n"
					+ "    regdate date default sysdate not null\r\n"
					+ ")";
			
			int result = stat.executeUpdate(sql);
			
			stat.close();
			conn.close();
			
		} catch(Exception e) {
			e.printStackTrace();
		}
	}ํ ์ด๋ธ ์์ฑ์ ๋ผ์ธ์ด ์ฝ์ ๋๋ ๊ฒ์ด ์๋๋ผ result๋ 0์ด๋ค.
๊ทธ๋์ ํ ์ด๋ธ ์์ฑ์ด ์ ๋์๋์ง ์ด์ฐจํผ 0์ด๊ธฐ ๋๋ฌธ์ executeUpdate๋ก ํ์ธํ ์ ๊ฐ ์๋ค.
5. ์ฌ์ฉ์์๊ฒ ์ ๋ ฅ๋ฐ์ ๊ฐ์ผ๋ก insert
์ฌ์ฉ์์๊ฒ ๊ฐ์ ์ ๋ ฅ๋ฐ์ insertํ๋ ๊ฒ์ด ๊ธฐ์กด insert๋ฌธ๊ณผ ๋ค๋ฅธ ์ ์ sql๋ฌธ์ ์ ๋ ฅ๋ฐ์ ๊ฐ์ ๋ฃ๋ ๊ฒ์ด๋ค.
String.format() ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ sql๋ฌธ์ ๊ฐ์ ๋ฃ๋๋ค.
๊ทธ ์ธ ๋ค๋ฅธ ์ ์ ์๋ค.
String sql = String.format("insert into tblAddress (seq, name, age, gender, address, regdate) values "
						+ "(seqAddress.nextVal, '%s', %s, '%s', '%s', default)", name, age, gender, address);
	private static void m5() {
		
		Scanner scan = new Scanner(System.in);
		String name = "";
		String age = "";
		String gender = "";
		String address = "";
		
		Connection conn = null;
		Statement stat = null;
				
		try {
			
			System.out.print("์ด๋ฆ: ");
			name = scan.nextLine();
			
			System.out.print("๋์ด: ");
			age = scan.nextLine();
			
			System.out.print("์ฑ๋ณ(m,f): ");
			gender = scan.nextLine();
			
			System.out.print("์ฃผ์: ");
			address = scan.nextLine();
			
			conn = DBUtil.open();
			
			if (!conn.isClosed()) {
				System.out.println("DB ์ ์ ์ฑ๊ณต");
				
				String sql = String.format("insert into tblAddress (seq, name, age, gender, address, regdate) values "
						+ "(seqAddress.nextVal, '%s', %s, '%s', '%s', default)", name, age, gender, address);
				
				stat = conn.createStatement();
				int result = stat.executeUpdate(sql);
				
				if (result == 1) {
					System.out.println("์ฝ์
 ์ฑ๊ณต");
				} else {
					System.out.println("์ฝ์
 ์คํจ");
				}
				
				stat.close();
				conn.close();
				
			} else {
				System.out.println("DB ์ ์ ์คํจ");
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ(select ๋ฌธ)
- ๋ฐํ๊ฐ์ด ์๋ ์ฟผ๋ฆฌ๋ ๋ค ๊ฐ์ง ์ข ๋ฅ๊ฐ ๋์ฌ ์ ์๋ค.
- 1. ๋จ์ผ๊ฐ ๋ฐํ(1ํ 1์ด) - ex) ์ง๊ณํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ ์ ์ฒด ํ์ ์กฐํํ ๋
- 2. ๋ค์ค๊ฐ ๋ฐํ(1ํ n์ด) - ex) ํน์  ํ ์ฌ๋์ ๋ํ ์ ๋ณด๋ฅผ ์กฐํํ ๋
- 3. ๋ค์ค๊ฐ ๋ฐํ(nํ 1์ด) - ex) ๋ชจ๋ ์ง์์ ์ด๋ฆ๋ฅผ ์กฐํํ ๋
- 4. ๋ค์ค๊ฐ ๋ฐํ(nํ n์ด) - ex) ๋ชจ๋ ์ง์์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์กฐํํ ๋
1. ๋จ์ผ๊ฐ ๋ฐํ(1ํ 1์ด)
ํ ์ด๋ธ ์ ์ฒด ํ์ ๊ฐ์ ์กฐํํ๋ค.
ResultSet ์์ฑ
๊ฒฐ๊ณผํ ์ด๋ธ์ ๋ฐ์์ฃผ๋ ํด๋์ค๋ฅผ ์์ฑํด์ค๋ค.
ResultSet rs = null;
Statement ๊ฐ์ฒด ์์ฑ
sql๋ฌธ์ ์คํํ๊ธฐ ์ํ Statement ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค.
stat = conn.createStatement();
SQL๋ฌธ ์์ฑ
String sql = "select count(*) as cnt from tblAddress";
๋ฐํ๊ฐ ์ ์ฅ
executeQuery() ๋ก ResultSet๋ฅผ ๋ฐํ๋ฐ์ ์์์ ์์ฑํ ResultSet ๋ณ์์ ์ ์ฅํ๋ค.
rs = stat.executeQuery(sql);
ํ์นธ ์ ์งํ๊ธฐ
rs.next();ResultSet์ Interator, ํฅ์๋ for, ์คํธ๋ฆผ, ์ปค์์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ถ๋ฌ์จ๋ค.
์ปค์๊ฐ BOF(ํค๋)์ ์์นํ ๊ฒ์ ํ ์นธ ์ ์งํ์ฌ ์ค์  ๋ฐ์ดํฐ๊ฐ ์๋ ๋ ์ฝ๋๋ก ์ด๋ํ๋ค.
rs.getXXX()
ํ์ฌ ์ปค์๊ฐ ๊ฐ๋ฅดํค๊ณ ์๋ ๋ ์ฝ๋์ ์ํ๋ ์ปฌ๋ผ์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ฉด ์ค๋ ์ ๊ทผ ๋ฐฉ๋ฒ์ด๋ค.
getInt ์ getString ์ด ์กด์ฌํ๋ค.
getInt(n)๋ n๋ฒ์งธ ์ปฌ๋ผ๊ฐ์ ์ซ์๋ก ๋ฐํํ๋ค. ์ธ๋ฑ์ค๋ 1๋ถํฐ ์์ํ๋ค.
getString("์ปฌ๋ผ๋ช
")๋ ์กฐํํ  ํน์  ์ปฌ๋ผ๋ช
์ ๋งค๊ฐ๋ณ์ ์ฌ์ฉํ์ฌ ์ปฌ๋ผ๊ฐ์ ๋ฌธ์์ด๋ก ๋ฐํํ๋ค. ์ปฌ๋ผ์ ์ด๋ฆ์ด ๊ธด ๊ฒฝ์ฐ ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๊ณ , ์๋ฌ๊ฐ ๋  ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฏ๋ก Alias๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๊ฒฐํ๊ฒ ๋ง๋ค์ด์ค๋ค.
์ ๋๊ฐ์ง ๋ฐฉ๋ฒ ์ค์์ getString์ด ๊ฐ๋ ์ฑ์ด ๋์์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
int count = rs.getInt("cnt");
์์ ํด์ 
์์ฑํ ์ญ์์ผ๋ก ํด์ ํ๋ค.
rs.close();
stat.close();
conn.close();
์ ์ฒด ์ฝ๋
	private static void m6() {
    
		Connection conn = null;
		Statement stat = null;
		ResultSet rs = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
			String sql = "select count(*) as cnt from tblAddress";
			
			rs = stat.executeQuery(sql);
			
			rs.next(); 
			
			int count = rs.getInt("cnt");
			
			System.out.println(count);
			
			rs.close();
			stat.close();
			conn.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
2. ๋ค์ค๊ฐ ๋ฐํ(1ํ n์ด)
์กฐํํ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ทธ ์ฌ๋์ ์ ๋ณด๋ฅผ ์กฐํํ๋ค.
์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ๋ฒํธ๊ฐ ์๋ ๋ฐ์ดํฐ์ธ์ง ์กฐ๊ฑด๋ฌธ์ผ๋ก ํ์ธํ๊ณ ์๋ค๋ฉด n๊ฐ์ ์ด๋งํผ getString์ผ๋ก ์ ๊ทผํ์ฌ ์ถ๋ ฅํ๋ค.
	private static void m7() {
		
		Scanner scan = new Scanner(System.in);
		
		System.out.print("๋ฒํธ: ");
		String seq = scan.nextLine();
		
		Connection conn = null;
		Statement stat = null;
		ResultSet rs = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
			String sql = "select * from tblAddress where seq = " + seq;
			
			rs = stat.executeQuery(sql);
			
			//๊ฒฐ๊ณผ๋ฐ์ดํฐ๊ฐ ์์์๋ ์๊ณ  ์์์๋ ์์
			if (rs.next()) {
				
				System.out.println("๋ฒํธ: " + rs.getString("seq"));
				System.out.println("์ด๋ฆ: " + rs.getString("name"));
				System.out.println("๋์ด: " + rs.getString("age"));
				System.out.println("์ฃผ์: " + rs.getString("address"));
				
			} else {
				System.out.printf("์
๋ ฅํ %s๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์์ต๋๋ค.\n", seq);
			}
			
			rs.close();
			stat.close();
			conn.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
3. ๋ค์ค๊ฐ ๋ฐํ(nํ 1์ด)
ํ ์ด๋ธ์์ ๋ชจ๋ "name" ์ด์ ์กฐํํ๋ค.
์ปค์๊ฐ ์กด์ฌํ ๋๊น์ง ์ถ๋ ฅํ๋ค.
	private static void m8() {
		
		Connection conn = null;
		Statement stat = null;
		ResultSet rs = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
			String sql = "select name from tblAddress";
			
			rs = stat.executeQuery(sql);
			
			while(rs.next()) {
				System.out.println(rs.getString("name"));
			}
			rs.close();
			stat.close();
			conn.close();
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
4. ๋ค์ค๊ฐ ๋ฐํ(nํ n์ด)
1ํ n์ด, nํ 1์ด์์ ์์ฑํ ์ฝ๋๋ฅผ ํฉ์ณ์ ์ฌ์ฉํ๋ค.
	private static void m9() {
		
		Connection conn = null;
		Statement stat = null;
		ResultSet rs = null;
		
		try {
			
			conn = DBUtil.open();
			stat = conn.createStatement();
			
			String sql = "select * from tblAddress";
			
			rs = stat.executeQuery(sql);
			
			System.out.println("[๋ฒํธ]\t[์ด๋ฆ]\t[๋์ด]\t[์ฃผ์]");
			while(rs.next()) {
				System.out.printf("%s\t%s\t%s\t%s\n"
									,rs.getString("seq")
									,rs.getString("name")
									,rs.getString("age")
									,rs.getString("address"));
			}
			
			rs.close();
			stat.close();
			conn.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
'JDBC(Oracle)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [JDBC] Auth(์ธ์ฆ ๋ฐ ํ๊ฐ) ๋ก๊ทธ์ธ ๊ตฌํ (0) | 2023.10.23 | 
|---|---|
| [JDBC] Statement ๊ฐ์ฒด์ PrearedStatement, CallableStatement (0) | 2023.10.20 | 
| [JDBC] JDBC ๋ฆฌํฉํ ๋ง (0) | 2023.10.20 | 
| [JDBC] JDBC ๊ธฐ์ด, ์ดํด๋ฆฝ์ค์ ์ฐ๊ฒฐํ๊ธฐ (0) | 2023.10.19 |