JavaWeb-书城项目总结


JavaWeb-书城项目总结

在这里插入图片描述
这是web的项目结构,目前还没利用到框架,开发流程就是:

在数据库内创建需要的对象对应的表

在这里插入图片描述
如图分为储存:

  • 书信息:每本书的名字,作者,价钱等属性
  • 订单信息:订单生成的时间,订单号,订单金额,订单项(哪些书)
  • 订单项信息:和书的属性差不多,多了一个订单号的标识,表示属于哪个订单
  • 用户信息:用户名和密码

建立Bean对象

在web项目下建立pojo类,建立由表格转换成的javabean对象,也就是java的属性对应表格的属性
在这里插入图片描述
这里购物车的Cart我们没有创建数据库表,是因为我们存放在Session域中,不用存放在数据库内,作为临时存放的数据

建立Jdbc.Util工具类

方便Dao层后续连接数据库
我们利用了druil类工具

建立BaseDao类

这个类是后面建立各种Dao可以继承的一个工具性质的类对象,通用


public abstract class BaseDao {

    //使用DbUtils操作数据库

    private QueryRunner queryRunner = new QueryRunner();


    //用来执行 Insert/Update/Delete语句
    public int update(String sql,Object ... args){
        Connection connection = JdbcUtils.getConnection();
        try {
            //连接对象,sql语句,占位符数据值
            return queryRunner.update(connection,sql,args);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            throw new RuntimeException(throwables);
        }
    }



    /**
     * 查询返回一个javaBean的sql语句
     * @param type  返回的对象类型
     * @param sql   执行的sql语句
     * @param args  占位符数据值
     * @param <T>  返回的类型值
     * @return
     */
    public <T> T queryForOne(Class<T> type,String sql,Object...args){
        Connection conn = JdbcUtils.getConnection();
        try {
            return queryRunner.query(conn,sql,new BeanHandler<T>(type),args);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            throw new RuntimeException(throwables);
        }

    }

    /**
     * 查询返回多个javaBean的sql语句
     * @param type  返回的对象类型
     * @param sql   执行的sql语句
     * @param args  占位符数据值
     * @param <T>  返回的类型值
     * @return
     */
    public <T> List<T> queryForList(Class<T> type, String sql, Object ... args){
        Connection conn = JdbcUtils.getConnection();
        try {
            return queryRunner.query(conn,sql,new BeanListHandler<T>(type),args);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            throw new RuntimeException(throwables);
        }
    }

    /**
     * 执行返回一行一列的sql语句
     * @param sql   sql语句
     * @param args  占位符数据值
     * @return    对应的参数值
     */
    public Object queryForSingleValue(String sql,Object... args){
        Connection conn = JdbcUtils.getConnection();
        try {
            return queryRunner.query(conn,sql,new ScalarHandler(),args);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            throw new RuntimeException(throwables);
        }

    }
}

建立操作各个数据库表格数据的Dao层代码

先建立接口,然后建立实现类实现接口方法
在这里插入图片描述

建立各个功能的Service,实现对各个Dao对象的功能调用

在这里插入图片描述

建立各个功能的Servlet程序,实现对Service的方法调用

在这里插入图片描述
BaseServlet是工具Servlet,利用反射功能使得复用doget方法,后面的servlet都直接继承BaseServlet即可,代码如下:

public abstract  class BaseServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req,resp);
    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        String action = req.getParameter("action");   //获取隐藏域对象的值,处理不同的请求

        try {
            //通过获取到的方法名称反射获取到java类方法
            Method method = this.getClass().getDeclaredMethod(action, HttpServletRequest.class, HttpServletResponse.class);
            //激活类方法,传入运行的对象和参数
            method.invoke(this,req,resp);

        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);  //抛给过滤器
        }
    }
}

加入Filter优化

在这里插入图片描述
ManagerFilter实现对每个页面进行权限判断
TranSactionFliter实现对每个操作进行事务管理,出错即回滚事务

项目需要的jar包

在这里插入图片描述

开发功能实现的流程图

分页功能:
在这里插入图片描述

找到价格区间的书:
在这里插入图片描述

订单功能:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaWeb网上书城项目源码是一个基于Java语言的网上书城销售系统代码,它具有网站前后端技术的开发和运用,可以帮助企业实现电子商务销售模式。 这个项目源码主要分为前端页面、后端服务以及数据库三个部分。前端使用了HTML、CSS、JavaScript等技术,通过页面设计和用户交互,实现用户浏览商品、购买商品、选购商品等操作。后端服务方面,使用了Java语言和Spring框架,实现了用户管理、商品管理、订单管理、支付管理等功能,并提供了RESTful API接口。数据库采用了MySQL数据库,存储了所有的数据信息,包括用户信息、商品信息、订单信息等。 该项目源码的优点在于可扩展性强,同时提供了灵活的API接口,可以方便地进行接口开发和数据交互。此外,代码具有较高的可复用性和可维护性,易于进行二次开发和定制化。 总而言之,该JavaWeb网上书城项目源码可以作为电商网站开发的参考资料,可以帮助企业快速搭建起一个功能完整、运行稳定的在线销售平台。但是,需要注意的是,该项目源码只是科技之星出品的一个学习教程项目,不保证其完整性和可用性,仅供学习和研究之用。 ### 回答2: 我目前并不掌握Javaweb网上书城项目的源码。不过,从我的经验来看,Javaweb网上书城项目通常被设计为一个包含各种功能的复杂系统。在这个系统中,通常有图书展示、搜索、购买、评论、用户管理、订单管理等诸多功能。为了实现这些功能,通常会使用数据库、服务端脚本、前端技术等多种技术组合。如果要实现一个强大、健壮的Javaweb网上书城项目,除了有扎实的编程技能之外,还需要充分的时间和精力来进行规划、设计、编码、测试、上线等多个环节。当然,有了优秀的架构师和开发团队,这个过程可以更为顺畅和高效。总的来说,Javaweb网上书城项目源码代表着互联网时代下的高科技产品,它促进了图书销售和阅读的数字化转型,同时也是一个涉及多个技术领域和众多用户需求的综合性项目。 ### 回答3: JavaWeb网上书城项目源码是一份基于Java语言开发的完整网站源代码,旨在为用户提供一个完整的在线书城购物体验。该项目具有完善的前端设计、高效的后端架构和优质的用户体验,可以为用户提供安全便捷的在线购书平台。 该项目实现了用户注册、登录、浏览、购物车、订单生成、支付、收货等功能,且所有的数据都存储在MySql数据库中,保证了数据的安全性和准确性。 在技术实现上,JavaWeb网上书城项目采用了JSP、Servlet、EL表达式、Filter、Listener等JavaWeb组件,使项目具有良好的可扩展性和可维护性。同时,该项目采用MVC架构,将用户界面、数据处理和应用逻辑分离,使代码更加清晰、简洁。 除此之外,JavaWeb网上书城项目还应用了Spring、MyBatis、Tomcat等技术,使项目更加高效、稳定和可靠。同时,使用Bootstrap、jQuery等第三方库实现了响应式设计,为用户提供了优质的跨平台使用体验。 总的来说,JavaWeb网上书城项目源码是一个优秀的电商平台源代码,具有良好的代码风格、可读性和可维护性,可以作为学习JavaWeb开发和电商平台搭建的重要参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值