CommoditytypeDao层
public interface CommoditytypeDao { Commoditytype getCommoditytypeById(String ct_id); List<Commoditytype> getCommoditytypeList(); }
CommoditytypeDaoImpl实现类
public class CommoditytypeDaoImpl implements CommoditytypeDao{ @Override public Commoditytype getCommoditytypeById(String ct_id) { Commoditytype ct = null; try { Connection conn = DBHelper.getConnection(); String sql = "select * from commoditytype where ct_id=?"; List param = new ArrayList(); param.add(ct_id); ResultSet rs = DBHelper.executeQuery(conn, sql, param); rs.next(); ct = new Commoditytype(rs.getString("ct_id"),rs.getString("ct_name")); DBHelper.closeConnection(conn); }catch(Exception e) { e.printStackTrace(); } return ct; } @Override public List<Commoditytype> getCommoditytypeList() { List<Commoditytype> cts = new ArrayList<>(); try { Connection conn = DBHelper.getConnection(); String sql = "select * from commoditytype"; ResultSet rs = DBHelper.executeQuery(conn, sql, null); while(rs.next()) { Commoditytype ct = new Commoditytype(rs.getString("ct_id"),rs.getString("ct_name")); cts.add(ct); } DBHelper.closeConnection(conn); }catch(Exception e) { e.printStackTrace(); } return cts; } }
CommoditytypeController控制层
public class CommoditytypeController { private CommoditytypeDao commoditytypeDao = null; public CommoditytypeController() { commoditytypeDao = new CommoditytypeDaoImpl(); } public List<Commoditytype> getCommoditytypeList(){ return commoditytypeDao.getCommoditytypeList(); } }
以下两个功能均需用到
更新
- CommodityDao层
public interface CommodityDao {
List<Commodity> getCommodityList();
// 根据id查找对应的商品
Commodity getCommodityById(String c_id);
// 修改
int updCommodity(Commodity c);
}
CommodityDaoImpl实现类
public class CommodityDaoImpl implements CommodityDao {
@Override
public List<Commodity> getCommodityList() {
List<Commodity> commoditys = new ArrayList<Commodity>();
try {
Connection conn = DBHelper.getConnection();
String sql = "select * from commodity";
ResultSet rs = DBHelper.executeQuery(conn, sql, null);
while(rs.next()) {
Commodity c = new Commodity();
c.setC_id(rs.getString("c_id"));
c.setC_name(rs.getString("c_name"));
c.setC_madein(rs.getString("c_madein"));
c.setC_type(rs.getString("c_type"));
c.setC_inprice(rs.getInt("c_inprice"));
c.setC_outprice(rs.getInt("c_outprice"));
c.setC_num(rs.getInt("c_num"));
c.setCt(new CommoditytypeDaoImpl().getCommoditytypeById(rs.getString("c_type")));
commoditys.add(c);
}
DBHelper.closeConnection(conn);
}catch(Exception e) {
e.printStackTrace();
}
return commoditys;
}
// 根据id查找对应的商品
@Override
public Commodity getCommodityById(String c_id) {
Commodity c = null;
try {
Connection conn = DBHelper.getConnection();
String sql = "select * from commodity where c_id=?";
List param = new ArrayList();
param.add(c_id);
ResultSet rs = DBHelper.executeQuery(conn, sql, param);
rs.next();
c = new Commodity(rs.getString("c_id"),rs.getString("c_name"),rs.getString("c_madein"),rs.getString("c_type"),rs.getInt("c_inprice"),rs.getInt("c_outprice"),rs.getInt("c_num"));
DBHelper.closeConnection(conn);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return c;
}
// 修改
@Override
public int updCommodity(Commodity c) {
int line = 0;
Connection conn = DBHelper.getConnection();
String sql = "update commodity set c_name=?,c_madein=?,c_type=?,c_inprice=?,c_outprice=?,c_num=? where c_id=?";
List param = new ArrayList();
param.add(c.getC_name());
param.add(c.getC_madein());
param.add(c.getC_type());
param.add(c.getC_inprice());
param.add(c.getC_outprice());
param.add(c.getC_num());
param.add(c.getC_id());
line = DBHelper.executeUpdate(conn, sql, param);
DBHelper.closeConnection(conn);
return line;
}
}
CoomodityController层
public class CommodityController {
private CommodityDao commodityDao = null;
public CommodityController() {
commodityDao = new CommodityDaoImpl();
}
public List<Commodity> getCommodityList() {
return commodityDao.getCommodityList();
}
public Commodity getCommodityById(String c_id) {
return commodityDao.getCommodityById(c_id);
}
public int updCommodity(String c_id,String c_name,String c_madein,String c_type,Integer c_inprice,Integer c_outprice,Integer c_num) {
Commodity c = new Commodity(c_id,c_name,c_madein,c_type,c_inprice,c_outprice,c_num);
return commodityDao.updCommodity(c);
}
}
servlet层
- DoUpdateServlet层
public class ToUpdateServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String c_id = req.getParameter("c_id");
HttpSession session = req.getSession();
Commodity c = new CommodityController().getCommodityById(c_id);
session.setAttribute("commodity", c);
List<Commoditytype> ctList = new CommoditytypeController().getCommoditytypeList();
session.setAttribute("ctList", ctList);
resp.sendRedirect("/web06/update.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
- DoUpdateServlet层
public class DoUpdateServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String c_id = req.getParameter("c_id");
String c_name = req.getParameter("c_name");
String c_madein = req.getParameter("c_madein");
String c_type = req.getParameter("c_type");
Integer c_inprice = new Integer(req.getParameter("c_inprice"));
Integer c_outprice = new Integer(req.getParameter("c_outprice"));
Integer c_num = new Integer(req.getParameter("c_num"));
int line = new CommodityController().updCommodity(c_id, c_name, c_madein, c_type, c_inprice, c_outprice, c_num);
if(line>0) {
HttpSession session = req.getSession();
List<Commodity> cList = new CommodityController().getCommodityList();
session.setAttribute("cList", cList);
List<Commoditytype> ctList = new CommoditytypeController().getCommoditytypeList();
session.setAttribute("ctList", ctList);
resp.sendRedirect("/web06/welcome.jsp");
}else {
// 略
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
welcome.jsp(部分代码)
<%
List<Commoditytype> ctList = (List<Commoditytype>)session.getAttribute("ctList");
List<Commodity> cList = (List<Commodity>)session.getAttribute("cList");
%>
<!-- 商品列表展示 -->
<tr>
<td>商品编号</td><td>商品名称</td><td>商品产地</td><td>商品类型</td><td>商品进价</td><td>商品售价</td><td>商品库存</td><td>编辑|删除</td>
</tr>
<%
if(cList != null && cList.size() > 0){
for(Commodity c:cList){
%>
<tr>
<td><%=c.getC_id() %></td><td><%=c.getC_name() %></td><td><%=c.getC_madein() %></td><td><%=c.getCt().getCt_name() %></td><td><%=c.getC_inprice() %></td><td><%=c.getC_outprice() %></td><td><%=c.getC_num() %></td><td><a href="/web06/toUpdateServlet?c_id=<%=c.getC_id() %>">编辑</a>|<a href="/web06/deleteCommodityById?c_id=<%=c.getC_id() %>">删除</a></td>
</tr>
<%
}
}
%>
web.xml
<servlet>
<servlet-name>toUpdateServlet</servlet-name>
<servlet-class>com.ishopn.servlet.ToUpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>toUpdateServlet</servlet-name>
<url-pattern>/toUpdateServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>doUpdateServlet</servlet-name>
<servlet-class>com.ishopn.servlet.DoUpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>doUpdateServlet</servlet-name>
<url-pattern>/doUpdateServlet</url-pattern>
</servlet-mapping>
分页显示
- 模型层
public class PageModel<E> {
// 结果集 用来存储查询处理的集合(泛型)
private List<E> list;
// 记录总数据条数
private int totalRecords;
// 每页多少条数据
private int pageSize;
// 第几页
private int pageNo;
/**
* 总页数
* @return
*/
public int getTotalPages() {
return (totalRecords + pageSize - 1)/pageSize;
}
/**
* 首页
* @return
*/
public int getTopPageNo() {
return 1;
}
/**
* 上一页
* @return
*/
public int getPreviousPageNo() {
if(pageNo <= 1) {
return 1;
}
return pageNo - 1;
}
public int getNextPageNo() {
if(pageNo >= getTotalPages()) {
return getBottomPageNo();
}
return pageNo + 1;
}
/**
* 尾页
* @return
*/
public int getBottomPageNo() {
return getTotalPages();
}
public List<E> getList() {
return list;
}
public void setList(List<E> list) {
this.list = list;
}
public int getTotalRecords() {
return totalRecords;
}
public void setTotalRecords(int totalRecords) {
this.totalRecords = totalRecords;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
}
- CommodityDao层
public interface CommodityDao {
List<Commodity> getCommodityList();
public List<Commodity> getCommodityListWithPage(int pageNo,int pageSize);
public int getCommodityCount();
}
- CommodityDaoImpl实现类
public class CommodityDaoImpl implements CommodityDao {
@Override
public List<Commodity> getCommodityList() {
List<Commodity> commoditys = new ArrayList<Commodity>();
try {
Connection conn = DBHelper.getConnection();
String sql = "select * from commodity";
ResultSet rs = DBHelper.executeQuery(conn, sql, null);
while(rs.next()) {
Commodity c = new Commodity();
c.setC_id(rs.getString("c_id"));
c.setC_name(rs.getString("c_name"));
c.setC_madein(rs.getString("c_madein"));
c.setC_type(rs.getString("c_type"));
c.setC_inprice(rs.getInt("c_inprice"));
c.setC_outprice(rs.getInt("c_outprice"));
c.setC_num(rs.getInt("c_num"));
c.setCt(new CommoditytypeDaoImpl().getCommoditytypeById(rs.getString("c_type")));
commoditys.add(c);
}
DBHelper.closeConnection(conn);
}catch(Exception e) {
e.printStackTrace();
}
return commoditys;
}
@Override
public List<Commodity> getCommodityListWithPage(int pageNo, int pageSize) {
ArrayList<Commodity> list = new ArrayList<>();
try {
Connection conn = DBHelper.getConnection();
String sql = "select * from commodity limit ?,?";
ArrayList param = new ArrayList();
param.add((pageNo-1)*pageSize);
param.add(pageSize);
ResultSet rs = DBHelper.executeQuery(conn, sql, param);
while(rs.next()) {
Commodity c = new Commodity();
c.setC_id(rs.getString("c_id"));
c.setC_name(rs.getString("c_name"));
c.setC_madein(rs.getString("c_madein"));
c.setC_type(rs.getString("c_type"));
c.setC_inprice(rs.getInt("c_inprice"));
c.setC_outprice(rs.getInt("c_outprice"));
c.setC_num(rs.getInt("c_num"));
c.setCt(new CommoditytypeDaoImpl().getCommoditytypeById(rs.getString("c_type")));
list.add(c);
}
DBHelper.closeConnection(conn);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
@Override
public int getCommodityCount() {
int c = 0;
try {
Connection conn = DBHelper.getConnection();
String sql = "select count(*) from commodity";
ResultSet rs = DBHelper.executeQuery(conn, sql, null);
rs.next();
c=rs.getInt(1);
DBHelper.closeConnection(conn);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return c;
}
}
- 工具层—PageHelper(这个类就是用来对 PageModel 类的填充 返回PageModel的实例对象)
public class PageHelper {
public static PageModel findCommodity(int pageNo,int pageSize) {
PageModel<Commodity> pageModel = new PageModel<Commodity>();
List<Commodity> list = new CommodityDaoImpl().getCommodityListWithPage(pageNo, pageSize);
int total = new CommodityDaoImpl().getCommodityCount();
pageModel.setPageNo(pageNo);
pageModel.setPageSize(pageSize);
pageModel.setTotalRecords(total);
pageModel.setList(list);
return pageModel;
}
}
- PageServlet
public class PageServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
int pageNo = Integer.parseInt(req.getParameter("pageNo"));
int pageSize = Integer.parseInt(req.getParameter("pageSize"));
PageModel<Commodity> page = PageHelper.findCommodity(pageNo, pageSize);
HttpSession session = req.getSession();
session.setAttribute("pageView", page);
List<Commoditytype> ctList = new CommoditytypeController().getCommoditytypeList();
session.setAttribute("ctList", ctList);
resp.sendRedirect("/web06/welcome.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}
welcome.jsp页面
<%
// ctList
List<Commoditytype> ctList = (List<Commoditytype>)session.getAttribute("ctList");
PageModel p = (PageModel)session.getAttribute("pageView");
//当前页 和 页面大小 要记录下来
int pageNo = p.getPageNo();
int pageSize = p.getPageSize();
List<Commodity> cList = p.getList();
%>
<!-- 商品列表展示 -->
<table style="border: 1px solid black; margin:0 auto;">
<tr>
<td>商品编号</td><td>商品名称</td><td>商品产地</td><td>商品类型</td><td>商品进价</td><td>商品售价</td><td>商品库存</td><td>编辑|删除</td>
</tr>
<%
if(cList != null && cList.size() > 0){
for(Commodity c:cList){
%>
<tr>
<td><%=c.getC_id() %></td><td><%=c.getC_name() %></td><td><%=c.getC_madein() %></td><td><%=c.getCt().getCt_name() %></td><td><%=c.getC_inprice() %></td><td><%=c.getC_outprice() %></td><td><%=c.getC_num() %></td><td><a href="/web06/toUpdateServlet?c_id=<%=c.getC_id() %>">编辑</a>|<a href="/web06/deleteCommodityById?c_id=<%=c.getC_id() %>">删除</a></td>
</tr>
<%
}
}
%>
<tr>
<td colspan="7">
<%
// 首页
if(p.getTopPageNo() == pageNo){
out.print("首页 ");
}else{
out.print("<a href='/web06/pageServlet?pageNo="+p.getTopPageNo()+"&pageSize="+p.getPageSize()+"'>首页</a> ");
}
// 上一页
if(p.getPreviousPageNo() == pageNo){
out.print("上一页 ");
}else{
out.print("<a href='/web06/pageServlet?pageNo="+p.getTopPageNo()+"&pageSize="+p.getPageSize()+"'>上一页</a> ");
}
// 页数的输出
for(int i=1;i<p.getTotalPages();i++){
if(i == pageNo){
out.print(i+" ");
continue;
}
out.print("<a href='/web06/pageServlet?pageNo="+i+"&pageSize="+p.getPageSize()+"'>"+i+"</a> ");
}
//下一页的输出
if(p.getNextPageNo()==pageNo){
out.print("下一页 ");
}else{
out.print("<a href='/web06/pageServlet?pageNo="+p.getNextPageNo()+"&pageSize="+p.getPageSize()+"'>下一页</a> ");
}
//尾页的输出
if(p.getBottomPageNo()==pageNo){
out.print("尾页 ");
}else{
out.print("<a href='/web06/pageServlet?pageNo="+p.getBottomPageNo()+"&pageSize="+p.getPageSize()+"'>尾页</a> ");
}
%>
<select onchange="javascript:location.href='/web06/pageServlet?pageNo=1&pageSize='+this.value">
<option value="5" <%=5==pageSize?"selected":"" %>>每页5条记录</option>
<option value="10" <%=10==pageSize?"selected":"" %>>每页10条记录</option>
<option value="15" <%=15==pageSize?"selected":"" %>>每页15条记录</option>
</select>
</td>
</tr>
</table>
web.xml
<servlet>
<servlet-name>pageServlet</servlet-name>
<servlet-class>com.ishopn.servlet.PageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>pageServlet</servlet-name>
<url-pattern>/pageServlet</url-pattern>
</servlet-mapping>
LoginServlet
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setCharacterEncoding("utf-8");
String cu_name = req.getParameter("cu_name");
String cu_phone = req.getParameter("cu_phone");
CustomerController cc = new CustomerController();
int count = cc.getCountCustomerByNameAndPhone(cu_name, cu_phone);
if(count>0) {
Cookie cookie = new Cookie("cu_name",cu_name);
cookie.setMaxAge(60*60*24*7);
resp.addCookie(cookie);
HttpSession session = req.getSession();
session.setAttribute("cu_name", cu_name);
PageModel<Commodity> pageView = PageHelper.findCommodity(1, 5);
session.setAttribute("pageView", pageView);
List<Commoditytype> ctList = new CommoditytypeController().getCommoditytypeList();
session.setAttribute("ctList", ctList);
resp.sendRedirect("/web06/welcome.jsp");
}else {
resp.sendRedirect("/web06");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}