本书详细介绍如何使用Servlet、JSP及JavaBean技术来构建一个功能完善的在线书店系统,并附有全部源代码供读者实践参考。适合初学者深入学习Web应用开发。
以下是关于一个使用servlet+jsp+javaBean技术开发的网上书店完整源码的一部分内容:
```java
package com.lovo.cq.shopping10_1.daoimpl;
import com.lovo.cq.shopping10_1.common.DbUtil;
import com.lovo.cq.shopping10_1.dao.OrderDao;
import com.lovo.cq.shopping10_1.po.Order;
import com.lovo.cq.shopping10_1.po.OrderItem;
import com.lovo.cq.shopping10_1.po.User;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class OrderDaoImpl implements OrderDao {
/**
* 添加订单,并返回一个订单号
*
* @param order 一个订单对象
* @return int 返回生成的订单号
*/
public int addOrder(Order order) {
int orderId = 0;
PreparedStatement pstmt_order = null; // 对订单进行操作的预定义语句
PreparedStatement pstmt_item = null; // 对订单项进行操作的预定义语句
ResultSet rs = null;
DbUtil dbUtil = null;
String sql_order = insert into tb_order values(null,?,?,?,?,?,null,?);
try {
dbUtil = new DbUtil();
dbUtil.getCon().setAutoCommit(false); // 开启事务处理
pstmt_order = dbUtil.getCon().prepareStatement(sql_order);
pstmt_order.setString(1, order.getUser().getName());
pstmt_order.setString(2, order.getUser().getAddress());
pstmt_order.setString(3, order.getRecvName());
pstmt_order.setString(4, order.getUser().getPostcode());
pstmt_order.setString(5, order.getUser().getEmail());
pstmt_order.setInt(6,order.getFlag() );
pstmt_order.executeUpdate();
rs = pstmt_order.getGeneratedKeys(); // 获取生成的主键
if(rs.next()) {
orderId = rs.getInt(1);
}
String sql_item = insert into tb_orderItem values(null,?,?,?,?,?);
pstmt_item = dbUtil.getCon().prepareStatement(sql_item);
List orderItemsList = order.getOrderItem(); // 获取所有订单项
for(int i=0; i selectOrder(String name){
ArrayList list = new ArrayList<>();
DbUtil dao = new DbUtil();
PreparedStatement pre = null;
ResultSet re = null;
String sql=select * from tb_order where name=?;
try{
pre=dao.getCon().prepareStatement(sql);
pre.setString(1, name);
re =pre.executeQuery();
while(re.next()){
Order or = new Order();
User user =new User();
int orderId=re.getInt(orderId);
String userName=re.getString(name);
String recvName= re.getString(recvName);
String address=re.getString(address);
String postcode= re.getString(postcode);
String email= re.getString(email);
or.setOrderId(orderId);
user.setName(userName);
user.setAddress(address);
user.setPostcode(postcode);
user.setEmail(email);
or.setUser(user);
or.setRecvName(recvName);
list.add(or);
}
}catch (SQLException e) {
e.printStackTrace();
}
return list;
}
// 根据订单号查询订单项
public List selectOrderItem(int id){
ArrayList list = new ArrayList<>();
DbUtil dao =new DbUtil();
PreparedStatement pre =null;
ResultSet re=null;
String sql=select * from tb_orderItem where orderId=? ;
try{
pre=dao.getCon().prepareStatement(sql);
pre.setInt(1, id);
re =pre.executeQuery();
while(re.next()){
OrderItem item=new OrderItem