1.
1.1 首先创建一个单列,供外界实用:
packagecn.com.yong.Utils;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBConnection {PRivateString url="jdbc:MySQL://localhost:3306/guimei";privateString user="root";privateString passWord="666888";privateConnection con=null;//构造方法私有化privateDBConnection(){try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection(url, user, password);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}
}//创建一个私有化对象privatestaticDBConnection jdbc=newDBConnection();//实例publicstaticDBConnection getDBConnectionInstance(){returnjdbc;
}publicConnection getDBConnection() {returncon;
}
}
1.2 创建一个实体类(这里我们以订单明细为列)
packagecn.com.yong.Pojo;importjava.sql.Date;publicclassOrder_table {privateInteger order_id;//订单号privateString order_address;//订单发货地址privateInteger order_user_id;//订单人的idprivateInteger order_sum_price;//订单总金额privateDate order_date;//下单日期:符合2004-12-12格式privateInteger order_status;//订单状态:1表示订单“待审核”:表示您的订单等待审核中。2表示订单“已确认”:表示您的订单已审核通过。3表示订单“备货中”:表示您的订单已打印,我们正在为您备货。4表示订单“已发货”:表示您的订单已出仓库,您可在网上跟踪配送情况。5表示订单“已完成”:表示您的订单已完成签收。值只能取1-5。privateInteger payment_id;//支付明细表publicOrder_table(){}publicOrder_table(Integer order_id, String order_address,
Integer order_user_id, Integer order_sum_price, Date order_date,
Integer order_status, Integer payment_id) {this.order_id =order_id;this.order_address =order_address;this.order_user_id =order_user_id;this.order_sum_price =order_sum_price;this.order_date =order_date;this.order_status =order_status;this.payment_id =payment_id;
}publicInteger getOrder_id() {returnorder_id;
}publicvoidsetOrder_id(Integer order_id) {this.order_id =order_id;
}publicString getOrder_address() {returnorder_address;
}publicvoidsetOrder_address(String order_address) {this.order_address =order_address;
}publicInteger getOrder_user_id() {returnorder_user_id;
}publicvoidsetOrder_user_id(Integer order_user_id) {this.order_user_id =order_user_id;
}publicInteger getOrder_sum_price() {returnorder_sum_price;
}publicvoidsetOrder_sum_price(Integer order_sum_price) {this.order_sum_price =order_sum_price;
}publicDate getOrder_date() {returnorder_date;
}publicvoidsetOrder_date(Date order_date) {this.order_date =order_date;
}publicInteger getOrder_status() {returnorder_status;
}publicvoidsetOrder_status(Integer order_status) {this.order_status =order_status;
}publicInteger getPayment_id() {returnpayment_id;
}publicvoidsetPayment_id(Integer payment_id) {this.payment_id =payment_id;
}
}
1.3 创建接口,添加我们需要的方法
packagecn.com.yong.Dao;importjava.util.List;importcn.com.yong.Pojo.Order_table;publicinterfaceOrder_tableDao {publicbooleanaddOrder_table(Order_table ot);publicbooleandeleteOrder_table(intid);publicList<Order_table>selectOrder_table();publicbooleanupdateOrder_table(Order_table ot);
}
1.4 这里实现我们的接口,添加功能
packagecn.com.yong.DaoImplement;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importcn.com.yong.Dao.Order_tableDao;importcn.com.yong.Pojo.Order_table;importcn.com.yong.Utils.DBConnection;publicclassOrder_tableDaoImplementimplementsOrder_tableDao{booleanbn=false;
Statement sta=null;
ResultSet rs=null;
PreparedStatement ps=null;
Connection con=null;publicbooleanaddOrder_table(Order_table ot) {
con=DBConnection.getDBConnectionInstance().getDBConnection();
String sql="insert into order_table value(?,?,?,?,?,?,?)";try{
ps=con.prepareStatement(sql);
ps.setInt(1, ot.getOrder_id().intValue());
ps.setString(2, ot.getOrder_address());
ps.setInt(3, ot.getOrder_user_id().intValue());
ps.setInt(4, ot.getOrder_sum_price().intValue());
ps.setDate(5,ot.getOrder_date());
ps.setInt(6, ot.getOrder_status().intValue());
ps.setInt(7, ot.getPayment_id().intValue());
ps.executeUpdate();
}catch(SQLException e) {
e.printStackTrace();
}returnfalse;
}publicbooleandeleteOrder_table(intid) {
con=DBConnection.getDBConnectionInstance().getDBConnection();
String sql="delete from order_table where order_id=?";try{
ps=con.prepareStatement(sql);
ps.setInt(1, id);inti=ps.executeUpdate();if(i>0){returntrue;
}
}catch(SQLException e) {
e.printStackTrace();
}returnfalse;
}publicList<Order_table>selectOrder_table() {
con=DBConnection.getDBConnectionInstance().getDBConnection();
List<Order_table> list=newArrayList<Order_table>();try{
sta=con.createStatement();
String sql="select order_id,order_address,order_user_id,order_sum_price,order_date,order_status,payment_id from order_table";
rs=sta.executeQuery(sql);while(rs.next()){
Order_table od=newOrder_table();
od.setOrder_id(rs.getInt("order_id"));
od.setOrder_address(rs.getString("order_address"));
od.setOrder_user_id(rs.getInt("order_user_id"));
od.setOrder_sum_price(rs.getInt("order_sum_price"));
od.setOrder_date(rs.getDate("order_date"));
od.setOrder_status(rs.getInt("order_status"));
od.setPayment_id(rs.getInt("payment_id"));
list.add(od);
}
}catch(SQLException e) {
e.printStackTrace();
}returnlist;
}publicstaticvoidmain(String[] args) {
List<Order_table> list=newOrder_tableDaoImplement().selectOrder_table();
System.out.println(list);
}publicbooleanupdateOrder_table(Order_table ot) {
con=DBConnection.getDBConnectionInstance().getDBConnection();
String sql="update order_table set order_sum_price=? where order_id=?";try{
ps=con.prepareStatement(sql);
ps.setInt(1, ot.getOrder_sum_price().intValue());
ps.setInt(2, ot.getOrder_id().intValue());
ps.executeUpdate();
}catch(SQLException e) {
e.printStackTrace();
}returnfalse;
}
}
2.
2.1 实现查询功能
2.1.1 Servlet
packagecn.com.yong.Servlet;importjava.io.IOException;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcn.com.yong.DaoImplement.Order_tableDaoImplement;importcn.com.yong.Pojo.Order_table;
@WebServlet("/Order_tableSelectAllServlet")publicclassOrder_tableSelectAllServletextendsHttpServlet {privatestaticfinallongserialVersionUID = 1L;publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
doPost(request, response);
}publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
String url=null;
Order_tableDaoImplement otd=newOrder_tableDaoImplement();
List<Order_table> list=otd.selectOrder_table();if(list.size()>0){
url="Order_tableSelectAll.jsp";
request.setAttribute("lit", list);
}else{
url="loser.jsp";
}
request.getRequestDispatcher(url).forward(request, response);
}
}
2.1.2 jsp页面
<%@pageimport="cn.com.yong.Pojo.Order_table"%>
<%@pageimport="cn.com.yong.DaoImplement.Order_tableDaoImplement"%>
<%@ page language="java"import="java.util.*" pageEncoding="utf-8"%>
<%String path=request.getContextPath();
String basePath= request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'Order_tableSelectAll.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/CSS" href="styles.css">
-->
</head>
<body>
<table border="1" cellpadding="1" cellspacing="1" align="center" width="80%">
<tr>
<th>订单号</th>
<th>订单发货地址</th>
<th>订单id</th>
<th>订单总金额</th>
<th>下单日期</th>
<th>订单状态</th>
<th>支付明细</th>
<th>操作</th>
</tr>
<%List<Order_table> list=(List<Order_table>)request.getAttribute("lit");for(Order_table ot:list){%>
<tr>
<td><%=ot.getOrder_id()%></td>
<td><%=ot.getOrder_address()%></td>
<td><%=ot.getOrder_user_id()%></td>
<td><%=ot.getOrder_sum_price()%></td>
<td><%=ot.getOrder_date()%></td>
<td><%=ot.getOrder_status()%></td>
<td><%=ot.getPayment_id()%></td>
<td><a href="Order_tableDelServlet?order_id=<%=ot.getOrder_id()%>">删除</a>||
<a href="Order_tableUpdateServlet?order_id=<%=ot.getOrder_id()%>">修改</a></td>
</tr>
<%} %>
<h3><a href="Order_tableAdd.jsp">添加</a></h3>
</table>
</body>
</html>
2.2 实现删除功能
2.2.1 Servlet界面
packagecn.com.yong.Servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcn.com.yong.Dao.Order_tableDao;importcn.com.yong.DaoImplement.Order_tableDaoImplement;
@WebServlet("/Order_tableDelServlet")publicclassOrder_tableDelServletextendsHttpServlet {privatestaticfinallongserialVersionUID = 1L;publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
doPost(request, response);
}publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
String url=null;intid=Integer.parseInt(request.getParameter("order_id"));
Order_tableDao otd=newOrder_tableDaoImplement();booleanbn=otd.deleteOrder_table(id);
System.out.println(bn);if(bn){
url="Order_tableSelectAllServlet";
}else{
url="loser.jsp";
}
response.sendRedirect(url);
}
}
2.3 实现修改功能
2.3.1 Jsp
1<%@pageimport="cn.com.yong.Pojo.Order_table"%>2<%@ page language="java"import="java.util.*" pageEncoding="utf-8"%>3<%4String path =request.getContextPath();5String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";6%>78<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">9<html>10<head>11<base href="<%=basePath%>">1213<title>My JSP 'Order_tableUpdate.jsp' starting page</title>1415<meta http-equiv="pragma" content="no-cache">16<meta http-equiv="cache-control" content="no-cache">17<meta http-equiv="expires" content="0">18<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">19<meta http-equiv="description" content="This is my page">20<!--21<link rel="stylesheet" type="text/css" href="styles.css">22-->2324</head>2526<body>27<%Order_table ot=(Order_table)request.getAttribute("ot"); %>28<form action="Order_tableUpdateServlet2" method="post">29<p>订单号:<input name="order_id" type="text" readonly="readonly" value=<%=ot.getOrder_id()%>></p>30<p>订单发货地址:<input name="order_address" type="text" value=<%=ot.getOrder_address()%>></p>31<p>订单人的id:<input name="order_user_id" type="text" value=<%=ot.getOrder_user_id()%>></p>32<p>订单金额:<input name="order_sum_price" type="text" value=<%=ot.getOrder_sum_price()%>></p>33<p>下单日期:<input name="order_date" type="text" value=<%=ot.getOrder_date()%>></p>34<p>订单状态:<input name="order_status" type="text" value=<%=ot.getOrder_status()%>></p>35<p>支付明细表:<input name="payment_id" type="text" value=<%=ot.getPayment_id()%>></p>36<p><input type="submit" value="修改"/></p>37</form>38</body>39</html>
2.3.2 Servlet
1importjava.io.IOException;2importjava.sql.Date;3importjava.text.ParseException;4importjava.text.SimpleDateFormat;56importjavax.servlet.ServletException;7importjavax.servlet.annotation.WebServlet;8importjavax.servlet.http.HttpServlet;9importjavax.servlet.http.HttpServletRequest;10importjavax.servlet.http.HttpServletResponse;1112importcn.com.yong.DaoImplement.Order_tableDaoImplement;13importcn.com.yong.Pojo.Order_table;14@WebServlet("/Order_tableUpdateServlet2")15publicclassOrder_tableUpdateServlet2extendsHttpServlet {1617privatestaticfinallongserialVersionUID = 1L;1819publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)20throwsServletException, IOException {21doPost(request, response);22}2324publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)25throwsServletException, IOException {26Order_tableDaoImplement otd=newOrder_tableDaoImplement();27Order_table ot=newOrder_table();2829intorder_id=Integer.parseInt(request.getParameter("order_id"));30String order_address=request.getParameter("order_address");31intorder_user_id=Integer.parseInt(request.getParameter("order_user_id"));32intorder_sum_price=Integer.parseInt(request.getParameter("order_sum_price"));33Date order_date=null;34try{35order_date=newDate(newSimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("order_date")).getTime());36}catch(ParseException e) {37e.printStackTrace();38}39intorder_status=Integer.parseInt(request.getParameter("order_status"));40intpayment_id=Integer.parseInt(request.getParameter("payment_id"));4142ot.setOrder_id(order_id);43ot.setOrder_address(order_address);44ot.setOrder_user_id(order_user_id);45ot.setOrder_sum_price(order_sum_price);46ot.setOrder_date(order_date);47ot.setOrder_status(order_status);48ot.setPayment_id(payment_id);4950booleanbn=otd.updateOrder_table(ot);51String url=null;52if(bn){53url="Order_tableSelectAllServlet";54}else{55url="loser.jsp";56}57response.sendRedirect(url);58}5960}
2.4 添加功能
2.4.1 Html(直接用表单提交给Servlet,不需要转发给jsp)
1<head>2<title>Order_tableAdd.html</title>34<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">5<meta http-equiv="description" content="this is my page">6<meta http-equiv="content-type" content="text/html; charset=UTF-8">78<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->910</head>1112<body>13<form action="Order_tableAddServlet" method="post">14<p>订单号:<input name="order_id" type="text"></p>15<p>订单发货地址:<input name="order_address" type="text" ></p>16<p>订单人的id:<input name="order_user_id" type="text" ></p>17<p>订单金额:<input name="order_sum_price" type="text" ></p>18<p>下单日期:<input name="order_date" type="text" ></p>19<p>订单状态:<input name="order_status" type="text" ></p>20<p>支付明细表:<input name="payment_id" type="text"></p>21<p><input type="submit" value="添加"/></p>22</form>23</body>
2.4.2 Servlet
1importjava.io.IOException;2importjava.sql.Date;3importjava.text.ParseException;4importjava.text.SimpleDateFormat;56importjavax.servlet.ServletException;7importjavax.servlet.annotation.WebServlet;8importjavax.servlet.http.HttpServlet;9importjavax.servlet.http.HttpServletRequest;10importjavax.servlet.http.HttpServletResponse;1112importcn.com.yong.DaoImplement.Order_tableDaoImplement;13importcn.com.yong.Pojo.Order_table;14@WebServlet("/Order_tableAddServlet")15publicclassOrder_tableAddServletextendsHttpServlet {1617privatestaticfinallongserialVersionUID = 1L;1819publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)20throwsServletException, IOException {21doPost(request, response);22}2324publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)25throwsServletException, IOException {26Order_tableDaoImplement otd=newOrder_tableDaoImplement();27Order_table ot=newOrder_table();2829intorder_id=Integer.parseInt(request.getParameter("order_id"));30String order_address=request.getParameter("order_address");31intorder_user_id=Integer.parseInt(request.getParameter("order_user_id"));32intorder_sum_price=Integer.parseInt(request.getParameter("order_sum_price"));33Date order_date=null;34try{35order_date=newDate(newSimpleDateFormat("yyyy-MM-dd").parse(request.getParameter("order_date")).getTime());36}catch(ParseException e) {37e.printStackTrace();38}39intorder_status=Integer.parseInt(request.getParameter("order_status"));40intpayment_id=Integer.parseInt(request.getParameter("payment_id"));4142ot.setOrder_id(order_id);43ot.setOrder_address(order_address);44ot.setOrder_user_id(order_user_id);45ot.setOrder_sum_price(order_sum_price);46ot.setOrder_date(order_date);47ot.setOrder_status(order_status);48ot.setPayment_id(payment_id);495051booleanbn=otd.addOrder_table(ot);52String url=null;53if(bn){54url="Order_tableSelectAllServlet";55}else{56url="loser.jsp";57}58response.sendRedirect(url);59}6061}
注:每创建一个Servlet对象,需要配置文件,如2.4.2十四行所示,不要忘记