超适合练手的一套JavaWeb项目 (超市后台管理系统)

本文提供了一套完整的JavaWeb项目实战,包括项目搭建、登录功能实现与优化、密码修改、用户管理、订单和供应商管理等。通过GIF动态图演示,详细介绍了每个功能的实现步骤,涉及DAO、Service、Servlet和过滤器等技术。资料可在百度网盘获取,包含数据库和源代码。
摘要由CSDN通过智能技术生成

GIF动态图演示

在这里插入图片描述

百度百度网盘提取项目 带数据库![链接]:https://pan.baidu.com/s/13F2rxszZRLGDt9pr6ixYUg提取码:关注私信我发送!

一、项目搭建准备工作

  • 1.搭建一个maven web项目
  • 2.配置Tomcat
  • 3.测试项目是否能够跑起来
  • 4.导入项目中遇到的jar包
  • 5.创建项目结构
    在这里插入图片描述

6.编写实体类

ORM映射:表类映射

7.编写基础公共类

1.数据库配置文件

db.properties文件代码

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:https://localhost:3306?useUnicode=true&characterEncoding=utf-8
username=root
password=111111

2.编写数据库的公共类

java代码

package com.syj.dao;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

//操作数据库的公共类
public class BaseDao {
    private static String driver;
    private static String url;
    private static String username;
    private static String password;

    //静态代码块,类加载的时候就初始化了
    static {
        Properties properties = new Properties();
        //通过类加载器读取对应的资源
        InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("db.properties");

        try {
            properties.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        driver = properties.getProperty("driver");
        url = properties.getProperty("url");
        username = properties.getProperty("username");
        password = properties.getProperty("password");
    }

    //获取数据库的链接
    public static Connection getConnection(){
        Connection connection = null;
        try {
            Class.forName(driver);
            connection = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  connection;
    }

    //编写查询公共类
    public static ResultSet execute( Connection connection,String sql,Object[] params,ResultSet resultSet, PreparedStatement preparedStatement ) throws SQLException {
       preparedStatement = connection.prepareStatement(sql);
        for (int i = 0; i < params.length; i++) {
            //setObject,占位符从1开始,但是我们的数组是从0开始!
            preparedStatement.setObject(i+1,params[i]);
        }

        resultSet = preparedStatement.executeQuery();
        return resultSet;
    }

    //编写增删改查公共方法
    public static int execute( Connection connection,String sql,Object[] params, PreparedStatement preparedStatement ) throws SQLException {
        preparedStatement = connection.prepareStatement(sql);
        for (int i = 0; i < params.length; i++) {
            //setObject,占位符从1开始,但是我们的数组是从0开始!
            preparedStatement.setObject(i+1,params[i]);
        }

        int updateRows = preparedStatement.executeUpdate();
        return updateRows;
    }

    public static boolean closeResource(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet){
        boolean flag = true;

        if(resultSet != null){
            try {
                resultSet.close();
                //GC回收
                resultSet = null;
            } catch (SQLException e) {
                e.printStackTrace();
                flag = false;
            }
        }

        if(preparedStatement != null){
            try {
                preparedStatement.close();
                //GC回收
                preparedStatement = null;
            } catch (SQLException e) {
                e.printStackTrace();
                flag = false;
            }
        }

        if(connection != null){
            try {
                connection.close();
                //GC回收
                connection = null;
            } catch (SQLException e) {
                e.printStackTrace();
                flag = false;
            }
        }

        return flag;
    }
}

3.编写字符编码过滤器

8.导入静态资源

二、登录功能实现

1.编写前端页面

2.设置欢迎界面

xml代码

<!--设置欢迎页面-->
    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>

3.编写dao层登录用户的接口

java dao层接口代码

package com.syj.dao.user;
import com.syj.entity.User;
import java.sql.Connection;
import java.sql.SQLException;
public interface UserDao {
    //得到登录的用户
    public User getLoginUser(Connection connection,String userCode) throws SQLException;
}

4.编写dao接口的实现类

java dao接口的实现类代码

package com.syj.dao.user;
import com.syj.dao.BaseDao;
import com.syj.entity.User;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDaoImpl implements UserDao{
    //得到要登录的用户
    public User getLoginUser(Connection connection, String userCode) throws SQLException {
        PreparedStatement pstm = null;
        ResultSet rs = null;
        User user = null;

        if(connection != null){
            String sql = "select * from smbms_user where userCode=?";
            Object[] params = {userCode};
            rs = BaseDao.execute(connection,pstm,rs,sql,params);
            if(rs.next()){
                user = new User();
                user.setId(rs.getInt("id"));
                user.setUserCode(rs.getString("userCode"));
                user.setUserName(rs.getString("userName"));
                user.setUserPassword(rs.getString("userPassword"));
                user.setGender(rs.getInt("gender"));
                user.setBirthday(rs.getDate("birthday"));
                user.setPhone(rs.getString("phone"));
                user.setAddress(rs.getString("address"));
                user.setUserRole(rs.getInt("userRole"));
                user.setCreatedBy(rs.getInt("createdBy"));
                user.setCreationDate(rs.getTimestamp("creationDate"));
                user.setModifyBy(rs.getInt("modifyBy"));
                user.setModifyDate(rs.getTimestamp("modifyDate"));
            }
            BaseDao.closeResource(null,pstm,rs);
        }
        return user;
    }
}

5.业务层接口

java service接口代码

package com.syj.service.user;
import com.syj.entity.User;
public interface UserService {
        //用户登录
    public
评论 38
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值