客户管理系统

基于Java Servlet 构建的用户信息管理系统

项目展示:http://101.37.30.192:8080/userManger_w/login.html
项目二维码在这里插入图片描述

登录: root_w 123

核心功能展示

  1. 登录
  2. 注册
  3. 添加用户信息
  4. 删除某一个用户信息
  5. 删除选中的用户信息
  6. 分页查询所有用户信息
  7. 模糊查询用户信息
  8. 更新用户信息

在这里插入图片描述

重要知识点

  1. 简单的Web服务器设计能力
  2. Java 操作 MySQL 数据库
  3. 数据库设计
  4. json 的使用
  5. 强化 HTTP 协议的理解
  6. Servlet的使用
  7. Java集合的使用
  8. 前端知识的简单使用,比如:HTML+CSS+JS

整体架构

项目整体基于HTTP协议,前端使用HTML+CSS+JS构建页面整体布局,后端采用分层结构,分为Servlet层,
Service层,Dao层的设计,这样的设计可以让我们的项目代码实现高内聚低耦合。
在这里插入图片描述
数据库设计
只需要一张用户表,表示用户的信息

database if exists usermanger;
create DATABASE if not exists usermanger character set utf8;
use usermanger;
drop table if exists usermessage;
create table `usermessage` (
	`id` INT PRIMARY KEY auto_increment,
	`name` varchar (60),
	`username` varchar (60) default 'bit',
	`password` varchar (60) default '123456',
	`gender` varchar (4),
	`age` int,
	`address` varchar (90),
	`qq` varchar (20),
	`email` varchar (30)
);
INSERT INTO usermessage VALUES(1,'张飞','zhangfei','123','男',18,'成都','1262913815','126@qq.com');
INSERT INTO usermessage VALUES(2,'关羽','guanyu','1234','男',18,'陕西','1262913816','1262@qq.com');
INSERT INTO usermessage VALUES(3,'张三','zhangsan','1235','女',19,'陕西','1262913817','1263@qq.com');
INSERT INTO usermessage VALUES(4,'李四','lisi','1236','男',20,'北京','1262913818','1264@qq.com');
INSERT INTO usermessage VALUES(5,'王五','wangwu','1237','女',21,'陕西','1262913819','1265@qq.com');
INSERT INTO usermessage VALUES(6,'孙权','sunquan','1238','男',22,'上海','1262913814','1266@qq.com');
INSERT INTO usermessage VALUES(7,'孙悟空','sunwukong','1239','男',23,'陕西','1262913813','1267@qq.com');

服务器 API 设计
登录
请求: —————————— 响应:
POST /loginServlet ———— {msg: true}

添加用户

请求:————————————响应:
POST /addServlet——————{msg: true}

删除某一个用户信息

请求:
GET /deleteServlet?id=1

删除选中用户信息

请求:————————————————响应:
POST /deleteSelectedServlet——————{msg: true}

分页查询所有用户信息

请求:————————————————————响应:
POST /findByPageServlet—————— 响应体内容为,每一页的用户信息
data:{currentPage,rows,name,address,email}

模糊查询用户信息

请求:————————————————————响应:
POST /findByPageServlet—————— 响应体内容为,每一页的用户信息
data:{currentPage,rows,name,address,email}

更新用户信息

-------------------更新用户信息之前,先请求得到要修改的用户的信息--------------------------

请求:——————————————响应:

POST /returnServlet————————当前需要更新的用户的信息

--------------------------更新完成后,提交更新信息请求------------------------------------

请求:——————————————响应:

POST /updateServlet——————{msg: true}

创建一个 JavaWeb 项目

创建entity包

/**
 * @Date 2020/9/3 10:50
 * @Author Wang
 */


package entiy;


public class User {
   
    private int id;
    private String name;
    private String username;
    private String password;
    private String gender;
    private int age;
    private String address;
    private String qq;
    private String email;

    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 getUsername() {
   
        return username;
    }

    public void setUsername(String username) {
   
        this.username = username;
    }

    public String getPassword() {
   
        return password;
    }

    public void setPassword(String password) {
   
        this.password = password;
    }

    public String getGender() {
   
        return gender;
    }

    public void setGender(String gender) {
   
        this.gender = gender;
    }

    public int getAge() {
   
        return age;
    }

    public void setAge(int age) {
   
        this.age = age;
    }

    public String getAddress() {
   
        return address;
    }

    public void setAddress(String address) {
   
        this.address = address;
    }

    public String getQq() {
   
        return qq;
    }

    public void setQq(String qq) {
   
        this.qq = qq;
    }

    public String getEmail() {
   
        return email;
    }

    public void setEmail(String email) {
   
        this.email = email;
    }

    @Override
    public String toString() {
   
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", gender='" + gender + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                ", qq='" + qq + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

创建分页对象




package entiy;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * Description: 分页对象
 * @Author Wang
 * Date: 2020-07-15
 * Time: 18:44
 */
public class PageBean<T> {
   
    private int totalCount;   //总记录数
    private int totalPage; //总页码
    private List<T> list;  //每页中的数据
    private int currentPage;  //当前页码
    private int rows;   //每页的记录数

    public int getTotalCount() {
   
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
   
        this.totalCount = totalCount;
    }

    public int getTotalPage() {
   
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
   
        this.totalPage = totalPage;
    }

    public List<T> getList() {
   
        return list;
    }

    public void setList(List<T> list) {
   
        this.list = list;
    }

    public int getCurrentPage() {
   
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
   
        this.currentPage = currentPage;
    }

    public int getRows() {
   
        return rows;
    }

    public void setRows(int rows) {
   
        this.rows = rows;
    }
}

创建一个util包,创建DBUtil类。(连接数据库)
ps:屏蔽为本地数据库和云端数据库有区别的地方

/**
 * @Date 2020/9/3 10:46
 * @Author Wang
 */


package util;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class DBUtil {
   
    private static String url = "jdbc:mysql://127.0.0.1:3306/usermanger_w?useSSL=false";
    //private static String password = "1234";
    private static String password = "123456";//云
    private static String username = "root";

    private static volatile DataSource DATASOURCE;

    private static DataSource getDataSource(){
   
        // 双重校验锁
        if(DATASOURCE == null){
   
            synchronized (DBUtil.class){
   
                if(DATASOURCE == null){
   
                    DATASOURCE = new MysqlDataSource();
                    ((MysqlDataSource) DATASOURCE).setUrl(url);
                    ((MysqlDataSource) DATASOURCE).setUser(username);
                    ((MysqlDataSource) DATASOURCE).setPassword(password);
                }
            }
        }
        return DATASOURCE;
    }

    public static Connection getConnection(){
   
        //System.out.println("getConnection1");
        try {
   
            //从池子里获取连接
            Connection connection = getDataSource
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值