要求:
1. 创建数据库UserManager、用户信息数据表user,user中包括:id(id)自增、姓名(name)、性别(gender)、年龄(age)、 住址(address),QQ(qq),邮箱(email)(插入至少3条数据)。
2. 在JSP页面中显示从数据表user中查询的所有用户信息。(查询)
(1)架构MVC设计模式。
(2)编写用户信息的JavaBean类。
(3)运用Servlet实现查询用户信息,要求有合适的异常错误处理。
(4)实现所有用户信息展示。
3. 在JSP页面中添加用户信息,保存到数据库中。(增加)
(1)设计添加用户信息的页面,要求页面设计标准。
(2)运用JSP动作获取请求的用户信息。
(3)访问数据库添加用户信息,要求有合适的异常错误处理。
4. 在JSP页面中根据用户(Id)删除该用户信息。(删除)
操作步骤如下:
## 一、新建数据库表
## 二、新建maven web项目
pom.xml```xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.bigdata</groupId> <artifactId>day22_case</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <!-- MySql --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> <!-- 连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.24</version> </dependency> <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.6</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.8.3</version> </dependency> <!--jstl依赖--> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> </dependencies> </project> ``` 2.修改web.xml ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> </web-app > ```
## 三、工具类
1.在resources下新建druid.properties
```properties
driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/day17?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false username=root password=123456
2.新建包com.bigdata.util
```java
public class DataSourceUtils { private static DruidDataSource dataSource; static { try { Properties properties=new Properties(); InputStream is=DataSourceUtils.class.getClassLoader().getResourceAsStream("druid.properties"); properties.load(is); dataSource=(DruidDataSource) DruidDataSourceFactory.createDataSource(properties); } catch (Exception e) { e.printStackTrace(); System.out.println("初始化连接池失败:"+e.getMessage()); } } public static DataSource getDataSource(){ return dataSource; } }
```
## 四、查询用户
1.com.bigdata.domain新建实体类User
```java
public class User { private int id; private String name; private String gender; private int age; private String address; private String qq; private String email; //get和set方法toString }
```2.com.bigdata.dao新建UserDao```java
package com.bigdata.dao; public interface UserDao { public List<User> findAll(); } ``` 3.com.bigdata.dao.impl新建UserDaoImpl ```java public class UserDaoImpl implements UserDao { @Override public List<User> findAll() { QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource()); try { return qr.query("select * from user ", new BeanListHandler<>(User.class)); } catch (SQLException e) { throw new RuntimeException("查询集合失败", e); } } }
```4.com.bigdata.service新建UserService```java
public interface UserService { /** * 查询所有用户信息 * @return */ public List<User> findAll(); }
```5.com.bigdata.service.impl新建UserServiceImpl```java
public class UserServiceImpl implements UserService { private UserDao dao = new UserDaoImpl(); @Override public List<User> findAll() { //调用Dao完成查询 return dao.findAll(); } }
```6.控制层SelectUserServlet```java
package com.bigdata.web; @WebServlet("/selectUserServlet") public class SelectUserServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); //2.调用service查询 UserService service = new UserServiceImpl(); List<User> user=service.findAll(); //3.将PageBean存入request request.setAttribute("list",user); //4.转发到list.jsp request.getRequestDispatcher("/list.jsp").forward(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
```7.webapp下新建list.jsp页面```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <title>用户列表</title> </head> <body> <form id="form" method="post"> <table border="1"> <tr> <th>姓名</th> <th>性别</th> <th>年龄</th> <th>籍贯</th> <th>QQ</th> <th>邮箱</th> <th>操作</th> </tr> <c:forEach items="${list}" var="user"> <tr> <td>${user.name}</td> <td>${user.gender}</td> <td>${user.age}</td> <td>${user.address}</td> <td>${user.qq}</td> <td>${user.email}</td> <td></td> </tr> </c:forEach> </table> </form> </body> </html>