基本信息
源码名称:手机网店
源码大小:1.57M
文件格式:.doc
开发语言:Java
更新时间:2015-12-03
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 5 元 
   源码介绍



 

IUserDAO接口

public interface IUserDAO {

    public void saveUser(User user);

    public User validateUser(String username,String password);

    public boolean exitUser(String username);

    public Admin validateAdmin(String username, String password);

}

UserDAO

public class UserDAO extends BaseDAO implements IUserDAO{

    public void saveUser(User user){

        Session session=getSession();

        Transaction tx=session.beginTransaction();

        session.save(user);

        tx.commit();

        session.close();

    }

    public User validateUser(String username,String password){     

        String sql="from User u where u.username=? and u.password=?";

        Session session=getSession();

        Query query=session.createQuery(sql);

        query.setParameter(0,username);

        query.setParameter(1,password);

        List users=query.list();

        if(users.size()!=0)

        {

            User user=(User)users.get(0);

            return user;

        }

        session.close();

        return null;

    }

    public boolean exitUser(String username){

        Session session=getSession();

        String hql="from User u where u.username=? ";

        Query query=session.createQuery(hql);

        query.setParameter(0,username);

        List users=query.list();

        if(users.size()!=0){

            User user=(User)users.get(0);

            return true;

        }

        session.close();

        return false;

    }

    @Override

    public Admin validateAdmin(String username, String password) {

        String sql="from Admin u where u.username=? and u.password=?";

        Session session=getSession();

        Query query=session.createQuery(sql);

        query.setParameter(0,username);

        query.setParameter(1,password);

        List admins=query.list();

        if(admins.size()!=0)

        {

            Admin admin=(Admin)admins.get(0);

            return admin;

        }

        session.close();

        return null;

    }

}

2.2.2 开发Service

IUserService

public interface IUserService {

    public void saveUser(User user);

    public User validateUser(String username,String password);

    public Admin validateAdmin(String username,String password);

    public boolean exitUser(String username);

}

UserService

public class UserService implements IUserService{

    private IUserDAO userDAO;

    public void saveUser(User user){

        this.userDAO.saveUser(user);

    }

    public User validateUser(String username,String password){

        return userDAO.validateUser(username, password);

    }

    public Admin validateAdmin(String username,String password){

        return userDAO.validateAdmin(username, password);

    }

    public boolean exitUser(String username){

        return userDAO.exitUser(username);

    }

    public IUserDAO getUserDAO(){

        return userDAO;

    }

    public void setUserDAO(IUserDAO userDAO){

        this.userDAO=userDAO;

    }

}

2.2.3 开发Action模块

UserAction

public class UserAction extends ActionSupport{

    private User user;

    protected IUserService userService;

    private int type;

    public int getType() {

        return type;

    }

    public void setType(int type) {

        this.type = type;

    }

    //用户注册,调用service层的saveUser()方法

    public String register() throws Exception{

        userService.saveUser(user);

        return SUCCESS;

    }

    //用户登录,调用service层的validateUser()方法

    public String execute() throws Exception{

        User u=null;

        Admin a = null;

        if(getType()==0)

           u=userService.validateUser(user.getUsername(),user.getPassword());

        else  a=userService.validateAdmin(user.getUsername(),user.getPassword());

        if(u!=null || a!=null)

        {

            Map session=ActionContext.getContext().getSession();

            //保存此次会话的u(用户账号)信息

            if(getType()==0){

            session.put("user", u);

            session.put("username",u.getUsername());

            session.put("userid",u.getUserid());

            session.put("type",0);

            }

            else

            {  

                session.put("username",a.getUsername());

                session.put("type",1);

            }

            return SUCCESS;

        }

        return ERROR;

    }

    //用户注销,去除会话中的用户账号信息即可,无须调用service

    public String logout() throws Exception{

        Map session=ActionContext.getContext().getSession();

        session.remove("user");

        session.remove("username");

        session.remove("userid");

        session.remove("type");

        //session.remove("cart");

        return SUCCESS;

    }

    public User getUser(){

        return this.user;

    }

    public void setUser(User user){

        this.user=user;

    }

    public IUserService getUserService(){

        return this.userService;

    }

    public void setUserService(IUserService userService){

        this.userService=userService;

    }

}

2.2.3 开发Action模块

public class UserAction extends ActionSupport{

    private User user;

    protected IUserService userService;

    private int type;

    public int getType() {

        return type;

    }

    public void setType(int type) {

        this.type = type;

    }

    public String register() throws Exception{

        userService.saveUser(user);

        return SUCCESS;

    }

        public String execute() throws Exception{

        User u=null;

        Admin a = null;

        if(getType()==0)

       u=userService.validateUser(user.getUsername(),user.getPassword());

        else     a=userService.validateAdmin(user.getUsername(),user.getPassword());

        if(u!=null || a!=null)

        {

            Map session=ActionContext.getContext().getSession();

            if(getType()==0){

            session.put("user", u);

            session.put("username",u.getUsername());

            session.put("userid",u.getUserid());

            session.put("type",0);

            }

            else

            {  

                session.put("username",a.getUsername());

                session.put("type",1);

            }

            return SUCCESS;

        }

        return ERROR;

    }

        public String logout() throws Exception{

        Map session=ActionContext.getContext().getSession();

        session.remove("user");

        session.remove("username");

        session.remove("userid");

        session.remove("type");

        //session.remove("cart");

        return SUCCESS;

    }

}

2.2.4 配置Action

<action name="register" class="userAction" method="register" >

            <result name="success">/register_success.jsp</result>

        </action>

        <action name="login" class="userAction">

            <result name="success">/login_success.jsp</result>

            <result name="error">/login.jsp</result>

        </action>

        <action name="logout" class="userAction" method="logout">

            <result name="success">/index.jsp</result>

        </action>

 

2.3 浏览及分类搜索模块

2.3.1 开发DAO

IPhoneDAO

public interface IPhoneDAO {

    public List getPhonebyCatalogid(Integer catalogid);

    public List getPhonebyCatalogidPaging(Integer catalogid,int currentPage,int pageSize);

    public int getTotalbyCatalog(Integer catalogid);

    public List getRequiredPhonebyHql(String hql);

    public Phone getPhonebyId(Integer phoneid);

    public void save(Phone phone);

    public int executehql(String hql);

}

PhoneDAO

public class PhoneDAO extends BaseDAO implements IPhoneDAO{

    public List getPhonebyCatalogid(Integer catalogid){

        Session session=getSession();

        Query query=null;

        if(catalogid==0)

        {

          query=session.createQuery("from Phone b");

        }

        else

        {

        query=session.createQuery("from Phone b where b.catalog.catalogid=?");

        query.setParameter(0, catalogid);

        }

        List phones=query.list();

        session.close();

        return phones;

    }

    public List getPhonebyCatalogidPaging(Integer catalogid,int currentPage,int pageSize){

        Session session=getSession();

        Query query=null;

        if(catalogid==0)

        {

          query=session.createQuery("from Phone b");

        }

        else

        {

        query=session.createQuery("from Phone b where b.catalog.catalogid=?");

        query.setParameter(0, catalogid);

        }

        //确定起始游标的位置

        int startRow=(currentPage-1)*pageSize;

        query.setFirstResult(startRow);

        query.setMaxResults(pageSize);

        List phones=query.list();

        session.close();

        return phones;

    }

    public int getTotalbyCatalog(Integer catalogid){

       

        List phones=getPhonebyCatalogid(catalogid);

        int totalSize=phones.size();

        return totalSize;

    }

    public List getRequiredPhonebyHql(String hql) {

        Session session=getSession();

        Query query=session.createQuery(hql);

        List phones=query.list();

        session.close();

        return phones;

    }

    //根据图书号得到图书

    public Phone getPhonebyId(Integer phoneid){

        Session session=getSession();

        Phone phone=(Phone)session.get(Phone.class,phoneid);

        session.close();

        return phone;

    }

    @Override

    public void save(Phone phone) {

        Session session = getSession();

        Transaction tx = session.beginTransaction();

        session.save(phone);

        tx.commit();

        session.close();

    }

    @Override

    public int executehql(String hql) {

        Session session = getSession();

        Transaction tx = session.beginTransaction();

        Query queryupdate=session.createQuery(hql);

        int ret = queryupdate.executeUpdate();

        tx.commit();

        session.close();

        return ret;

    }

}

2.3.2 开发Service

IPhoneService

public interface IPhoneService {

    public List getPhonebyCatalogid(Integer catalogid);

    public List getPhonebyCatalogidPaging(Integer catalogid,int currentPage,int pageSize);

    public int getTotalbyCatalog(Integer catalogid);

    public List getRequiredPhonebyHql(String hql);

    public Phone getPhonebyId(Integer phoneid);

    public void save(Phone phone);

    public int executehql(String hql);

}

PhoneService

public class PhoneService implements IPhoneService{

    private IPhoneDAO phoneDAO;

    public List getPhonebyCatalogid(Integer catalogid){

        return phoneDAO.getPhonebyCatalogid(catalogid);

    }

    public List getPhonebyCatalogidPaging(Integer catalogid,int currentPage,int pageSize){

        return phoneDAO.getPhonebyCatalogidPaging(catalogid, currentPage, pageSize);

    }

    public int getTotalbyCatalog(Integer catalogid){

        return phoneDAO.getTotalbyCatalog(catalogid);

    }

    public List getRequiredPhonebyHql(String hql) {

        return phoneDAO.getRequiredPhonebyHql(hql);

    }

    public IPhoneDAO getPhoneDAO() {

        return phoneDAO;

    }

    public void setPhoneDAO(IPhoneDAO phoneDAO) {

        this.phoneDAO=phoneDAO;

    }

    public Phone getPhonebyId(Integer phoneid){

        return phoneDAO.getPhonebyId(phoneid);

    }

    @Override

    public void save(Phone phone) {

        // TODO Auto-generated method stub

        phoneDAO.save(phone);

    }

    @Override

    public int executehql(String hql) {

        return phoneDAO.executehql(hql);

    }

}

2.3.3 开发Action组件

PhoneAction

public class PhoneAction extends ActionSupport{

    protected ICatalogService catalogService;

    protected IPhoneService phoneService;

    private Integer catalogid;

    private String picture;

    private Integer price;

    private Integer phoneid;

   

    private Integer currentPage=1;

    private String phonename;

    private String search;

    private int lowprice;

    private int highprice;

    private int userid;

   

    public String browseCatalog() throws Exception{

        List catalogs=catalogService.getAllCatalogs();

        Map request=(Map)ActionContext.getContext().get("request");

        request.put("catalogs", catalogs);

        return SUCCESS;

    }

    public String browsePhone() throws Exception{

        List phones=phoneService.getPhonebyCatalogid(catalogid);

        Map request=(Map)ActionContext.getContext().get("request");

        request.put("phones", phones);

        return SUCCESS;

    }

    public String browsePhonePaging() throws Exception{

        int totalSize=phoneService.getTotalbyCatalog(catalogid);

        Pager pager=new Pager(currentPage,totalSize);

        List phones=phoneService.getPhonebyCatalogidPaging(catalogid,currentPage, pager.getPageSize());

        Map request=(Map)ActionContext.getContext().get("request");

        request.put("phones", phones);

        request.put("pager",pager);

        //购物车要返回时,需要记住返回的地址

        Map session=ActionContext.getContext().getSession();

        request.put("catalogid",catalogid);

        return SUCCESS;

    }

    public String searchPhone() throws Exception {

        StringBuffer hql=new StringBuffer("from Phone b ");

        if(phonename!=null&&phonename.length()!=0)

            hql.append("where b.phonename like '%" phonename "%'");

        List phones=phoneService.getRequiredPhonebyHql(hql.toString());

        Map request=(Map)ActionContext.getContext().get("request");

        int totalSize=phones.size();

        request.put("phones",phones);

        return SUCCESS;

    }

    public String searchPhoneByPrice() throws Exception {

        StringBuffer hql=new StringBuffer("from Phone b ");

        hql.append("where b.price>=" getLowprice() "and b.price<=" getHighprice());

        List phones=phoneService.getRequiredPhonebyHql(hql.toString());

        Map request=(Map)ActionContext.getContext().get("request");

        int totalSize=phones.size();

        request.put("phones",phones);

        return SUCCESS;

    }

   

    public String modifyphone_handle() throws Exception {

   

        String hql = "update from Phone b set ";

        hql ="b.phonename='" getPhonename() "' ";

        hql =",b.price=" getPrice() " ";

        hql ="where b.phoneid=" getPhoneid();

        phoneService.executehql(hql);

        return SUCCESS;

    }

    public String deletephone_handle() throws Exception {

       

        String hql = "delete from Phone b ";

        hql ="where b.phoneid=" getPhoneid();

        phoneService.executehql(hql);

        return SUCCESS;

    }

    public String addphone_handle() throws Exception {

       

        if(getPicture()==null || getPhonename()==null || getPrice()==null)return ERROR;

        String picture="";

        switch(getCatalogid())

        {

        case 1: picture="sanxing/";break;

        case 2: picture="huawei/";break;

        case 3: picture="xiaomi/";break;

        case 4: picture="apple/";break;

        case 5: picture="lenovo/";break;

        }

        picture =getPicture();

        Phone phone=new Phone();

        Catalog catalog = new Catalog();

        catalog.setCatalogid(getCatalogid());

        phone.setPhonename(getPhonename());

        phone.setPrice(getPrice());

        phone.setPicture(picture);

        phone.setCatalog(catalog);

        phoneService.save(phone);

        return SUCCESS;

    }

2.3.4 配置Action

    <action name="browseCatalog" class="phoneAction" method="browseCatalog">

            <result name="success">/menu.jsp</result>

        </action>

        <action name="browsePhone" class="phoneAction" method="browsePhone">

            <result name="success">/browsePhone.jsp</result>

        </action>

   

        <action name="browsePhonePaging" class="phoneAction" method="browsePhonePaging">

            <result name="success">/browsePhonePaging.jsp</result>

        </action>

        <action name="searchPhone" class="phoneAction" method="searchPhone">

            <result name="success">/searchPhone_result.jsp</result>

        </action>

        <action name="searchPhoneByPrice" class="phoneAction" method="searchPhoneByPrice">

            <result name="success">/searchPhone_result.jsp</result>

        </action>

2.4 购物车及订单模块

2.4.1 开发DAO

IOrderDAO

public interface IOrderDAO {

    public Orders saveOrder(Orders order);

    public int modifyOrderitem(String hql);

    public List getRequiredbyHql(String hql);

    public List getRequiredbyUserid(int userid);

    public List getRequiredbyOrderid(int orderid);

}

OrderDAO

public class OrderDAO extends BaseDAO implements IOrderDAO{

   

    public Orders saveOrder(Orders order) {

        Session session = getSession();

        Transaction tx = session.beginTransaction();

        session.save(order);

        tx.commit();

        session.close();

        return order;

    }

    public int modifyOrderitem(String hql) {

        Session session = getSession();

        Transaction tx = session.beginTransaction();

        Query queryupdate=session.createQuery(hql);

        int ret = queryupdate.executeUpdate();

        tx.commit();

        session.close();

        return ret;

    }

    public List getRequiredbyHql(String hql) {

        Session session=getSession();

        Query query=session.createQuery(hql);

        List orders=query.list();

        session.close();

        return orders;

    }

    @Override

    public List getRequiredbyUserid(int userid) {

        String hql = "from Orders o where o.user=" userid;

        return getRequiredbyHql(hql);

    }

    public List getRequiredbyOrderid(int orderid) {

        String hql = "from Orderitem o,Phone p where o.orders=" orderid "and o.phone=p.phoneid";

        return getRequiredbyHql(hql);

    }

}

2.4.2 开发Service

IOrderService

public interface IOrderService {

    public Orders saveOrder(Orders order);

    public int modifyOrderitem(String hql);

    public List queryorders(int userid);

    public List queryorderitems(int orderid);

    public List queryorderbyhql(String hql);

}

IOrderService

public class OrderService implements IOrderService{

    private IOrderDAO orderDAO;

    public void setOrderDAO(IOrderDAO orderDAO) {

        this.orderDAO=orderDAO;

    }

    public Orders saveOrder(Orders order) {

        return orderDAO.saveOrder(order);

    }

    public List queryorders(int userid)

    {

        return orderDAO.getRequiredbyUserid(userid);

    }

    public List queryorderitems(int orderid)

    {

        return orderDAO.getRequiredbyOrderid(orderid);

    }

    @Override

    public List queryorderbyhql(String hql) {

        // TODO Auto-generated method stub

        return orderDAO.getRequiredbyHql(hql);

    }

    @Override

    public int modifyOrderitem(String hql) {

        // TODO Auto-generated method stub

        return orderDAO.modifyOrderitem(hql);

    }

}

2.4.3 开发Action

ShoppingAction

public class ShoppingAction extends ActionSupport{

    //添加到购物车

    public String addToCart() throws Exception{

        Phone phone=phoneService.getPhonebyId(phoneid);

        Orderitem orderitem=new Orderitem();

        orderitem.setPhone(phone);

        orderitem.setQuantity(quantity);

        Map session=ActionContext.getContext().getSession();

        Cart cart=(Cart)session.get("cart");

        if(cart==null){

            cart=new Cart();

        }

        cart.addPhone(phoneid, orderitem);

        session.put("cart",cart);

        return SUCCESS;

    }

   

    //更新购物车

    public String updateCart() throws Exception{

        Map session=ActionContext.getContext().getSession();

        Cart cart=(Cart)session.get("cart");

        cart.updateCart(phoneid, this.getQuantity());

        session.put("cart", cart);

        return SUCCESS;

    }

    //结账下订单

    public String checkout() throws Exception{

        Map session=ActionContext.getContext().getSession();

        User user=(User)session.get("user");

        Cart cart=(Cart)session.get("cart");

        if(user==null || cart ==null)

            return ActionSupport.ERROR;

        Orders order=new Orders();

        order.setOrderdate(new Date());

        order.setUser(user);

        for(Iterator it=cart.getItems().values().iterator();it.hasNext();){

            Orderitem orderitem=(Orderitem)it.next();

            orderitem.setOrders(order);

            orderitem.setStatus(0);

            order.getOrderitems().add(orderitem);

        }

        orderService.saveOrder(order);

        Map request=(Map)ActionContext.getContext().get("request");

        request.put("order",order);

        return SUCCESS;

    }

   

    public String queryorders() throws Exception {

        List orders=orderService.queryorders(getUserid());

        Map request=(Map)ActionContext.getContext().get("request");

        request.put("orders",orders);

        return SUCCESS;

    }

   

    public String queryorderitems() throws Exception {

        List orderitems=orderService.queryorderitems(getOrderid());

        Map request=(Map)ActionContext.getContext().get("request");

        request.put("orderitems",orderitems);

        request.put("orderid",getOrderid());

        Map session=ActionContext.getContext().getSession();

        session.put("orderid",getOrderid());

        return SUCCESS;

    }

   

    public String modifystatus() throws Exception {

        String hql = "update Orderitem o set o.status=" getStatus() " where o.orderitemid=" getOrderitemid();

        int ret =orderService.modifyOrderitem(hql);

        if(ret>0)

        return SUCCESS;

        else return ERROR;

    }

   

    public String comment() throws Exception {

       

        String hql = "update Orderitem o set o.comment='" getComment() "' where o.orderitemid=" getOrderitemid();

        int ret =orderService.modifyOrderitem(hql);

        hql = "update Orderitem o set o.status=" 2 " where o.orderitemid=" getOrderitemid();

        ret =orderService.modifyOrderitem(hql);

        if(ret>0)

        return SUCCESS;

        else return ERROR;

    }

   

2.4.4 配置Action

<action name="addToCart" class="shoppingAction" method="addToCart">

            <result name="success">/addToCart_success.jsp</result>

        </action>

        <action name="queryorders" class="shoppingAction" method="queryorders">

            <result name="success">/showorders.jsp</result>

        </action>

        <action name="queryorderitems" class="shoppingAction" method="queryorderitems">

            <result name="success">/showorderitems.jsp</result>

        </action>

        <action name="updateCart" class="shoppingAction" method="updateCart">

            <result name="success">/showCart.jsp</result>

        </action>

        <action name="checkout" class="shoppingAction" method="checkout">

            <result name="success">/checkout_success.jsp</result>

            <result name="error">/login.jsp</result>

        </action>

        <action name="comment" class="shoppingAction" method="comment">

            <result name="success">/showorderdetail.jsp</result>

        </action>

2.4.5 购物车类

public class Cart {

    protected Map<Integer,Orderitem> items;//属性item

    //构造函数

    public Cart(){

        if(items==null)

            items=new HashMap<Integer,Orderitem>();

    }

    //添加图书到购物车

    public void addPhone(Integer phoneid,Orderitem orderitem){

        //是否存在,如果存在,更改数量

        //如果不存在的话,添加入集合

        if(items.containsKey("phoneid")){

            Orderitem _orderitem=items.get(phoneid);

            orderitem.setQuantity(_orderitem.getQuantity() orderitem.getQuantity());

            items.put(phoneid,orderitem);

        }

        else{

            items.put(phoneid,orderitem);

        }

    }

    //更新购物车的购买书籍数量

    public void updateCart(Integer phoneid,int quantity){

        Orderitem orderitem=items.get(phoneid);

        orderitem.setQuantity(quantity);

        items.put(phoneid, orderitem);

    }

    //计算总价格

    public int getTotalPrice(){

        int totalPrice=0;

        for(Iterator it=items.values().iterator();it.hasNext();){

            Orderitem orderitem=(Orderitem)it.next();

            Phone phone=orderitem.getPhone();

            int quantity=orderitem.getQuantity();

            totalPrice =phone.getPrice()*quantity;

        }

        return totalPrice;

    }

   

    public Map<Integer, Orderitem> getItems() {

        return items;

    }

    public void setItems(Map<Integer, Orderitem> items) {

        this.items=items;

    }}

2.5  修改订单状态及评论模块

2.5.1 开发DAO

DAO 包含在了OrderDAO

2.5.2 开发Service

Service 包含在了OrderService

2.5.3 开发Action

public String modifystatus() throws Exception {

        String hql = "update Orderitem o set o.status=" getStatus() " where o.orderitemid=" getOrderitemid();

        int ret =orderService.modifyOrderitem(hql);

        if(ret>0)

        return SUCCESS;

        else return ERROR;

    }

   

    public String comment() throws Exception {

       

        String hql = "update Orderitem o set o.comment='" getComment() "' where o.orderitemid=" getOrderitemid();

        int ret =orderService.modifyOrderitem(hql);

        hql = "update Orderitem o set o.status=" 2 " where o.orderitemid=" getOrderitemid();

        ret =orderService.modifyOrderitem(hql);

        if(ret>0)

        return SUCCESS;

        else return ERROR;

    }

2.5.4 配置Action

<action name="comment" class="shoppingAction" method="comment">

            <result name="success">/showorderdetail.jsp</result>

        </action>

        <action name="modifystatus" class="shoppingAction" method="modifystatus">

            <result name="success">/showorderdetail.jsp</result>

        </action>

2.数据库设计

 数据库表结构


手机品牌分类

分类编号   int  主键  非空

品牌名称 varchar      非空

品牌logo varchar         非空