728x90
수업내용
1교시 (09:30-10:20)
- 학습방법
- 쿼리
- 이너조인
- 아우터조인
- 페이징에 대한 설명
2교시 (10:30-11:20)
페이징
-- 페이징 테스트를 위한 테이블 만들기
CREATE TABLE BOARD_PAGING(
bnum NUMBER(20) PRIMARY KEY,
btitle VARCHAR2(50) NOT NULL,
bname VARCHAR2(20) NOT NULL,
barea VARCHAR2(2000) NOT NULL,
bpass VARCHAR2(20) NULL,
bwriteday DATE DEFAULT SYSDATE,
bhits NUMBER(8) NULL
);
SELECT COUNT(BNUM)FROM BOARD_PAGING;
SELECT * FROM USER_SEQUENCES;
CREATE SEQUENCE B_SEQ INCREMENT BY 1 START WITH 1;
SELECT B_SEQ.CURRVAL FROM DUAL;
SELECT B_SEQ.NEXTVAL FROM DUAL;
- ConnProperty.java
package a.b.c.test.paging;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public abstract class ConnProperty {
public static final String KOS_URL = "jdbc:oracle:thin:@localhost:1521:orclKSY00";
public static final String KOS_USER = "scott";
public static final String KOS_PASS = "tiger";
public static final String KOS_DRIVER = "oracle.jdbc.driver.OracleDriver";
public static Connection getConnection() {
Connection conn = null;
try {
Class.forName(ConnProperty.KOS_DRIVER);
conn = DriverManager.getConnection( ConnProperty.KOS_URL
,ConnProperty.KOS_USER
,ConnProperty.KOS_PASS);
}catch(Exception c) {
System.out.println("드라이버 찾기에 문제가 발생 >>> : " + c);
}
return conn;
}
public static void conClose( Connection conn
,PreparedStatement pstmt
,ResultSet rsRs) {
try{
if (rsRs != null) try { rsRs.close(); rsRs = null; } catch(Exception ex){}
if (pstmt != null) try { pstmt.close(); pstmt = null; } catch(Exception ex){}
if (conn != null) try { conn.close(); conn = null; } catch(Exception ex){}
}
catch (Exception e2){}
}
public static void conClose(Connection conn, PreparedStatement pstmt) {
try{
if (pstmt != null) try { pstmt.close(); pstmt = null; } catch(Exception ex){}
if (conn != null) try { conn.close(); conn = null; } catch(Exception ex){}
}
catch (Exception e2){}
}
}//end of ConnProperty
- BoardTestData.java
package a.b.c.test.paging;
import java.sql.Connection;
import java.sql.Statement;
public class BoardTestData {
public void insertData() throws Exception {
Connection conn = ConnProperty.getConnection();
Statement stmt = conn.createStatement();
String sqls = null;
for (long i = 0; i < 200; i++) {
sqls = "INSERT INTO BOARD_PAGING VALUES ( "
+ "B_SEQ.NEXTVAL, "
+ "'" + i + "', "
+ "'" + i + "', "
+ "'" + i + "', "
+ "'" + i + "', "
+ "DEFAULT, "
+ "1"
+ ")";
int nCount = stmt.executeUpdate(sqls);
if (nCount % 100 == 0) conn.commit();
}
conn.commit();
stmt.close(); stmt = null;
conn.close(); conn = null;
}
public static void main(String args[]) throws Exception {
new BoardTestData().insertData();
}
}
- 실행
C:\00.KOSMO108\10.JExam\paging>javac -d . -encoding utf-8 B*.java C*.java
C:\00.KOSMO108\10.JExam\paging>java a.b.c.test.paging.BoardTestData
- 페이징 쿼리
SELECT *
FROM (
SELECT
A.bnum, -- 글번호
A.btitle, -- 제목
A.bname, -- 작성자
A.barea, -- 글내용
A.bpass, -- 비밀번호
TO_CHAR(A.bwriteday, 'YYYY-MM-DD') bwriteday, -- 작성일
A.bhits, -- 조회수
CEIL(ROW_NUMBER() OVER(ORDER BY A.bnum) / 10) pageSize,
COUNT(bnum) OVER() AS totalCount
FROM
BOARD_PAGING A
)
WHERE
pageSize = 10;
3교시 (11:30-12:20)
- 상품 페이지 만들기
-----------------------------
workspace :
eclipse_kosmo_spring
eclipse_kosmo_spring_work
lib 세팅은 empSpring 기준으로 하고 추가할 것은 본인 추가할 것
상품
등록, 전체 조회, 조건 조회
Context : kosmoSpring
Table
KOSMO_PRODUCT : 상품테이블
1. 논리설계 부족한 부분 추가 하고
2. 테이블 정의서(설계서) 만들고 : 컬럼명, 데이터타입, 사이즈, PK, NOT NULL
3. 물리설계 하기
클래스
패키지 : a.b.c.com.kosmo
공통클래스
a.b.c.com.kosmo.common
스프링
a.b.c.com.kosmo.product.controller
KosmoProductController
a.b.c.com.kosmo.product.service
KosmoProductService
a.b.c.com.kosmo.product.dao
KosmoProductDAO
a.b.c.com.kosmo.product.vo
KosmoProductVO
매퍼
mybatisconfig/mybatis-config.xml
mybatisquery/spring_product.xml
뷰
/WEB-INF/view/product
kosmoproductXXX.jsp
4교시 (12:30-13:20)
- 상품 페이지 만들기
5교시 (14:30-15:20)
- 상품 페이지 만들기
6교시 (15:30-16:20)
- 상품 페이지 만들기
7교시 (16:30-17:20)
- 상품 페이지 만들기
8교시 (17:30-18:30)
- 상품 페이지 만들기
Notes
728x90