java web个人通讯录系统设计

Java web个人通讯录系统设计的完整攻略,一般包含以下几个部分:

1.需求分析

在进行系统设计之前,首先需要对需求进行分析。需求分析包括确定系统所需要的功能,确定系统的用户类型,确定系统的使用环境等。在进行需求分析时,需要充分考虑到用户的需求和实际使用环境,确保系统的功能和性能达到用户的期望。

2.系统设计

在确定了需求之后,需要进行系统设计。系统设计包括确定系统的架构,选择适合的编程语言和数据库,以及确定系统的安全性和性能等。在进行系统设计时,需要自己根据个人情况和要求进行合理选择。

3.数据库设计

数据库是系统中非常重要的一部分,需要根据需求对数据库进行设计。在数据库设计时,需要考虑到数据库表的结构、关系及索引等。同时,要确保数据库的性能和安全性。

4.编码实现

在系统设计和数据库设计完成之后,可以开始进行编码实现。在编码实现中,需要根据之前的设计进行具体的实现。需要结合具体编程语言和框架来完成编码实现。

5.测试和优化

编码实现完成后,需要进行系统测试和优化。在测试过程中,需要对系统进行各种测试,确保系统运行无误。在优化过程中,需要对系统进行优化,以提高系统的性能和可靠性。

示例1:数据库建立与设计

在进行数据库设计时,可以采用MySQL数据库,在MySQL中创建对应的数据库以及数据表。

CREATE DATABASE address_book DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE address_book;

CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

CREATE TABLE contact (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
phone varchar(255) NOT NULL,
email varchar(255) NOT NULL,
user_id int(11) NOT NULL,
PRIMARY KEY (id),
KEY user_id (user_id),
CONSTRAINT contact_ibfk_1 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

通过以上操作,实现了名为address_book的数据库建立,并创建了用户表(user)和联系人表(contact)。

示例2:代码实现

在进行代码实现时,可以采用Spring Boot框架,通过MyBatis进行操作数据库。首先需要引入MySQL、Spring Boot等相关依赖。

在进行代码实现时,需要关注通讯录系统的核心功能:用户的注册与登录以及联系人的增删改查。具体实现可以参考以下代码:

1.用户注册

@RequestMapping(value = "/register", method = RequestMethod.POST)
public String register(@Validated User user, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
List errorMessages = new ArrayList<>();
for (ObjectError error : bindingResult.getAllErrors()) {
errorMessages.add(error.getDefaultMessage());
}
model.addAttribute("errorMessages", errorMessages);
return "register";
}
User existUser = userService.selectByUsername(user.getUsername());
if (existUser != null) {
model.addAttribute("errorMessage", "用户名已存在");
return "register";
}
userService.insertUser(user);
return "redirect:/login";
}

2.用户登录

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(User user, Model model, HttpSession session) {
User existUser = userService.selectByUsername(user.getUsername());
if (existUser != null && user.getPassword().equals(existUser.getPassword())) {
session.setAttribute("userId", existUser.getId());
return "redirect:/contacts";
}
model.addAttribute("errorMessage", "用户名或密码错误");
return "login";
}

3.联系人的展示

@RequestMapping(value = "/contacts", method = RequestMethod.GET)
public String contacts(HttpSession session, Model model) {
Integer userId = (Integer) session.getAttribute("userId");
List contacts = contactService.selectByUserId(userId);
if (!CollectionUtils.isEmpty(contacts)) {
model.addAttribute("contacts", contacts);
}
return "contacts";
}

4.联系人的新增

@RequestMapping(value = "/contacts", method = RequestMethod.POST)
public String addContact(Contact contact, HttpSession session) {
Integer userId = (Integer) session.getAttribute("userId");
contact.setUserId(userId);
contactService.insertContact(contact);
return "redirect:/contacts";
}

5.联系人的删除

@RequestMapping(value = "/contacts/{id}", method = RequestMethod.DELETE)
@ResponseBody
public String deleteContact(@PathVariable("id") Integer id) {
contactService.deleteContact(id);
return "success";
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java web个人通讯录系统设计 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • 详解Android客户端与服务器交互方式

    非常感谢您对Android客户端与服务器交互方式的关注。在此给您详细讲解Android客户端与服务器交互方式的攻略。 什么是Android客户端与服务器交互? Android客户端与服务器交互是指在Android手机上使用网络协议与服务器进行数据交互的过程。这种交互方式被广泛应用在Android应用程序的开发中,比如基于网络服务的即时通讯、电商 App 中的…

    Java 2023年5月19日
    00
  • 使用IDEA开发配置Java Web的初始化过程

    以下是使用IDEA开发配置Java Web的初始化过程详细攻略: 步骤一:创建项目 1.打开IDEA,选择File -> New -> Project 2.选择“Java Web”,点击“Next” 3.填写“Project name”和“Project location”,然后点击“Next” 4.选择“Web Application”,并选择…

    Java 2023年5月19日
    00
  • 详解SpringBoot简化配置分析总结

    详解SpringBoot简化配置分析总结 Spring Boot是一个流行的Java框架,可以帮助开发人员快速构建和部署应用程序。Spring Boot通过简化配置和提供自动配置来提高开发效率。本文将详细讲解Spring Boot简化配置的原理和实现,并提供两个示例,演示如何使用Spring Boot简化配置。 1. Spring Boot简化配置的原理 S…

    Java 2023年5月14日
    00
  • 详解Java8 新特性之日期API

    下面我将为您详细讲解 “详解Java8 新特性之日期API” 的完整攻略。 1. 了解Java8 中的日期API Java8中一项重要的变化就是提供了新的日期API。Java 8中引入了新的日期API是为了弥补旧API中存在的一些问题。使用旧的日期API中存在的问题包括不可变性、线程安全性和性能问题。Java 8中的新的日期API弥补了这些问题,并在操作日期…

    Java 2023年5月20日
    00
  • java的Hibernate框架报错“UnresolvableObjectException”的原因和解决方法

    当使用Hibernate框架时,可能会遇到“UnresolvableObjectException”错误。这个错误通常是由于以下原因之一引起的: 对象不存在:如果您尝试加载一个不存在的对象,则可能会出现此错误。在这种情况下,需要确保您的对象存在于数据库中。 对象已被删除:如果您尝试加载一个已被删除的对象,则可能会出现此错误。在这种情况下,需要确保您的对象未被…

    Java 2023年5月4日
    00
  • SpringBoot工程启动顺序与自定义监听超详细讲解

    Spring Boot工程启动顺序与自定义监听超详细讲解 Spring Boot是一个非常流行的Java Web框架,它提供了许多方便的功能,如自动配置、快速开发和易于部署。在Spring Boot应用程序启动时,Spring Boot会按照一定的顺序初始化各个组件。本文将介绍Spring Boot工程启动顺序,并提供两个示例。同时,我们还将介绍如何自定义监…

    Java 2023年5月15日
    00
  • java eclipse 启动参数

    Java Eclipse启动参数是在启动Eclipse时传递给JVM的一组特殊参数,用于设置系统的属性,配置内存和调试信息等。以下是详细的Java Eclipse启动参数攻略: 设置Java版本 在启动Eclipse时,可以通过在eclipse.ini文件中设置vm参数来指定使用的Java版本。例如,假设Eclipse安装目录下的eclipse.ini文件如…

    Java 2023年6月15日
    00
  • Java实现Dijkstra算法的示例代码

    让我来为你详细讲解“Java实现Dijkstra算法的示例代码”的完整攻略。 什么是Dijkstra算法? Dijkstra算法是一种用于在加权图中查找最短路径的算法。其基本思路是从起点开始,依次考虑所有可能的路径,并选择当前距离最近的节点作为下一个起点。通过不断更新节点的最短距离,最终找到起点到终点的最短路径。 实现步骤 实现Dijkstra算法的步骤如下…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部