야나도 프로젝트

나도 개발자 될수있어

카테고리 없음

Toy Project

jmeen 2021. 8. 15. 16:20
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. 전체 금액이 나오게 해보자.