zoukankan      html  css  js  c++  java
  • 说好的不熬夜呢???!!!! -- 超市项目

    本来觉得还差一点点,结果15个小时了还没有弄完,说好的不熬夜的呢???!!!

    一个破超市的项目,废了我这么长时间,搞什么飞机啊?!!!

    喝了6罐 ’乐虎‘ 了,这是我的常态吗?想做一个不熬夜的程序员,真的这么难吗?

    每一个模块都是那么的墨迹,到处报错,我觉得吧,我不是前台弱,是前台和中间那块就是servlet比较弱,jQuery好一点了,el表达式ajax,json,好难过的。

    java到数据库这边是我最熟练的,而且也比较好写,主要是分层开发嘛,从下往上写呗,sql现在也不是那么的难了。主要就是servlet,我的痛!!!

    小豆腐年前就让我写的,本打算看完视频再写,可是年后回来,又搞了框架,一拖再拖,现在是该还旧账的时候了,没办法,自己欠下的。上周身体确实不适,感觉没有那么多精力,总是累,我觉得我保养的还行啊,就是睡眠少了点。

    还差两个模块呢,sl会员商城还没写呢,娜女士都写的差不多了吧,好气人啊!!!

    ==========================系统功能============================
    登录 退出
    用户管理
        修改密码
        添加用户
        修改用户
        删除用户
        查看用户
    供应商管理
        添加供应商
        修改供应商
        删除供应商
        查看供应商
    账单管理
        添加账单
        修改账单
        删除账单
        查看账单
    ==========================数据库设计============================
    用户表:
        主键ID
        用户账号(用户编码)
        用户密码
        用户名
        性别(1 男 2 女)
        出生日期
        用户电话
        用户地址
        用户类型(1 系统管理员 2 经理 3 普通员工)
        创建时间
        创建者(userId)
        更新时间
        更新者(userId)
        
    供应商表:
        主键ID
        供应商编码
        供应商名称
        供应商描述
        供应商联系人
        联系电话
        地址
        传真
        创建时间
        创建者(userId)
        更新时间
        更新者(userId)
        
    账单表:
        主键ID
        账单编码
        商品名称
        商品描述
        商品单位
        商品数量
        总金额
        供应商(providerID)
        是否付款(1 未支付 2 已支付)
        创建时间
        创建者(userId)
        更新时间
        更新者(userId)
        
        decimal(20,2)
        
        12.668 12.67
        12.248 12.24
        
        BigDecimal 12.248 12.24 12.66
        
    ==========================系统框架搭建============================
    (java开发环境/运行时环境)bildpath 要高于或者等于 Compliler(编译时环境)
    修改字符集
    
    MVC:
    jsp
    servlet
    jdbc
    mysql
    
    事务:3张表 1 insert 2 update 3 detele
    
    ------------------------src-------------------------
    pojo:数据实体(完成与数据库表的映射)
    dao:数据访问接口(与数据库操作)
    service:业务逻辑层(处理业务逻辑,调用dao接口)--- 事务控制是跟业务相关,只有复杂的业务才有事务控制
    servlet:控制层 (control)
    
    ------------------------webroot-------------------------
    jsp:数据展示(view)
    js images css (静态资源文件)
    
    
    ======单例======:运行期间有且仅有一个实例
    关键点:
    1、一个类只有一个实例---最基本的---(只提供私有的构造器)
    2、它必须自行创建这个实例---(定义了静态的该类的私有对象)
    3、它必须自行向整个系统提供这个实例 -----(提供一个静态的公有的方法,返回创建或者获取本身的静态私有对象)
    
    lazy loading 延迟加载
     以时间换空间
    懒汉模式:(线程不安全--1、同步 2、双重校验锁)
    比较懒,在类加载的时候,不创建实例,运行调用的时候创建。
    类加载快,在运行时获取对象速度慢
    
     以空间换时间
    饿汉模式:(线程安全)
    类加载的时候,就完成了初始化。所以类加载慢,但是在运行时获取对象
    
    静态内部类(保证了lazy loading的特性)
    
    
    方法的重载体现了面向对象多态的思想
    
    =================JDBC=================
    1、service (try catch)
    connection.setAutoCommit(false);
    dao.add()...update()...delete()
    connection.commit();
    connection.rollback();
    close(connection、nullnull);
    
    2、dao(throws Exception)
    executeUpdate()......
    close(null、prepareStatement、resultSet)
    
    3、BaseDao(操作数据库的基类)静态类
    获取连接(connection)throws Exception
    查询操作(sql、params、connection、prepareStatement、resultSet)
    更新操作(sql、params、connection、prepareStatement)
    关闭资源(connection、prepareStatement、resultSet)
    
    
    ====页面结构
    css
    html
    js
    
    ===登录、注销、查询====
    
    
    ===用户管理----增加用户======
    修改,查看,删除
    
    修改,查看====根据ID 获取ID 获取user信息(getUserInfoById)
    保存修改信息
    
    dao service
    
    =====修改密码=====
    
    1、验证旧密码是否正确(输入的旧密码和当前用户的密码)--ajax
    2、保存新密码(数据库)--form
    
    ====供应商管理=====
    dao================================
    //1 增加供应商
    boolean add(Connection connection, Provider provider)throws Exception
    //2 修改供应商
    boolean modify(Connection connection, Provider provider)throws Exception;
    //3 删除供应商
    boolean deleteProviderById(Connection connection, String delId)throws Exception;
    delete from smbms_provider where id=?
    
    扩展:如果根据供应商类型进行批量删除的话
    boolean deleteProviderByProType(Connection connection, String proType)throws Exception;
    delete from smbms_provider where proType=?
    
    //封装的删除方法
    deleteProvider (Connection connection, Provider provider)
    sql语句要进行拼接
    StringBuffer sql= new StringBuffer();
    sql.append("delete from smbms_provider");
    if(!StringUtils.isNULLorEmpty(provider.getId())){
        sql.append(" where id=?");
    }else if(!StringUtils.isNULLorEmpty(provider.getProType())){
        sql.append(" where proType=?");
    }
    
    如果并存的情况
    if(!StringUtils.isNULLorEmpty(provider.getId())){
        sql.append(" where id=?");
    }
    if(!StringUtils.isNULLorEmpty(provider.getProType())){
        sql.append(" where proType=?");
    }
    
    。。。。。。。
    userService.deleteProvider(Provider provider);
    //根据ID删除
    provider.setId("2")
    //根据供应商类别删除
    provider.setProType("3")
    
    //4 获取供应商列表
    List<Provider> getProviderList(Connection connection,String proName)throws Exception;
    select * from smbms_provider where proName= like?
    
    List<Provider> getProviderList(Connection connection,Provider provider)throws Exception;
    select * from smbms_provider where proName= like? and...and...
    
    原则:
    凡是需要用户输入的查询都是模糊查询,凡是需要用户选择的查询都是精确查询(传到后台的是id)
    
    //5 根据ID获取供应商详细信息
    Provider getProviderById(Connection connection, String id)throws Exception;
    
    ====订单管理======
    //增加订单
    boolean add(Connection connection, Bill bill) throws Exception;
    //修改订单
    项目笔记

    一定要搞完!!!!

  • 相关阅读:
    C# 单例模式
    [C# 线程处理系列]专题四:线程同步
    C#实现远程开机(局域网测试通过)
    C#实现类只实例化一次(被多个类访问调用)
    c#委托与事件、消息、WndProc用法(转)
    UML 类图常用表示方法.
    C# Socket 接受数据不全的处理
    执行数据库操作失败: 连接未关闭。 连接的当前状态为打开
    hdu 2018 母牛的故事 动态规划入门题
    Codeforces 1029B. Creating the Contest 动态规划O(nlogn)解法 及 单调队列O(n)解法
  • 原文地址:https://www.cnblogs.com/xtdxs/p/6687274.html
Copyright © 2011-2022 走看看