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
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
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技术站