java项目之宿舍购物

  最近这段日子很忙,blog也有段日子没更新了,忙着做40G PSM4的订单,从COB 跟线贴片 打线 老化等工艺到耦合激光焊,组装调试测试到最后送到客户解决问题,成长了很多,并且会熟练操作激光焊仪器了,每次底焊都很刺激,加上对不良(光功率偏小)隔离器的补焊,一步步变得熟练,还挺有意思的,在另一篇章节里详细讲述了工作原理和操作技巧。最近因为各种原因吧,想重新找份工作,回顾一下大二在企业实习的物流ERP项目和自己开发的宿舍买辣条项目,一步步捡起来知识,怕以后用得上。

  java面向对象,很多用于开发网站,系统,ERP等,这次实习的是一个小型电商公司自己有工厂开发一个物流的ERP便于管理订单,主要是卖衣服,学了三个月,从java零学起到能基本应用,看懂项目架构并且能自己开发小项目也学到了挺多。由于有C的理论基础,java也是主要面向应用,这也是为什么社会培训java特别多,学起来很快,但是没有牢固的基础,忘得也快。

  这里主要写一个宿舍卖辣条的小项目,到后面由于没有租服务器,只能在局域网用用了,而且后面对单片机和linux比较感兴趣,很多Java知识都忘了,再到后面又学习了一段时间的matlab和机器学习做毕业设计,这个在另一篇博客有。

  java整个框架搭建起来涉及到的东西比较多,MYECLIPSE,sql server ,tomcat ,代码和技术又包括java jsp JavaScript XML html servlet 还有技术框架struts2 hibernate mybatis等,还有什么dbutils c3p0 ognl log4j等,现在大概只能记起这么一些词,重新学起来估计得花一周时间。

  java项目之宿舍购物_第1张图片

 上图就是MYECLIPSE配置好的环境,建立接口UserDAO

package com.dao;

import java.util.List;

import com.domain.Food;
import com.domain.User;

public interface UserDao {
   public void addStrutsUser(User u)throws Exception;
   public  User findStrutsUserByName(String name) throws Exception;
   public List findAllFood()throws Exception;
   public Food findFoodByName(String name)throws Exception;
   public Food findFoodById(int id)throws Exception;
}

主要就是用户和食物两个对象,要分别建立。

package com.dao.imp;

import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.dao.UserDao;
import com.dbutils.util.C3P0Util;
import com.dbutils.util.ManagerThreadLocal;
import com.domain.Food;
import com.domain.User;

public class UserDaoImp implements UserDao{

    public List findAllFood() throws Exception {
        List list = null;
        try {
            QueryRunner qr = new QueryRunner(C3P0Util.getDatasource());
              list = qr.query("select * from food", new BeanListHandler(Food.class));
             
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("userdao层findallfood错误");
        }
      return list;
    }

    public void addStrutsUser(User u)  {
        try {
            QueryRunner qr = new QueryRunner(C3P0Util.getDatasource());
            qr.update("insert into strutsuser(username,password) values(?,?)",
                    u.getUsername(), u.getPassword());
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("数据层UserDaoImp addStrutsUser发生错误");
    
        }
        
        //throw new RuntimeException("数据层UserDaoImp addStrutsUser发生错误");

    }

    public User findStrutsUserByName(String name) throws Exception {
        User u = null;
           try {
                QueryRunner qr = new QueryRunner(C3P0Util.getDatasource());
                u = qr.query("select * from strutsuser where username= ?",new BeanHandler(User.class) , name);
            } catch (Exception e) {
                e.printStackTrace();
                throw new RuntimeException("数据层UserDaoImp findStrutsUser发生错误");
        
            }
            
        return u;
    }
    
    public Food findFoodByName(String name) throws Exception{
        Food f = null;
        try {
            QueryRunner qr = new QueryRunner(C3P0Util.getDatasource());
            f = qr.query("select * from food where name=?", new BeanHandler(Food.class),name);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("userdaoimp层查询商品通过name发生错误");
            
        }
        return f;
        
    }
    public Food findFoodById(int id)throws Exception{
        Food f = null;
        try {
            QueryRunner qr = new QueryRunner(C3P0Util.getDatasource());
            f = qr.query("select * from food where id=?", new BeanHandler(Food.class),id);
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("userdaoimp层查询商品通过id发生错误");
        }
        return f;
    }
}

DAO的执行,实现的功能包括添加用户,找用户,找到所有食物,分别通过id和name找食物。

package com.domain;

import java.io.Serializable;

public class Food implements Serializable {
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + id;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + number;
        long temp;
        temp = Double.doubleToLongBits(price);
        result = prime * result + (int) (temp ^ (temp >>> 32));
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Food other = (Food) obj;
        if (id != other.id)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        if (number != other.number)
            return false;
        if (Double.doubleToLongBits(price) != Double
                .doubleToLongBits(other.price))
            return false;
        return true;
    }
    public int getNumber() {
        return number;
    }
    public void setNumber(int number) {
        this.number = number;
    }

    private int id;
    private String name;
    private double price;
    private int number;
    
public int getId() {
        return id;
    }
    public void setId(int 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;
    }
   
    @Override
    public String toString() {
        return "Food [id=" + id + ", name=" + name + ", price=" + price + "]";
    }
    
}
food对象建立。

package com.domain;

import java.io.Serializable;

public class User implements Serializable{
    public String getRepassword() {
        return repassword;
    }

    public void setRepassword(String repassword) {
        this.repassword = repassword;
    }
    private int id;
    private String username;
    private String password;
    private String repassword;
    
    @Override
    public String toString() {
        return "User [id=" + id + ", username=" + username + ", password="
                + password + "]";
    }
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}
用户对象建立。

package com.service;

import java.util.List;

import com.domain.Food;
import com.domain.User;

public interface UserService {
   public void register(User u) throws Exception ;
   public User login(String name)throws Exception;
   public List getFood() throws Exception;
   public Food getFoodByName(String name)throws Exception;
   public Food getFoodById(int id)throws Exception;
   
}针对用户的服务,登录注册等。

java项目之宿舍购物_第2张图片

商城界面如上图,将光标移至食物名称时会显示对应的图片,有价钱和数量等,可以添加到购物车。

java项目之宿舍购物_第3张图片

  没买东西时可以点击去商城,可以登录。

java项目之宿舍购物_第4张图片

买了东西后,上图就是购物车,会显示买的数量,可以加减,会显示单价和总价等,光标点击时会提示库存数量。点击支付时如果没有登录会提示登录。

java项目之宿舍购物_第5张图片

java项目之宿舍购物_第6张图片

 登录界面如图,涉及到jsp字段的获取和cookie等。

<%@page import="com.domain.Food"%>
<%@page import="java.util.List"%>
<%@page import="com.service.imp.UserServiceImp"%>
<%@page import="com.service.UserService"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@taglib  prefix="s" uri="/struts-tags"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>




Insert title here

<%
  UserService us = new UserServiceImp();
List list = us.getFood();
 request.setAttribute("allfood", list);
 %>
  

欢迎你
 
           ${user.username };
       

       
          登录
       

 
 
dfa

商品列表:



 
   
       
       
       
   
  
     
       

           
           
           
           

     
       


     
 
商品名称价钱剩余数量
${food.name }
${ food.price}${food.number }添加至购物车

 

今日促销

  
 

去我的购物车看看


 




这是显示所有商品信息的jsp,有涉及到JavaScript。

java项目之宿舍购物_第7张图片

数据库截图。这里我登录买个东西看看结果。

java项目之宿舍购物_第8张图片

 我是李四,哈哈,已经登录进来了,验证码要注意大写哦。

java项目之宿舍购物_第9张图片

java项目之宿舍购物_第10张图片

 支付就是二维码了。整体项目就是这样,可以买书,买辣条等等,里面涉及的知识其实很多,不过由于是大学期间做的,现在又是从事光模块行业,忘了挺多的,不过还是挺有意思的,后续我会把源码免费发上去,和大家一起学习交流。下篇文章写写linux吧,重温一下。

你可能感兴趣的:(光模块学习之路)