与之前session版不同的就是,这里我们用到了一个新的知识点:分层
分层:数据访问层,业务逻辑层(调用数据访问层),视图层(调用业务逻辑层)
oracle版本的需要三个层连接起来,巧妙结合。(记得导包,建表(用户,商品,订单))
目录:
一:src(数据访问,业务逻辑层)
二:WebContent(视图层)
一:src(数据访问和业务逻辑层)
1.1创建包
util (帮助连接数据库) //不详解
entity(实体类——商品,订单,用户)//不详解
dao(放dao接口)
dao.imp (放dao接口实现类)
biz
biz.imp
dao类
(IGoogsDao,IOrderItemDao,IUserDao)
//IGoodsDao
package dao;
import java.util.ArrayList;
import entity.Goods;
public interface IGoodsDao {
/**
* 查询所有商品
* @param oid
* @return
*/
public ArrayList<Goods> getAll();
/**
* 根据商品编号查询商品对象
* @param bid
* @return
*/
public Goods getById(int bid);
}
//IOrderItem
package dao;
import java.util.ArrayList;
import entity.OrderItem;
public interface IOrderItemDao {
/**
* 查询指定用户的所有订单
* @param uuid 用户编号
* @return 返回订单集合
*/
public ArrayList<OrderItem> getAll(int uuid);
/**
* 查询用户的某个订单
* @param oid 订单编号
* @return 成功就返回订单对象,失败返回null
*/
public OrderItem getById(int oid);
/**
* 删除订单
* @param oid 订单编号
* @return 成功返回1,失败返回0
*/
public int deleteById(int oid);
/**
* 修改订单数量
* @param oid 订单编号
* @param number 订单商品数量
* @return 成功返回1,失败返回0
*/
public int updateByOid(int oid,int number);
/**
* 添加订单
* @param odr
* @return
*/
public int add(OrderItem odr);
/**
* 修改价格
* @param oid
* @param number
* @param price
* @return
*/
public int updateprice(int oid,int number,int price);
}
//IUserDao
package dao;
import entity.User;
public interface IUserDao {
/**
* 用户登录方法
* @param uname 用户名
* @param upwd 密码
* @return 登录成功返回用户对象,否则返回对象
*/
public User login(String uname,String upwd);
/**
* 用户注册方法
* @param user 要注册的用户
* @return 成功返回1,失败返回0
*/
public int register(User user);
}
dao .imp
(Imp_GoogsDao,Imp_OrderItemDao,Imp_UserDao)
//Imp_GoogsDao
package dao.imp;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import dao.IGoodsDao;
import entity.Goods;
import util.DBHelper;
public class Imp_GoodsDao implements IGoodsDao{
@Override
public ArrayList<Goods> getAll() {
// TODO Auto-generated method stub
ArrayList<Goods> glist=new ArrayList<>();
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("select* from goods");
rs=ps.executeQuery();
while(rs.next()) {
glist.add(new Goods(rs.getInt(1), rs.getString(2), rs.getDouble(3), rs.getString(4), rs.getString(5)));
}
} catch (Exception e) {
// TODO: handle exception
}finally {
DBHelper.closeDb(con, ps, rs);
}
return glist;
}
@Override
public Goods getById(int bid) {
Goods g=null;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("select* from goods where bid="+bid);
rs=ps.executeQuery();
if(rs.next()) {
g=new Goods(rs.getInt(1), rs.getString(2), rs.getDouble(3), rs.getString(4), rs.getString(5));
}
} catch (Exception e) {
// TODO: handle exception
}finally {
DBHelper.closeDb(con, ps, rs);
}
return g;
}
}
//Imp_OrderItemDao
package dao.imp;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import dao.IOrderItemDao;
import entity.OrderItem;
import util.DBHelper;
public class Imp_OrderItemDao implements IOrderItemDao{
@Override
public ArrayList<OrderItem> getAll(int uuid) {
// TODO Auto-generated method stub
ArrayList<OrderItem> slist=new ArrayList<>();
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.getCon();
ps=con.prepareStatement("select* from orderitem where uuid="+uuid);
rs=ps.executeQuery();
while(rs.next()) {
slist.add(new OrderItem(rs.getInt(1), rs.getInt(2),rs.getInt(3),rs.getString(4), rs.getInt(5), rs.getString(6), rs.getString(7),rs.getInt(8),rs.getInt(9)));
}
} catch (Exception e) {
// TODO: handle exception
}finally {
DBHelper.closeDb(con, ps, rs);
}
return slist;
}
@Override
public OrderItem getById(int oid) {
// TODO Auto-generated method stub
OrderItem oi=null;
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
try {
con=DBHelper.g