案例:用户信息列表展示||1. 需求 2. 设计 3. 开发4. 测试 5. 部署运维
生活随笔
收集整理的這篇文章主要介紹了
案例:用户信息列表展示||1. 需求 2. 设计 3. 开发4. 测试 5. 部署运维
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
案例:用戶信息列表展示
1. 需求:用戶信息的增刪改查操作
2. 設計:
?? ?1. 技術選型:Servlet+JSP+MySQL+JDBCTemplate+Druid+BeanUtils+tomcat
?? ?2. 數據庫設計:
?? ??? ?create database day17; -- 創建數據庫
?? ??? ?use day17; ?? ??? ??? ? ? -- 使用數據庫
?? ??? ?create table 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. 開發:
?? ?1. 環境搭建
?? ??? ?1. 創建數據庫環境
?? ??? ?2. 創建項目,導入需要的jar包
?? ?2. 編碼
4. 測試
5. 部署運維
User.java
package cn.itcast.domain;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;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", gender='" + gender + '\'' +", age=" + age +", address='" + address + '\'' +", qq='" + qq + '\'' +", email='" + email + '\'' +'}';} }UserListServlet.java
package cn.itcast.web.servlet;import cn.itcast.domain.User; import cn.itcast.service.UserService; import cn.itcast.service.impl.UserServiceImpl;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.List;@WebServlet("/userListServlet") public class UserListServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1.調用UserService完成查詢UserService service = new UserServiceImpl();List<User> users = service.findAll();//2.將list存入request域request.setAttribute("users",users);//3.轉發到list.jsprequest.getRequestDispatcher("/list.jsp").forward(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);} }UserService.java
package cn.itcast.service;import cn.itcast.domain.User;import java.util.List;/*** 用戶管理的業務接口*/ public interface UserService {/*** 查詢所有用戶信息* @return*/public List<User> findAll(); }UserServiceImpl.java
package cn.itcast.service.impl;import cn.itcast.dao.UserDao; import cn.itcast.dao.impl.UserDaoImpl; import cn.itcast.domain.User; import cn.itcast.service.UserService;import java.util.List;public class UserServiceImpl implements UserService {private UserDao dao = new UserDaoImpl();@Overridepublic List<User> findAll() {//調用Dao完成查詢return dao.findAll();} }UserDao.java
package cn.itcast.dao;import cn.itcast.domain.User;import java.util.List;/*** 用戶操作的DAO*/ public interface UserDao {public List<User> findAll(); }UserDaoImpl.java
package cn.itcast.dao.impl;import cn.itcast.dao.UserDao; import cn.itcast.domain.User; import cn.itcast.util.JDBCUtils; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate;import java.util.List;public class UserDaoImpl implements UserDao {private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());@Overridepublic List<User> findAll() {//使用JDBC操作數據庫...//1.定義sqlString sql = "select * from user";List<User> users = template.query(sql, new BeanPropertyRowMapper<User>(User.class));return users;} }JDBCUtils.java
package cn.itcast.util;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties;/*** JDBC工具類 使用Durid連接池*/ public class JDBCUtils {private static DataSource ds ;static {try {//1.加載配置文件Properties pro = new Properties();//使用ClassLoader加載配置文件,獲取字節輸入流InputStream is = JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties");pro.load(is);//2.初始化連接池對象ds = DruidDataSourceFactory.createDataSource(pro);} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}/*** 獲取連接池對象*/public static DataSource getDataSource(){return ds;}/*** 獲取連接Connection對象*/public static Connection getConnection() throws SQLException {return ds.getConnection();} }index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title>首頁</title><!-- 1. 導入CSS的全局樣式 --><link href="css/bootstrap.min.css" rel="stylesheet"><!-- 2. jQuery導入,建議使用1.9以上的版本 --><script src="js/jquery-2.1.0.min.js"></script><!-- 3. 導入bootstrap的js文件 --><script src="js/bootstrap.min.js"></script> </head> <body> <div align="center"><ahref="${pageContext.request.contextPath}/userListServlet" style="text-decoration:none;font-size:33px">查詢所有用戶信息</a> </div> </body> </html>list.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html> <!-- 網頁使用的語言 --> <html lang="zh-CN"> <head><!-- 指定字符集 --><meta charset="utf-8"><!-- 使用Edge最新的瀏覽器的渲染方式 --><meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- viewport視口:網頁可以根據設置的寬度自動進行適配,在瀏覽器的內部虛擬一個容器,容器的寬度與設備的寬度相同。width: 默認寬度與設備的寬度相同initial-scale: 初始的縮放比,為1:1 --><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其后! --><title>用戶信息管理系統</title><!-- 1. 導入CSS的全局樣式 --><link href="css/bootstrap.min.css" rel="stylesheet"><!-- 2. jQuery導入,建議使用1.9以上的版本 --><script src="js/jquery-2.1.0.min.js"></script><!-- 3. 導入bootstrap的js文件 --><script src="js/bootstrap.min.js"></script><style type="text/css">td, th {text-align: center;}</style> </head> <body> <div class="container"><h3 style="text-align: center">用戶信息列表</h3><table border="1" class="table table-bordered table-hover"><tr class="success"><th>編號</th><th>姓名</th><th>性別</th><th>年齡</th><th>籍貫</th><th>QQ</th><th>郵箱</th><th>操作</th></tr><c:forEach items="${users}" var="user" varStatus="s"><tr><td>${s.count}</td><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><a class="btn btn-default btn-sm" href="update.html">修改</a> <a class="btn btn-default btn-sm" href="">刪除</a></td></tr></c:forEach><tr><td colspan="8" align="center"><a class="btn btn-primary" href="add.html">添加聯系人</a></td></tr></table> </div> </body> </html>?
總結
以上是生活随笔為你收集整理的案例:用户信息列表展示||1. 需求 2. 设计 3. 开发4. 测试 5. 部署运维的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC:开发模式及其优缺点
- 下一篇: 虚拟机的网络连接三种形式的说明