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

该项目是一个基于Servlet构建的信息管理系统,涵盖了登录、用户信息增删改查等功能。涉及到的知识包括JDBC编程、Servlet、MYSQL数据库操作、Service层设计以及前端HTML+CSS+JS。通过DAO层与数据库交互,Service层实现业务逻辑,Servlet处理请求与响应,同时实现了分页查询和模糊搜索。
摘要由CSDN通过智能技术生成

java项目-基于Servlet构建的信息管理系统相关源码

项目要实现的功能和涉及到的知识

实现的功能:
1.登录功能
2.添加用户信息
3.删除某一个用户
4.删除选中的用户信息
5.分页查询所有的用户信息
6.模糊查询用户信息
7.更新用户信息
设计所涉及到的知识点(JDBC编程+Servlet)
1.MYSQL层和Dap层,在本地数据库创建数据库,并在Dao层直接管理数据库(JDBC编程)
2.service层 主要是相当于是实现中转的功能,来实现高内聚低耦合的状态,提高代码的可阅读性 json方面的知识
3.Servlet层主要是为了完成相应的逻辑,API的约定等等
4.HTML+CSS+JSS主要是前端的页面

具体步骤和相关的代码

步骤

Mysql层 --用于创建数据库并创建数据
Dao层 -主要是为了操作数据库
Service层 --主要是中转层,达到高内聚低耦合的效果,提高项目的可拓展性
Servlet层–按照客户端发送给服务器的请求,服务器交给Servlet ,Servlet找到相对应的API来构造相应的响应返回给服务器,然后服务器返回给客户端
1.创建数据库,并添加数据

drop 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');

2.连接本地数据库mysql层
使用单例模式来保证线程安全

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?useSSL=false";
    private static String password = "";
    private static String username = "";

    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().getConnection();
            return connection;
        } catch (SQLException e) {
   
            e.printStackTrace();
            throw new RuntimeException("获取数据库连接失败");
        }
    }

    public static void close(Connection connection, PreparedStatement statement, ResultSet resultSet) {
   
        if(resultSet!=null) {
   
            try {
   
                resultSet.close();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
        }
        if(statement!=null) {
   
            try {
   
                statement.close();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
        }
        if(connection!=null) {
   
            try {
   
                connection.close();
            } catch (SQLException e) {
   
                e.printStackTrace();
            }
        }
    }
}

3.创建一个实体类 来操作用户信息

package test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Person {
   
    private int id;
    private String name;
    private String password;

    public Person() {
   
        super();
    }

    public Person(int id, String name, String password) {
   
        this.id = id;
        this.name = name;
        this.password = password;
    }

    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 getPassword() {
   
        return password;
    }

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

4.实现dao层
创建User类和PageBean 分页信息

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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值