Java自学第6课:电商项目(1)

news2024/11/23 5:06:58

从本课开始,我们跟着项目一起来敲代码。通过项目来学习Java和Java web

1 开始

首先了解要做什么项目,这里选择B2C电商。

需求分析很重要,所以要了解甲方业务流程。

之后配置开发环境,选择开发工具。

然后就是搭建开发环境,安装软件,这一步我们已经完成,除了数据库没安装。

最后,学习SQL数据库相关知识。

说白了,就是做一个在线版的数据库管理软件。

最后,了解一下测试,有功能测试和压力测试。

下面是需求分析图

2 E-R图

E-R图就是实体-关系图,可以不会画,但得能看懂,计算机专业的都会。

  • 长方形---实体
  • 椭圆形--属性
  • 菱形---关系

定义:

  • 实体:数据模型中的数据对象
  • 属性:实体所具有的属性。
  • 关系:用来表示数据对象与数据对象之间的关系。

下面是一个实例:

有三种关系

  • 1对1
  • 1对多
  • 多对多

3 涉及的技术

(1)survlet就是java在服务器端的小程序。动态的生成web内容。

(2)jsp是java server page是一种动态网页技术,类似于asp技术。

(3)jsp和servlet一样在服务器端执行。jsp本质是servlet。

(4)el表达式express lenguiage,让开发更方便。

(5)jstl,jsp的标准标签库 standard tag library,通过jstl和el取代在页面嵌入java程序,可提高可读性,维护性,更方便。

(6)html是超文本标记语言,jquery,js都是前端脚本,bootstrap,my97date插件

4 开发环境

用eclipse,jdk,mysql,navicat就用前几节课配置的。

5 Tomcat服务器

5 安装MySQL

我安装的是5.5.47版

安装在C:\Programs\MySQL目录下,选择next继续即可,安装完后开始配置,选择develop模式

之后选择多功能数据库

之后选择innoDb安装路径,默认就行

之后选择并发链接数,我们随便给个10个就行

之后选择tcpip的端口号,并勾选严格遵循,且不需要防火墙,这是默认的。

之后选择字符集,选择第3个,并改为utf-8

之后注册为windows服务,然后在将环境变量path设置上。

之后设置root用户,就是管理员,在设置个密码,不勾选可远程登录。

之后就是等待 直接点击execute

然后就成功了,按finish

之后验证一下,win+r打开services.msc,有这个服务且是打开的就行。

如果要停止服务,在cmd下输入

net stop mysql

就可以。

登录,显示所有数据库,退出mysql

mysql -uroot -p****
show databases;
exit;

就可以。真是去年学的都忘得差不多了。

在wamp里,mysql可以通过phpadmin打开网页来操作。实际只需要用navicat就可以。

navicat是个绿色软件 ,不需要安装。

6 需求分析

根据需求来做数据库建模,也就是数据库设计

7 数据库建模

第1步,启动mysql服务。

第2步,打开navicat,新建root连接。

第3部,新建数据库

第4步 用图形界面 新建表结构

先创建t_user

再创建t_order设置外键

后面各个表格一一创建即可。

建好表以后,可以逆向看数据模型

数据表全部设计完,可以保存导出为sql文件,方便以后使用。

8 创建项目

打开eclipse,创建dynamic web project

命名,next

next,勾选gener...next

弹出询问this kind of project assoiciated with the java ee perspective... 选择no

默认没有server runtim 需要在项目biuld path添加,之后是这样子

里面已经自动生成了xml文件

里面含有配置信息,很重要。删除红框里的内容

改为:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>ebuys_stu</display-name>
<servlet>
	<servlet-name>index</servlet-name>
	<servlet-class>com.xxx.controller.InitController</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>index</servlet-name>
	<url-pattern>/index</url-pattern>
</servlet-mapping>
</web-app>

之后添加类库

导入jar包,这些jar包从哪里搞的?

据说是maven central拉取的,反正我搞不了,网上找半天,找齐了。

9 创建java包

再里面创建实体类

编辑类的内容

package com.xxx.vo;
/**
 * 创建标签实体类
 * @author Joe
 *
 */
public class Tag {
	private int id;
	private String name;
	private String url;
	
	public Tag() {
		
	}
	
	public Tag(int id, String name, String url) {
		super();
		this.id = id;
		this.name = name;
		this.url = url;
	}
	
}

 在写类的时候,快捷键很有用:

写注释: ctrl+/

空构造器---用来new对象:alt+/

有参构造器    alt+shift+s ----- o

get set 方法 alt+shift+s --- r

toString 方法 alt+shift+s --- s

package com.xxx.vo;
/**
 * 创建标签实体类
 * @author Joe
 *
 */
public class Tag {
	private int id;
	private String name;
	private String url;

	public Tag() {
		// TODO Auto-generated constructor stub
	}


	public Tag(int id, String name, String url) {
		super();
		this.id = id;
		this.name = name;
		this.url = url;
	}


	public int getId() {
		return id;
	}


	public void setId(int id) {
		this.id = id;
	}


	public String getName() {
		return name;
	}


	public void setName(String name) {
		this.name = name;
	}


	public String getUrl() {
		return url;
	}


	public void setUrl(String url) {
		this.url = url;
	}


	@Override
	public String toString() {
		return "Tag [id=" + id + ", name=" + name + ", url=" + url + "]";
	}
	

	
}

在新建大分类 小分类

package com.xxx.vo;

import java.util.ArrayList;
import java.util.List;

/**
 * 大类
 * @author Joe
 *
 */
public class ProductBigType {
	private Integer id;
	private String name;
	private String remarks;
	private List<ProductSmallType> smallTypeList = new ArrayList<ProductSmallType>();
	public ProductBigType() {
		// TODO Auto-generated constructor stub
	}
	
}

其中,引入List和ArrayList时会有红色波浪线,按照提示,引入java.util即可。

这里比较重要的就是按照业务逻辑增加了大类中的小类列表,这个在数据模型图是没有的,但根据业务关系而添加的。

再次熟悉下快捷键:

空构造器---用来new对象:alt+/

有参构造器    alt+shift+s ----- o

get set 方法 alt+shift+s --- r

toString 方法 alt+shift+s --- s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1185248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【16】c++11新特性 —>弱引用智能指针weak_ptr(1)

定义 std::weak_ptr&#xff1a;弱引用的智能指针&#xff0c;它不共享指针&#xff0c;不能操作资源&#xff0c;是用来监视 shared_ptr 中管理的资源是否存在。 use_count #include <iostream> #include <memory> using namespace std;int main() {shared_ptr…

最终前端后端小程序还有nginx配置

前端 前端 build 代码及其 放置位置 后端 nginx.conf 配置 user root;worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;events {worker_connections 1024; }http {include /etc/nginx/mime.types;default_type a…

SysML理论知识

概述 由来 长期以来系统工程师使用的建模语言、工具和技术种类很多&#xff0c;如行为图、IDEF0、N2图等&#xff0c;这些建模方法使用的符号和语义不同&#xff0c;彼此之间不能互操作和重用。系统工程正是由于缺乏一种强壮的标准的建模语言&#xff0c;从而限制系统工程师和…

电商API接口多平台全面分类|接入方式|提供测试

l 角色分类 对应角色主要包括&#xff1a; 依次表示公开查询应用、买家应用、卖家应用、商家应用、高级应用、专业应用被授权访问API的角色级别。其中公开查询应用为最低权限集合级别、专业 应用为最高权限集合级别。查、买、卖接口无需审批&#xff0c;仅受默认流量规则限制…

Windows上免费可用的 7 款外置硬盘数据恢复软件

这篇文章全面测试和比较了不同的外部硬盘恢复软件&#xff0c;并选出了其中最好的七个。您将看到有关 7 种数据恢复软件的详细报告&#xff0c;包括价格、支持的平台、目标用户、优缺点、易用性、恢复性能、扫描方法、扫描速度以及许多其他会影响用户体验的标准。第一个软件是最…

α-SRHLA

作者未提供代码

uniapp中picker 获取时间组件如何把年月日改成年月日默认时分秒为00:00:00

如图所示&#xff0c;uniapp中picker组件的日期格式为&#xff1a; 但后端要 2023-11-08 00:00:00格式 如何从2023-11-08转化为 2023-11-08 00:00:00&#xff1a;&#x1f447; const date new Date(e.detail.value);//"2023-11-17" date.setHours(0, 0, 0); // 2…

一文1700字使用Postman搞定各种接口token实战(建议收藏)

现在许多项目都使用jwt来实现用户登录和数据权限&#xff0c;校验过用户的用户名和密码后&#xff0c;会向用户响应一段经过加密的token&#xff0c;在这段token中可能储存了数据权限等&#xff0c;在后期的访问中&#xff0c;需要携带这段token&#xff0c;后台解析这段token才…

微服务中配置文件(YAML文件)和项目依赖(POM文件)的区别与联系

实际上涉及到了微服务架构中的两个重要概念&#xff1a;服务间通信和项目依赖管理。在微服务架构中&#xff0c;一个项目可以通过两种方式与另一个项目建立依赖关系&#xff1a;通过配置文件&#xff08;如YAML文件&#xff09;和通过项目依赖&#xff08;如POM文件&#xff09…

学完这套jmeter结果数据写入到指定文件,涨薪3k没问题

背景&#xff1a; 在日常的功能测试或者性能测试的时候&#xff0c;需要把结果中指定的数据保存到指定的文件&#xff0c;进行使用&#xff0c;发现 jmeter 自带的文件写入&#xff0c;没有自己需要的&#xff0c;默认只支持 XML 的结果保存&#xff0c;那么接下来我们围绕 bea…

【吞噬星空】地球怪兽沦为濒危物种,罗峰出发虬龙星,新剧情开始

Hello,小伙伴们&#xff0c;我是小郑继续为大家深度解析国漫资讯。 深度爆料&#xff0c;《吞噬星空》国漫第92话最新剧情解析&#xff0c;在银河系的边际&#xff0c;一艘宇宙飞船悄然启程&#xff0c;目的地是远离家乡的虬龙星。罗峰&#xff0c;这位年轻的旅者&#xff0c;…

【算法-链表1】移除链表元素 和 设计链表

今天&#xff0c;带来链表相关算法的讲解。文中不足错漏之处望请斧正&#xff01; 理论基础点这里 移除链表元素 1. 思路 链表的删除和插入&#xff0c;都是改变链接关系。 如图&#xff1a;要删除值为2的结点&#xff0c;要找到其上一个节点&#xff0c;让上一个节点指向值…

利用QT画图像的直方图

1.什么是直方图 直方图是一种图形化展示数据频率分布的方式。它将样本数据分成一系列相邻的区间&#xff0c;统计每个区间内数据所占比例或数量&#xff0c;并用矩形条形图表现出来。直方图可以反映样本数据的分布情况&#xff0c;例如它们的集中趋势、对称性和离散程度等。 …

几种解决mfc140.dll文件缺失的方法,电脑提示mfc140.dll怎么办

电脑提示mfc140.dll缺失&#xff0c;如果你不去处理的话&#xff0c;那么你的程序游戏什么都是启动不了的&#xff0c;如果你想知道有什么方法可以解决那么可以参考这篇文章进行解决&#xff0c;今天给大家几种解决mfc140.dll文件缺失的方法。电脑提示mfc140.dll也不用担心解决…

shell的for循环

列表for循环 列表for循环的语法结构如下: for variablein list #每一次循环&#xff0c;依次把列表list 中的一个值赋给循环变量 do #循环体开始的标志commands #循环变量每取一次值&#xff0c;循环体就执行一遍commands done #循环结束的标志&#xff0c;返回循环顶…

腾讯待办关停,导出的数据怎么恢复到手机上面?

相信有不少腾讯待办的用户都发现了其“业务关停通知”&#xff0c;确实如此&#xff0c;由于业务调整&#xff0c;腾讯待办将于2023年的12月20日全面停止运营并下架&#xff0c;这就表示以后我们无法继续使用它了。在腾讯待办关停之前&#xff0c;绝大多数用户需要做的就是及时…

推荐一款功能强大的在线文件预览工具-kkFileView

程序员的公众号&#xff1a;源1024&#xff0c;获取更多资料&#xff0c;无加密无套路&#xff01; 最近整理了一波电子书籍资料&#xff0c;包含《Effective Java中文版 第2版》《深入JAVA虚拟机》&#xff0c;《重构改善既有代码设计》&#xff0c;《MySQL高性能-第3版》&…

【论文笔记】UniPAD: A Universal Pre-training Paradigm for Autonomous Driving

原文链接&#xff1a;https://arxiv.org/pdf/2310.08370.pdf 1. 引言 过去的3D场景理解预训练方法多采用2D图像领域中的想法&#xff0c;可大致分为基于对比的方法和基于MAE的方法。 基于对比的方法通过对比损失&#xff0c;在特征空间中将相似的3D点拉进而将不相似的点分开…

Oracle获取执行计划的6种方法

一、什么是执行计划&#xff1f; 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。 执行计划描述了SQL引擎为执行SQL语句进行的操作&#xff0c;分析SQL语句相关的性能问题或仅仅质疑查询优化器的决定时&#xff0c;必须知道执行计划&#xff1b;所以执行计划常用…

Django框架的推导

文章目录 Web应用简介什么是Web框架&#xff1f;什么是Web&#xff1f;应用程序的两种模式Web应用程序的优缺点 手写Web框架HTTP协议的相关知识1.四大特性2.请求数据格式3.响应数据格式 手写框架 使用wsgiref模块基于wsgiref模块搭建Web框架(最初版)基于wsgiref模块搭建Web框架…