嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 5 元微信扫码支付:5 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
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;
}
}
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;
}
}
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;
}
}
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;
}
}
<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 浏览及分类搜索模块
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;
}
}
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);
}
}
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;
}
<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 购物车及订单模块
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);
}
}
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);
}
}
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;
}
<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>
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 修改订单状态及评论模块
DAO 包含在了OrderDAO中
Service 包含在了OrderService中
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;
}
<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 非空 |