使用jdbc时,每一次对数据库操作,都会建立连接,关闭连接,导致,每次写新功能,都要重复写很多遍代码,这就导致代码的冗余度高,复用性差,所以将数据库的操作封装成工具类,封装进DBHelper工具类中。
连接数据库//常量大写
private static final String URL = "jdbc:mysql://127.0.0.1:3306/mydb?serverTimezone=UTC&characterEncoding=utf8";
private static final String NAME = "root";
private static final String PASSWORD = "root";
private static final String DRIVER = "com.mysql.cj.jdbc.Driver";
private static Connection con=null;
private static PreparedStatement ps=null;
private static ResultSet rs=null;
//加载数据库驱动
//static静态代码块,在jvm加载类的时候启用,在一个类中可以有多个static代码块,根据static的顺序来运行
static {
try {
Class.forName(DRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static Connection getCon(){
try {
con = DriverManager.getConnection(URL,NAME,PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
查询
适用于 select
public List更新 添加 删除
适用于 update insert delete
public int update(String sql,Object...objs){
int num=0;
con = DBHelper.getCon();
try {
//获取objs的值
List
关闭资源
public void close(){
try {
if(con!=null) con.close();
if(ps!=null) ps.close();
if(rs!=null) rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
分页
将自己的程序展现给用户,肯定越简洁越好,分页更加适应用户的心理,毕竟谁也不会愿意看着老长的页面。
分页工具类首先便需要一个分页工具类,将分页所需要的各种参数都给他封装起来。
public class PageBean获取前台数据{ private Integer page;//当前页 private Integer limit;//每页的条数 private Integer totalCount;//查询数据的总行数 private Integer totalPages;//总页数 private List list=new ArrayList ();//当前页的数据集合 public Integer getPage() { return page; } public void setPage(Integer page) { this.page = page; } public Integer getLimit() { return limit; } public void setLimit(Integer limit) { this.limit = limit; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public Integer getTotalPages() { return totalPages; } public void setTotalPages(Integer totalPages) { this.totalPages = totalPages; } public List getList() { return list; } public void setList(List list) { this.list = list; } //无参的构造方法 public PageBean() { } //有参的构造方法 public PageBean(Integer page, Integer limit, Integer totalCount, Integer totalPages, List list) { this.page = page; this.limit = limit; this.totalCount = totalCount; this.totalPages = totalPages; this.list = list; } @Override public String toString() { return "PageBean{" + "page=" + page + ", limit=" + limit + ", totalCount=" + totalCount + ", totalPages=" + totalPages + ", list=" + list + '}'; }
//从页面获取页数判断如果为空则为1否则通过
Integer.valueOf(request.getParameter("page") 获取页面传过来的参数
int page = request.getParameter("page")!=null?Integer.valueOf(request.getParameter("page")):1
//获取页面每页长度如果为空则定义为10否则按
Integer.valueOf(request.getParameter("pageSize") 获取的长度像service传递
int pageSize = request.getParameter("pageSize")!=null?Integer.valueOf(request.getParameter("pageSize")):10;
//定义SQL语句查询所有数据
String sql="select e.*,d.dname from emp e left join dept d on e.did=d.id ";
//通过调用dao层的分页查询方法,将数据获取
//PageBean PageBean就是传入的参数 list
dao层部署
//分页
public PageBean
页面设计
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
项目分析
业务需求
反映了组织机构或客户对系统、产品高层次的目标要求,通常在项目定义与范围文档中予以说明。
用户需求描述了用户使用产品必须要完成的任务,这在使用实例或方案脚本中予以说明。
功能需求定义了开发人员必须实现的软件功能,使用户利用系统能够完成他们的任务,从而满足了业务需求。
非功能性的需求描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作界面的具体细节和构造上的限制。
需求分析报告报告所说明的功能需求充分描述了软件系统所应具有的外部行为。“需求分析报告”在开发、测试、质量保证、项目管理以及相关项目功能中起着重要作用。



