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