- JDBC (Java Database Connectivity)
: [자바](<https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)>)에서 [데이터베이스](<https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4>)에 접속할 수 있도록 하는 [자바 API](<https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_API>)이다.
JDBC는 데이터베이스에서 자료를 쿼리(요청명령)하거나 업데이트하는 방법을 제공한
- JDBC 드라이버
: DBMS와 통신을 담당하는 자바 클래스
DBMS 별로 알맞은 JDBC 드라이버 필요 <- 보통 jar 파일로 제공
JDBC 드라이버 로딩 <- DBMS와 통신하기 위해서는 먼저 로딩 필요
로딩코드 : Class.forName(”JDBC드라이버 클래스의 완전한 이름”);다.
- JDBC URL
: DBMS와의 연결을 위한 식별 값
JDBC 드라이버에 따라 형식이 다름
일반적인 구성 -jdbc:[DBMS]:[데이터베이스식별자]
- JDBC 클래스는 자바 패키지 - java.sql 과 javax.sql에 포함되어 있다.
JDBC 사용 순서
1. 드라이버 클래스 로드
: Class.forName("클래스명")
2. db와 연결하는 객체
: Connection conn = DriverManager.getConnection("url","userid","pw"
3. db에 sql구문전달 객체
: Statement stmt = conn.createStatement()
4. 명령실행 후 db로 부터 결과 수신
: ResultSet rs = stmt.executeQuery (sql문장 : select)
int cnt = stmt.executeUpdate (sql문장 : select 외)
cnt : 변경된 레코드의 갯수 리턴
📌 jdbc1.jsp - DB연결
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp2/src/main/webapp/jdbc/jdbc1.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DB 연결</title>
</head>
<body>
<%
**//OracleDriver 클래스 로드**
Class.forName("oracle.jdbc.driver.OracleDriver");
**//Connection 객체 : 오라클과 접속하는 객체**
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:xe","kic","1234");
out.println("오라클 접속 성공");
**//Statement : sql 문장을 데이터베이스에 명령문 전달 객체**
Statement stmt = conn.createStatement();
** //ResultSet : select 문장의 결과 데이터를 저장하는 객체**
ResultSet rs = stmt.executeQuery("select * from emp");
%>
<table><tr><td>사원번호</td><td>사원명</td><td>업무</td><td>급여</td></tr>
<%--
rs.next() : 한개의 행을 조회하고 true 리턴
조회할 행이 없으면 false 리턴
rs.getString(컬럼명|컬럼순서) : 컬럼값을 문자열로 리턴
--%>
<% while(rs.next()) {%>
<tr><td><%=rs.getString("empno") %></td>
<td><%=rs.getString("ename") %></td>
<td><%=rs.getString("job") %></td>
<td><%=rs.getString("sal") %></td>
</tr>
<% } %>
</table></body></html>
📌 emp 테이블의 모든 정보 조회하기
<%@page import="java.sql.ResultSetMetaData"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp2/src/main/webapp/jdbc/jdbc2.jsp
css 위치: webapp/css/main.css
--%>
<%--
JDBC 사용 순서
1. 드라이버 클래스 로드 : Class.forName("클래스명")
2. db와 연결하는 객체 :
Connection conn = DriverManager.getConnection("url","userid","pw")
3. db에 sql구문전달 객체
Statement stmt = conn.createStatement()
4. 명령실행 후 db로 부터 결과 수신
ResultSet rs = stmt.executeQuery(sql문장:select)
int cnt = stmt.executeUpdate(sql문장:select외)
cnt : 변경된 레코드의 갯수 리턴
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>emp 테이블의 모든 정보 조회하기</title>
<link rel="stylesheet" href="../css/main.css">
</head>
<body>
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@localhost:1521:xe","kic","1234");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from emp");
//ResultSetMetaData : 조회된 컬럼의 정보 저장
ResultSetMetaData rsmt = rs.getMetaData();
%>
<table><tr>
<%
/*
getColumnCount() : 조회된 컬럼의 갯수
getColumnName(i) : 조회된 컬럼명의 순서대로 조회컬럼 리턴. 1번 인덱스 부터 시작
*/
for(int i=1;i<=rsmt.getColumnCount();i++) {
%>
<th><%=rsmt.getColumnName(i) %></th> <%-- 컬럼명 출력 --%>
<% } %></tr>
<%-- 데이터 부분 출력 --%>
<% while(rs.next()) {%>
<tr> <%-- 컬럼값 출력 --%>
<% for(int i=1;i<=rsmt.getColumnCount();i++) {%>
<td><%=rs.getString(i) %></td> <%-- rs.getString(컬럼순서) --%>
<% } %>
</tr>
<% } %>
</table>
</body>
</html>
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL1 방식 - 회원정보 수정(UpdateForm, Update) (0) | 2023.04.19 |
|---|---|
| [JSP] MVC MODEL1 방식 - 회원관리, 로그인 정보제거, 회원 정보 보기(main, logout, info) (0) | 2023.04.19 |
| [JSP] MVC MODEL1 방식 - 로그인(loginForm, login) (0) | 2023.04.19 |
| [JSP] MVC MODEL1 방식 - Member DAO (0) | 2023.04.19 |
| [JSP] MVC MODEL1 방식 - Member (자바빈파일 useBean, getProperty,setProperty) (0) | 2023.04.19 |