728x90
카페에서 공부하다 포스기 프로그램을 구현해 보자고 생각했다.
될지 안될지 모르겠지만, 배운걸 동원해서 하나 만들어보자.
주제 : 장바구니
1. DB에는 상품명과 가격이 들어간다.
Create table product (
id number primary key,
name varchar(50) not null,
price number not null);
Create Sequence seq_product_pk
start with 1
increment by 1;
2. ProductVo 생성
- 이름이랑 금액만 있으면 되지 않을까?
package toyproject.pos.vo;
public class ProductVo {
// 필드
private String name;
private int price;
// 생성자
public ProductVo() {
}
public ProductVo(String name, int price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "ProductVo [name=" + name + ", price=" + price + "]";
}
}
2. 웹페이지에는 상품 리스트가 나온다.
- ProductDaoImple 만들어 접속메소드, 리스트 가져오기 메소드 생성.
package com.toyproject.pos.dao;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import com.toyproject.pos.vo.ProductVo;
public class ProductDaoImpl implements ProductDao {
private Connection getConnection() throws SQLException {
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:xe",
"C##BITUSER", "bituser");
} catch (ClassNotFoundException e) {
System.out.println("드라이버 로드 실패");
e.printStackTrace();
}
return conn;
}
@Override
public List<ProductVo> getlist() {
List<ProductVo> list = new ArrayList();
Statement stmt = null;
ResultSet rs = null;
Connection conn = null;
try {
conn = getConnection();
stmt = conn.createStatement();
String sql = "SELECT name, price From Product";
rs = stmt.executeQuery(sql);
while (rs.next()) {
String name = rs.getString(1);
Long price = rs.getLong(2);
ProductVo vo = new ProductVo(name, price);
list.add(vo);
}
} catch (Exception e) {
}
return list;
}
<%@page import="com.toyproject.pos.vo.ProductVo"%>
<%@page import="java.util.List"%>
<%@page import="com.toyproject.pos.dao.ProductDaoImpl"%>
<%@page import="com.toyproject.pos.dao.ProductDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
ProductDao dao = new ProductDaoImpl();
List<ProductVo> list = dao.getlist();
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Toy Project</title>
</head>
<body>
<h1>Toy project</h1>
<p>기초부터 차근차근</p>
<table border="1">
<caption>
<b>재밍다방 메뉴판</b>
</caption>
<thead>
<tr>
<td width="180" align="center">메 뉴</td>
<td width="180" align="center">가 격</td>
<td></td>
</tr>
</thead>
<%
for (ProductVo vo : list) {
%>
<tbody>
<tr>
<td width="180" align="center"> <%=vo.getName()%></td>
<td width="180" align="center"> \<%= vo.getPrice()%></td>
<td width="50" align="center"><input type="submit" VALUE="담기"></td>
</tr>
</tbody>
<%
}
%>
<tfoot>
<tr>
<td></td>
<td></td>
<td align="center"><input type="submit" value="add" ></td>
</tr>
</tfoot>
</table>
<br>
3. 추가 버튼을 누르면 장바구니에 추가된다.
4. 갯수를 늘리면 총 금액이 변경된다.
5. 전체 금액이 나오게 해보자.