【狂神说Java】JavaWeb项目—SMBMS(超市管理项目)

本文详细介绍了SMBMS超市管理项目的搭建过程,包括项目准备工作、登录功能实现与优化、密码修改、用户管理等功能。讲解了从数据库配置到前端页面的各个步骤,涉及Maven Web项目、SSM框架、Ajax优化以及角色权限管理。
摘要由CSDN通过智能技术生成

SMBMS(超市管理项目)

在这里插入图片描述

数据库:
在这里插入图片描述
项目如何搭建?
考虑是不是用maven? jar包,依赖

搭建项目准备工作

  1. 搭建一个maven web 项目

  2. 配置Tomcat

  3. 测试项目是否能够跑起来

  4. 导入项目中需要的jar包;
    jsp,Servlet,mysql驱动jstl,stand…

  5. 构建项目包结构
    在这里插入图片描述

  6. 编写实体类
    ROM映射:表-类映射

  7. 编写基础公共类
    1、 数据库配置文件(mysql5.xx和8.xx的编写有差异)

    driver=com.mysql.jdbc.Driver
    #在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8
    url=jdbc:mysql://127.0.0.1:3306/smbms?useSSL=false&useUnicode=true&characterEncoding=utf-8
    user=root
    password=root
    

    2、编写数据库的公共类

package dao;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 操作数据库的基类--静态类
 * @author Administrator
 *
 */
public class BaseDao {
   
	
	static{
   //静态代码块,在类加载的时候执行
		init();
	}
	
	private static String driver;
	private static String url;
	private static String user;
	private static String password;
	
	//初始化连接参数,从配置文件里获得
	public static void init(){
   
		Properties params=new Properties();
		String configFile = "database.properties";
		InputStream is=BaseDao.class.getClassLoader().getResourceAsStream(configFile);
		try {
   
			params.load(is);
		} catch (IOException e) {
   
			e.printStackTrace();
		}
		driver=params.getProperty("driver");
		url=params.getProperty("url");
		user=params.getProperty("user");
		password=params.getProperty("password");

	}   
	
	
	/**
	 * 获取数据库连接
	 * @return
	 */
	public static Connection getConnection(){
   
		Connection connection = null;
		try {
   
			Class.forName(driver);
			connection = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
   
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return connection;
	}
	/**
	 * 查询操作
	 * @param connection
	 * @param pstm
	 * @param rs
	 * @param sql
	 * @param params
	 * @return
	 */
	public static ResultSet execute(Connection connection,PreparedStatement pstm,ResultSet rs,
			String sql,Object[] params) throws Exception{
   
		pstm = connection.prepareStatement(sql);
		for(int i = 0; i < params.length; i++){
   
			pstm.setObject(i+1, params[i]);
		}
		rs = pstm.executeQuery();
		return rs;
	}
	/**
	 * 更新操作
	 * @param connection
	 * @param pstm
	 * @param sql
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public static int execute(Connection connection,PreparedStatement pstm,
			String sql,Object[] params) throws Exception{
   
		int updateRows = 0;
		pstm = connection.prepareStatement(sql);
		for(int i = 0; i < params.length; i++){
   
			pstm.setObject(i+1, params[i]);
		}
		updateRows = pstm.executeUpdate();
		return updateRows;
	}
	
	/**
	 * 释放资源
	 * @param connection
	 * @param pstm
	 * @param rs
	 * @return
	 */
	public static boolean closeResource(Connection connection,PreparedStatement pstm,ResultSet rs){
   
		boolean flag = true;
		if(rs != null){
   
			try {
   
				rs.close();
				rs = null;//GC回收
			} catch (SQLException e) {
   
				// TODO Auto-generated catch block
				e.printStackTrace();
				flag = false;
			}
		}
		if(pstm != null){
   
			try {
   
				pstm.close();
				pstm = null;//GC回收
			} catch (SQLException e) {
   
				// TODO Auto-generated catch block
				e.printStackTrace();
				flag = false;
			}
		}
		if(connection != null){
   
			try {
   
				connection.close();
				connection = null;//GC回收
			} catch (SQLException e) {
   
				// TODO Auto-generated catch block
				e.printStackTrace();
				flag = false;
			}
		}
		
		return flag;
	}

}

3、编写字符编码过滤器

  1. 导入静态资源

登录功能实现

在这里插入图片描述

  1. 编写前端页面
  2. 设置首页
    1.设置欢迎首页
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  1. 编写dao层登录用户登录的接口
public User getLoginUser(Connection connection, String userCode) throws Exception;
  1. 编写dao层接口的实现类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import dao.BaseDao;
import pojo.User;

public class UserDaoImpl implements UserDao{
   
	//持久层只做查询数据库的内容
	public User getLoginUser(Connection connection, String userCode) throws Exception{
   
		//准备三个对象
		PreparedStatement pstm = null;
		ResultSet rs = null;
		User user = null;
		//判断是否连接成功
		if(null != connection){
   
			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;
	}	
}
  1. 业务层接口
//用户登录
public User login(String userCode, String userPassword);
  1. 业务层实现类
import java.sql.Connection;

//import org.junit.Test;

import dao.BaseDao;
import dao.user.UserDao;
import dao.user.UserDaoImpl;
import pojo.User;

public cl
### 回答1: b站狂神javaweb smbms项目是一个基于JavaWeb技术的超市管理系统,主要功能包括商品管理、订单管理、用户管理等。该项目采用MVC架构,使用了JSP、Servlet、JDBC等技术,具有较高的实用性和可扩展性。通过学习该项目,可以深入了解JavaWeb开发的流程和技术,提高自己的编程能力。 ### 回答2: B站的“狂神Javaweb SMBMS项目”是一门使用Java Web技术开发的视频教程。这个项目主要用于实践学习的目的,可以帮助初学者更好地理解Java Web开发的流程和相关技术。 该视频教程的难度比较适中,讲解详细,由浅入深,循序渐进。适合有一定基础的Java学习者跟随学习,透彻了解Java Web开发的整个流程。项目SMBMS为主题,又称超级简易订单管理系统,是一个比较典型的Java Web项目。 在项目中,学习者将学习到多种技术和工具的应用,比如JSP、Servlet、JavaBean、JDBC等等,同时也会接触到MySql数据库的使用。学习者需要按照视频教程中准备好的模板和代码进行实践,学习到开发一个完整的JavaWeb项目的方方面面。 总体来,该视频教程以项目实践为主,相较于纯理论学习更加有趣和实用。学习者通过自己的实践,可以更加深入地理解JavaWeb技术开发的本质。这个项目是非常受欢迎的,同时B站也有其他狂神讲授的课程,同时推荐给有志于学习JavaWeb开发的同学们。 ### 回答3: B站狂神javaweb SMBMS项目是一个非常优秀的JavaWeb项目,它可以帮助JavaWeb工程师更好地理解和掌握JavaWeb开发技术,同时也可以为初学者提供一个很好的学习范例。 该项目主要包含了SMBMS超市管理系统的设计与实现,它的功能非常全面,包括用户管理、供应商管理、订单管理、商品管理等等。该系统的界面美观,功能完善,交互体验优秀。 在该项目的实现过程中,狂神老师采用了现代化的技术栈,如SSH框架、Bootstrap、JQuery等,不仅实现了界面与后台逻辑的分离,而且做到了代码复用,减少了代码的冗余。在此基础上,老师还掌握了AJAX技术,实现了无刷新交互,提升了系统的用户体验。 此外,该项目还采用了Maven工程管理工具,将各个功能模块进行模块化开发,同时实现了持久层的数据访问和事务管理,减轻了后台开发的难度。 总之,该SMBMS超市管理系统项目结合了诸多技术,实现了一个功能完备、极具可操作性的系统,从而满足了JavaWeb开发的许多需求。学习该项目,可以加深对JavaWeb开发技术的理解,提升开发能力和实战水平。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值