java web个人通讯录系统设计

yizhihongxing

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日

相关文章

  • 什么是栈区?

    以下是关于栈区的详细讲解和使用攻略: 栈区的作用是什么? 栈区(Stack)是一种用于存储方法调用和局部变量的内区域。栈区是线程有的,其大小可以通过 -Xss 参数进行设置。 栈区的使用攻略 使用栈区,需要注意以下点: 在程序发中需要合理使用内存,避免出现栈溢出等问题。 在方法调用过程中,需要注意方法的嵌套深度避免出现栈溢出等问题。 在方法中定义局部变量时,…

    Java 2023年5月12日
    00
  • Spring框架核心概念小结

    下面是Spring框架核心概念的完整攻略: Spring框架核心概念小结 1. IoC容器 IoC全称Inversion of Control,中文名为控制反转。在Spring框架中,IoC容器负责管理Java对象的创建和销毁,并且通过依赖注入的方式将对象之间的依赖关系交给容器来管理。Spring框架的IoC容器实现了Bean的管理,也就是管理对象实例,并提…

    Java 2023年5月19日
    00
  • MyBatis注解开发之实现自定义映射关系和关联查询

    MyBatis注解开发之实现自定义映射关系和关联查询 什么是MyBatis注解? MyBatis是一款优秀的持久层框架,在开发过程中,我们需要使用XML来进行SQL的映射配置,这对于开发人员来说,可能存在一定的学习成本。 MyBatis注解是MyBatis框架提供的一种新的映射方式,它可以帮助我们在代码中轻松实现SQL映射配置,从而简化开发者的学习成本和开发…

    Java 2023年5月20日
    00
  • 详解SpringMVC的拦截器参数及拦截器链配置

    在 SpringMVC 中,拦截器是用于拦截请求并进行处理的组件。SpringMVC 提供了多种方式来配置拦截器,包括配置拦截器参数和拦截器链。本文将详细讲解 SpringMVC 的拦截器参数及拦截器链配置,包括如何配置拦截器参数、如何配置拦截器链等。 配置拦截器参数 在 SpringMVC 中,我们可以通过配置拦截器参数来控制拦截器的行为。拦截器参数可以通…

    Java 2023年5月18日
    00
  • JSP的include指令的使用方法

    当我们开发Java Web应用时,JSP是不可避免的一种技术选择。其中,JSP的include指令则是一种非常方便的模块化开发方式。本攻略将详细介绍include指令的使用方法,希望能对JSP开发者们有所启发。 1. 指令简介 在JSP中,include指令通过将一个JSP页面中的内容包含到另一个JSP页面中来实现模块化开发。它的语法如下: <%@ i…

    Java 2023年6月15日
    00
  • Java内省之Introspector解读

    Sure! 简介 Java 内省是指利用反射机制来获取某个类的信息,包括类的属性、方法和事件等,还有调用类的方法。简单来说,Java内省是用Java的反射机制来操作JavaBean的信息。JavaBean是一种约定,符合特定命名规范的Java类,具有无参构造器,并且有一系列的读写方法。JavaBean作为一种Java组件形式,它的易用性得到广泛认可。Java…

    Java 2023年5月20日
    00
  • Spring Cloud Data Flow初体验以Local模式运行

    以下是“Spring Cloud Data Flow初体验以Local模式运行”的完整攻略。 准备工作 首先需要创建一个Spring Boot项目,并添加如下依赖: <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> …

    Java 2023年5月20日
    00
  • Java 实现加密数据库连接的步骤

    Java 实现加密数据库连接一般可以通过以下步骤来完成: 1. 获取加密证书 获取一个数字证书(也称为数字信任证书、数字 ID 或代码签名证书),以确保使用加密连接时建立的通信是受信任的。可以通过向受信任的证书颁发机构购买一个证书或进行自签名认证来获得数字证书。 2. 将证书添加到 Java 密钥库 将数字证书添加到 Java 密钥库,以确保可以在客户端上验…

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