JSP案例——用户信息管理系统
1、需求
简单的用户信息管理系统
对用户信息的增删改查
效果截图(部分)
2、设计
技术选型
Servlet + jsp + Mysql + jdbctemplate + Druid + beanutils + tomccat+bootstrap
数据库设计
CREATE TABLE t_user( -- 创建表
id INT PRIMARY KEY AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
gender VARCHAR(5),
age INT,
address VARCHAR(32),
qq VARCHAR(20),
email VARCHAR(50)
);
3、环境搭建
3.1、创建项目导入jar包
3.2、导入配置文件
druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/study
username=root
password=123456
# 初始化连接对象的大小
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000
创建包结构
4、编码
功能一:用户数据的展示
1、实体类User
package com.zhou.test.domain;
/**
* @author it春和
* @create 2022-02-27 16:11
*/
public class User {
private int id;
private String name;
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 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 + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
", address='" + address + '\'' +
", qq='" + qq + '\'' +
", email='" + email + '\'' +
'}';
}
}
2、JdbcUtils
public class JdbcUtils {
private static DataSource dataSource;
static {
try {
// 加载配置文件
Properties properties = new Properties();
InputStream is = JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties");
properties.load(is);
// 创建datasource
dataSource = DruidDataSourceFactory.createDataSource(properties);
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static DataSource getDataSource(){
return dataSource;
}
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
}
3、UserDao
// 接口
public interface UserDao {
/**
* 查询所有用户
* @return list
*/
public List<User> findAll();
}
// 接口的实现类
public class UserDaoImpl implements UserDao {
// 声明一个jdbctemplate
private JdbcTemplate template = new JdbcTemplate(JdbcUtils.getDataSource());
@Override
public List<User> findAll() {
List<User> userList = null;
try {
// 定义sql
String sql = "select * from t_user";
// 使用jdbctemplate查询
userList = template.query(sql, new BeanPropertyRowMapper<User>(User.class));
} catch (DataAccessException e) {
e.printStackTrace();
}
return userList;
}
}
4、UserService
// 接口
public interface UserService {
/**
* 查询所有用户
* @return
*/
public List<User> findALl();
}
// 接口的实现类
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
@Override
public List<User> findALl() {
// 调用userdao进行查询
List<User> userList = userDao.findAll();
return userList;
}
}
5、FindAllServlet
@WebServlet("/findAllServlet")
public class FindAllServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1、调用service进行查询
UserService userService = new UserServiceImpl();
List<User> users = userService.findALl();
// 2、将users存入request域中
request.setAttribute("users",users);
// 3、转发到数据展示页面
request.getRequestDispatcher("/list.jsp").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException