0033Java程序设计-基于java的NBA球队运营管理系统的的设计与实现论文

本文主要是介绍0033Java程序设计-基于java的NBA球队运营管理系统的的设计与实现论文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 摘 要
    • 目 录
    • 系统设计
    • 开发环境

摘 要

本NBA球队运营管理系统设计目标是实现NBA球队运营管理的信息化管理,提高管理效率,使得NBA球队运营管理工作规范化、科学化、高效化。

本文研究的NBA球队运营管理系统基于SSM架构,采用JSP技术、JAVA编程语言和MYSQL数据库设计开发。通过本系统,实现了管理员和用户两个角色的功能,能够有效提高NBA球队运营管理效率。本系统经过测试,运行效果稳定,操作方便、快捷,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的NBA球队运营管理平台。

论文首先阐述了NBA球队运营管理系统的开发,并对该系统进行了较详细的需求分析,探讨了NBA球队运营管理系统的功能需求、业务流程、系统结构和数据库设计等方面的问题。望能利用先进的计算机技术和网络技术来改变目前的NBA球队运营管理状况,提高管理效率。

**关键词:**NBA球队运营管理系统;MYSQL数据库;SSM架构;JSP技术

目 录

1 绪论… 1

1.2 课题背景… 1

1.2 目的和意义… 2

2 关键技术介绍… 3

2.2 系统开发工具… 3

2.2 Java简介… 3

2.3 SSM架构… 3

2.4 JSP技术… 5

2.5 MYSQL数据库… 5

2.3 B/S架构… 6

3 系统分析… 8

3.1 可行性分析… 8

3.2 系统性能分析… 9

3.3 系统功能分析… 10

3.4 系统UML用例分析… 10

3.5 系统流程分析… 11

3.5.1 操作流程… 11

3.5.2 添加信息流程… 13

3.5.3 修改信息流程… 14

3.5.4 删除信息流程… 14

4 系统设计… 15

4.1 系统结构设计… 15

4.2 系统功能模块设计… 16

4.3 系统开发流程设计… 16

4.4 数据库设计… 17

4.4.1 数据库实体(E-R图)… 17

4.4.1 数据库表设计… 19

5 系统实现… 22

5.1 登录模块的实现… 22

5.2 注册模块的实现… 25

5.3 基本信息管理模块的实现… 27

5.4 球员和球队管理模块的实现… 28

5.5 球员数据管理模块的实现… 32

5.6 球迷管理模块的实现… 33

6 系统测试… 36

5.1 测试目的… 36

5.2 测试方法… 37

5.3 测试用例设计… 37

5.3 测试分析… 38

总 结… 40

致 谢… 42

参考文献… 43

外文原文… 44

中文翻译… 50

系统设计

本NBA球队运营管理系统主要实现了管理员和用户两个用户角色的功能,其具体介绍如下:

l 管理员:管理员登录后功能有基本信息管理,球队管理,球员管理,球员数据管理,球迷管理。

l 用户:用户登录后功能有基本信息管,球队管理,球馆管理和球员数据管理。

l 球迷信息管理:对球迷的基本信息(如ID,姓名,年龄,居住地等)进行录入和修改。

l 球员数据信息管理:对球员的数据信息(如球员场均得分,场均篮板,场均助攻,场均抢断,场均失误等)录入和更新。

l 管理员信息管理:管理个人用户信息的录入和修改。(管理员只属于重庆,北京,上海等城市)

l 每支球队信息管理:对球队的数据信息(如球队ID,球队名,战绩等)录入和更新。

球员信息管理:对球员信息(如年龄,身高,司职位置等)进行录入和修改。

管理员和用户要想进入本基于Java的NBA球队运营管理系统,首先进行系统登录界面,需要在登录界面填写正确的用户名和密码,选择登录类型点击登录按钮进行登录操作,系统会对用户名、密码和用户类型进行验证,信息正确则登录成功进入对应用户功能界面可进行功能处理,反之登录失败,登录界面如图5-1所示。

img

在SpringMVC中,控制器Controller负责处理由DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model,然后再把该Model返回给对应的View进行展示。在SpringMVC中提供了一个非常简便的定义Controller的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller标记一个类是Controller,然后使用@RequestMapping和@RequestParam等一些注解用以定义URL请求和Controller方法之间的映射,这样的Controller就能被外界访问到。此外Controller不会直接依赖于HttpServletRequest和HttpServletResponse等HttpServlet对象,它们可以通过Controller的方法参数灵活的获取到。

可以使用@RequestMapping来映射URL到控制器类,或者是到Controller控制器的处理方法上。当@RequestMapping标记在Controller类上的时候,里面使用@RequestMapping标记的方法的请求地址都是相对于类上的@RequestMapping而言的;当Controller类上没有标记@RequestMapping注解时,方法上的@RequestMapping都是绝对路径。这种绝对路径和相对路径所组合成的最终路径都是相对于根路径“/”而言的。

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

public String login(String userName,String userPw,int userType) throws Exception{​       System.out.println("userType"+userType);​       try​       {​           Thread.sleep(700);​       } catch (InterruptedException e)​       {​           // TODO Auto-generated catch block​           e.printStackTrace();​       }​       String result="no";​     if(userType==0){​        TAdmin admin = new TAdmin();​           admin.setUserName(userName);​           admin.setUserPw(userPw);​           List adminList=tAdminService.queryTAdminList(admin);​           if(adminList.size()==0)​           {​                result="no";​           }​           else​           {​                WebContext ctx = WebContextFactory.get(); ​                HttpSession session=ctx.getSession(); ​                TAdmin adminUser=(TAdmin)adminList.get(0);​                session.setAttribute("userType", "0");​          session.setAttribute("admin", adminUser);​          result="yes";​           }​     }​     if(userType==1){​        Userinfo userinfo = new Userinfo();​        userinfo.setUname(userName);​        userinfo.setPwd(userPw);​           List userList=userinfoService.queryUserinfoList(userinfo);​           if(userList.size()==0)​           {​                result="no";​           }​           else​           {​                WebContext ctx = WebContextFactory.get(); ​                HttpSession session=ctx.getSession(); ​                Userinfo uinfo=(Userinfo)userList.get(0);​                session.setAttribute("userType", 1);​          session.setAttribute("user", uinfo);​          result="yes";​           }​     }​       return result;}

未有账号的用户可进入注册界面进行注册操作,注册信息包括用户名、密码、姓名、邮箱以及联系方式等,用户注册界面如图5-2所示。

img

管理员在修改密码界面可输入原密码、新密码,点击修改按钮进行修改密码操作,修改密码界面如图5-4所示。

img

管理员登录后可进行球队管理操作,可添加、修改和删除球队信息,用户可查看球队信息,无权进行管理操作,管理员球队管理界面展示如图5-5所示。添加球队界面如图5-6所示。

img

管理员登录后可进行球员管理操作,可添加、修改和删除球员信息,用户可查看球员信息,无权进行管理操作,管理员球员管理界面展示如图5-7所示。添加球员界面如图5-8所示。

img

@RequestMapping(value="/qiuyuanList")public String qiuyuanList(HttpServletRequest request) throws Exception{​       Qiuyuan qiuyuan = new Qiuyuan();​       List<Qiuyuan> qiuyuanList=qiuyuanService.queryQiuyuanList(qiuyuan);​       if(qiuyuanList!=null && qiuyuanList.size()>0){​           for (Qiuyuan qiuyuan2 : qiuyuanList) {​               qiuyuan2.setQiudui(qiuduiService.queryQiuduiById(qiuyuan2.getQd()));​           }​       }​       request.setAttribute("qiuyuanList", qiuyuanList);​       return "/admin/qiuyuan/qiuyuan_list.jsp";}

SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。同时SqlSessionFactory也是线程安全的,SqlSessionFactory一旦被创建,应该在应用执行期间都存在。在应用运行期间不要重复创建多次,建议使用单例模式,SqlSessionFactory是创建SqlSession的工厂。

管理员登录后可进行球员数据管理操作,可添加、修改和删除球员数据信息,用户可查看球员数据信息,无权进行管理操作,管理员球员数据管理界面展示如图5-9所示。添加球员数据界面如图5-10所示。

img

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DbUtil {private String dbUrl="jdbc:mysql://127.0.0.1:3306/database?serverTimezone=UTC&useSSL=false"; // 数据库连接地址private String dbUserName="root"; // 用户名private String dbPassword="123456"; // 密码private String jdbcName="com.mysql.cj.jdbc.Driver"; // 驱动名称/*** 获取数据库连接* @return* @throws Exception*/public Connection getCon(){try {Class.forName(jdbcName);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}Connection con = null;try {con = DriverManager.getConnection(dbUrl, dbUserName, dbPassword);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return con;}/*** 关闭数据库连接* @param con* @throws Exception*/public void closeCon(Connection con)throws Exception{if(con!=null){con.close();}}public static void main(String[] args) {DbUtil dbUtil=new DbUtil();try {dbUtil.getCon();System.out.println("数据库连接成功!");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();System.out.println("数据库连接失败");}}
}

开发环境

开发工具:idea、Navicat

数据库:MySQL8.0

环境配置:jdk1.8 、Tomcat8.5

开发人员:IT012201

这篇关于0033Java程序设计-基于java的NBA球队运营管理系统的的设计与实现论文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/303293

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

Java进阶13讲__第12讲_1/2

多线程、线程池 1.  线程概念 1.1  什么是线程 1.2  线程的好处 2.   创建线程的三种方式 注意事项 2.1  继承Thread类 2.1.1 认识  2.1.2  编码实现  package cn.hdc.oop10.Thread;import org.slf4j.Logger;import org.slf4j.LoggerFactory

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu