BookDao.java
package com.bhsi.dao;
import java.util.List;
import java.util.Map;
import com.hbsi.domain.Book;
public interface BookDao {
public Book find(String id);
public List<Book> getALL();
}
BookDaoImpl.java
package com.hbsi.dao.impl;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.bhsi.dao.BookDao;
import com.hbsi.domain.Book;
import com.hbsi.utils.DBManager;
public class BookDaoImpl implements BookDao{
@Override
public Book find(String id) {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try {
conn = DBManager.getConnection();
String sql = "select * from book where id=?";
st = conn.prepareStatement(sql);
st.setString(1, id);
rs = st.executeQuery();
if (rs.next()) {
Book b = new Book();
b.setId(rs.getString("id"));
b.setName(rs.getString("name"));
b.setPrice(rs.getDouble("price"));
b.setAuthor(rs.getString("author"));
b.setDescription(rs.getString("description"));
return b;
}
return null;
} catch (SQLException e) {
throw new RuntimeException(e);
} finally {
DBManager.colseDb(conn, st, rs);
}
}
@Override
public List<Book> getALL() {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try {
conn = DBManager.getConnection();
String sql = "select * from book";
st = conn.prepareStatement(sql);
rs = st.executeQuery();
List<Book> list = new ArrayList<Book>();
while (rs.next()) {
Book b = new Book();
b.setId(rs.getString("id"));
b.setName(rs.getString("name"));
b.setPrice(rs.getFloat("price"));
b.setAuthor(rs.getString("author"));
b.setDescription(rs.getString("description"));
list.add(b);
}
return list;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
DBManager.colseDb(conn, st, rs);
}
}
}
Book.java
package com.hbsi.domain;
import java.io.Serializable;
public class Book implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String id;
private String name;
private double price;
private String author;
private String description;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
Cart.java
package com.hbsi.domain;
import java.util.LinkedHashMap;
import java.util.Map;
//购物车
public class Cart {
//private Map<String,Book> map = new LinkedHashMap<String, Book>();
//用户会买一本书多本,会出现重复的书,要使用购物项,避免重复书出现。
private Map<String,CartItem> map = new LinkedHashMap<String, CartItem>();
private double price; //总计
public void add(Book book){
//首先判断要买的书是否已经在购物车里
CartItem item = map.get(book.getId());
if(item!=null){
item.setQuantity(item.getQuantity()+1);
}else{
//第一次买这本书
item = new CartItem();
item.setBook(book);
item.setQuantity(1);
map.put(book.getId(),item);
}
}
public Map<String, CartItem> getMap() {