jsp_DB에서 여러 데이터 가져오기
DB에서 서버 현재시간 가져오기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% Connection conn = null;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "wjsp";
String password = "wjsp";
Class.forName(driver);
System.out.println("jdbc driver 로딩성공!");
conn = DriverManager.getConnection(url, user, password);
System.out.println(" 오라클 연결 성공!");
String sql = "SELECT SYSDATE FROM dual";
PreparedStatement pstm = conn.prepareStatement(sql);
//executeQuery : 쿼리문 수행
ResultSet rs = pstm.executeQuery();
if(rs.next()){
out.print(rs.getDate(1));
}
//close는 반납의 개념
rs.close();
pstm.close();
conn.close();
%>
</body>
</html>
|
cs |
~24행: 오라클과 DB연결
26~27행: SQL문에서 select문 String 타입으로 받아오고 preparedStatement를 사용하여 이를 pstm 으로 넣기
30행~34행: 데이터의 유무 조회
rs.next()
select 받은 결과값을 하나의 테이블이라고 볼 때 select 테이블에 어떤 데이터가 있을지 모른다.
즉, 아무데이터가 없어 조회가 안되는 경우가 있을 수 있고 무수히 많은 데이터가 담겨져 올 수 있는데 이를 확인해주는 것이 rs.next()이다.
rs.next()는 위의 그림과 같이 첫번째 라인부터 시작하는데 true는 데이터가 존재한다는 뜻이며 false가 나올 때 까지 반복한다. 지금은 예제라 데이터가 1개뿐이라 일반 코드로 진행하였지만 데이터가 많아지면 반복문으로 실행한다.
DB에서 데이터 여러개를 동시에 가져오기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% Connection conn = null;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "wjsp";
String password = "wjsp";
Class.forName(driver);
System.out.println("jdbc driver 로딩성공!");
conn = DriverManager.getConnection(url, user, password);
System.out.println(" 오라클 연결 성공!");
String sql = "SELECT * FROM CAR c";
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while(rs.next()){
out.print("차번호" + rs.getString(1) + "<br>");
out.print("브랜드" + rs.getString("BRAND") + "<br>");
out.print("색상" + rs.getString(3) + "<br>");
out.print("가격" + rs.getInt("PRICE") + "<br>");
}
//close는 반납의 개념
rs.close();
pstm.close();
conn.close();
%>
</body>
</html>
|
cs |
27~29행: rs.next()를 위한 기본 세팅
31행~: rs.next()
여러개를 가지고올 땐 while문을 사용하여 진행하며 가져올 데이터베이스 컬럼 넘버를 입력하던지(rs.getString(1)) 데이터베이스의 select한 컬럼 이름을 가지고오던지(rs.getString("BRAND")하여 가져올 컬럼을 정확히 입력해준다.
DB에서 특정 컬럼만 가져오기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
Connection conn = null;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "wjsp";
String password = "wjsp";
Class.forName(driver);
System.out.println("jdbc driver 로딩성공!");
conn = DriverManager.getConnection(url, user, password);
System.out.println(" 오라클 연결 성공!");
String sql = "SELECT * FROM CAR c";
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
String carnum = "3";
// sql = "SELECT * FROM car WHERE carnum = '" + carnum + "'";
sql = "SELECT color FROM car WHERE carnum = ? ";
pstm = conn.prepareStatement(sql);
pstm.setString(1,carnum);
rs = pstm.executeQuery();
if(rs.next()){
out.print("색상:" + rs.getString(1));
}
//close는 반납의 개념
rs.close();
pstm.close();
conn.close();
%>
</body>
</html>
|
cs |
~25행: 오라클과 DB연결 완료
~29행: rs.next()를 위한 기본 세팅
32행: 가지고 올 컬럼 숫자를 carnum에 저장
34행: 데이터베이스 select문 sql에 저장(33행처럼 sql문 입력도 가능하나 잘 사용하지 않는 방법이다.)
37행: pstm.setString(파라미터순서, 저장한컬럼) 입력
40행: rs.next로 콘솔 출력