单表操作范例:
BIZ主要处理业务
DAO主要操作数据库--即执行SQL
VO为POJO用于数据库的打包
SERVLET用于处理访问请求
*.jsp用于显示数据的界面--即嵌入Java的HTML
SERVLET代码:
public class OrderServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sql = "1=1" ;
OrderBiz biz=new OrderBiz();
List _l=biz.getAllOrder(sql);
request.setAttribute("OrderList",_l);
String url="/WEB-INF/jsp/OrderList.jsp";
request.getRequestDispatcher(url).forward(request,response);
}
}
BIZ代码:
public class OrderBiz {
//获取定单列表
public List getAllOrder(String sql){
List _l = new ArrayList();
//新建数据库对象
DBConnection dbc = new DBConnection();
if(dbc.getConnect()){
//获取数据库连接
Connection conn = dbc.getConn();
try{
//创建DAO
OrderDao dao = new OrderDao();
//dao执行查询
_l=dao.findbyAll(conn,sql);
}catch(Exception e){
e.printStackTrace();
}finally{
try{
conn.close();//关闭数据库
}catch(Exception ex){
ex.printStackTrace();
}
}
}else{
System.out.println("数据库连接失败!");
}
return _l;
}
}
DAO:
public class OrderDao {
public List findbyAll(Connection _conn, String strSql)
{
Vector v = new Vector();
//定义 存放SQL语句的 StringBuffer
StringBuffer sbSQL = null;
//定义 PreparedStatement
PreparedStatement ps = null;
//定义数据库链接
Connection conn = null;
ResultSet rs=null;
try
{
conn = _conn;
sbSQL = new StringBuffer();
sbSQL.append("select * from Orderx where ");
sbSQL.append(strSql);
ps = conn.prepareStatement(sbSQL.toString());
//执行SQL
rs = ps.executeQuery();
while(rs.next()){
OrderVo vo1= new OrderVo();
vo1.setUserid(rs.getString("userid"));
vo1.setState(rs.getShort("state"));
vo1.setTotal(rs.getFloat("total"));
vo1.setNumbers(rs.getInt("numbers"));
vo1.setPrice(rs.getFloat("price"));
vo1.setName(rs.getString("name"));
vo1.setId(rs.getInt("id"));
v.addElement(vo1);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
finally
{
try
{
//关闭 ps
if (ps != null)
{
ps.close();
ps = null;
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
return v;
}
}
vo:
public class OrderVo {
private float total;
private int numbers;
private float price;
private short state;
private String name;
private int id;
private String userid;
public void setTotal(float total) {
this.total = total;
}
public void setNumbers(int numbers) {
this.numbers = numbers;
}
public void setPrice(float price) {
this.price = price;
}
public void setName(String name) {
this.name = name;
}
public void setId(int id) {
this.id = id;
}
public short getState() {
return state;
}
public void setState(short state) {
this.state = state;
}
public float getTotal() {
return total;
}
public int getNumbers() {
return numbers;
}
public float getPrice() {
return price;
}
public String getName() {
return name;
}
public int getId() {
return id;
}
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
}
JSP:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="cn.edu.ccnu.imd.study.demo.vo.OrderVo" %>
<%
String path = request.getContextPath();
List l = (List)request.getAttribute("OrderList");
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-language" content="zh-CN" />
<title>订单列表</title>
<meta name="Keywords" content="订单列表"/>
<meta name="Description" content="订单列表"/>
</head>
<body>
<h1>订单列表</h1>
<table>
<tr>
<th>消费人</th>
<th>品名</th>
<th>单价</th>
<th>数量</th>
<th>总价</th>
<th>状态</th>
</tr>
<%
for(int i=0;l!=null && i<l.size();i++){
OrderVo vo = (OrderVo)l.get(i);
%>
<tr>
<td ><%=vo.getUserid() %></td>
<td ><%=vo.getName() %></td>
<td ><%=vo.getPrice() %></td>
<td ><%=vo.getNumbers() %></td>
<td ><%=vo.getTotal() %></td>
<%if(vo.getState() == 1){%>
<td style="color:green;">已支付</td>
<%}else {%>
<td style="color:red;">未支付</td>
<%}%>
</tr>
<%
}
%>
</table>
</body>
</html>
WEB.XML:
<servlet>
<description>deal order</description>
<display-name>order</display-name>
<servlet-name>order</servlet-name>
<servlet-class>cn.edu.ccnu.imd.study.demo.servlet.OrderServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>order</servlet-name>
<url-pattern>/servlets/Order.html</url-pattern>
</servlet-mapping>
效果: