11.4 DAO和VO
1.DAO和VO核心知識點
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL61EVNpXUE5keRpHW3BjMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3ATN5EDOxIjM3IDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
2.任務1--在JSP中使用DAO和VO
DAO和Vo綜合應用執行個體
(1)建立shopsystem資料庫,建立customer資料表,并在表中資料。
(2)建立JavaBean: Customer.java
package beans;
public class Customer {
private String c_name;
private String c_pass;
private String c_header;
private String c_phone;
private String c_question;
private String c_answer;
private String c_address;
private String c_email;
public String getC_name() {
return c_name;
}
public void setC_name(String c_name) {
this.c_name = c_name;
}
public String getC_pass() {
return c_pass;
}
public void setC_pass(String c_pass) {
this.c_pass = c_pass;
}
public String getC_header() {
return c_header;
}
public void setC_header(String c_header) {
this.c_header = c_header;
}
public String getC_phone() {
return c_phone;
}
public void setC_phone(String c_phone) {
this.c_phone = c_phone;
}
public String getC_question() {
return c_question;
}
public void setC_question(String c_question) {
this.c_question = c_question;
}
public String getC_answer() {
return c_answer;
}
public void setC_answer(String c_answer) {
this.c_answer = c_answer;
}
public String getC_address() {
return c_address;
}
public void setC_address(String c_address) {
this.c_address = c_address;
}
public String getC_email() {
return c_email;
}
public void setC_email(String c_email) {
this.c_email = c_email;
}
}
(3) 編寫DAO類“CustomerDao.java”:實作Customer類的資料庫操作。
package dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import beans.Customer;
public class CustomerDao {
public ArrayList<Customer> queryAllCustomers(){
//建立集合儲存查詢結果
ArrayList<Customer> customers=new ArrayList<Customer>();
try {
//1.加載資料庫驅動程式
Class.forName("com.mysql.jdbc.Driver");
//2.通過DriverManager擷取資料庫連接配接
String url="jdbc:mysql://localhost:3306/shopsystem";
String userName="root";
String passWord="root";
Connection conn=DriverManager.getConnection(url,userName,passWord);
//3.通過Connection對象擷取Statement對象
Statement stmt=conn.createStatement();
//4.使用Statement執行SQL語句
String sql="select * from customer";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {
//執行個體化VO:儲存結果存儲在目前記錄
Customer customer=new Customer();
customer.setC_name(rs.getString("c_name"));
customer.setC_pass(rs.getString("c_pass"));
customer.setC_header(rs.getString("c_header"));
customer.setC_phone(rs.getString("c_phone"));
customer.setC_question(rs.getString("c_question"));
customer.setC_answer(rs.getString("c_answer"));
customer.setC_address(rs.getString("c_address"));
customer.setC_email(rs.getString("c_email"));
customers.add(customer);//将目前customer添加到集合中
}
rs.close();
stmt.close();
}catch(Exception e) {
e.printStackTrace();
}
return customers;
}
}
(4)在JSP中使用DAO和VO。建立showCustomerjsp。
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="beans.Customer" %>
<%@ page import="dao.CustomerDao" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>現實資料庫查詢使用者資訊</title>
</head>
<body>
<%
CustomerDao cDao=new CustomerDao();
ArrayList<Customer> customers=cDao.queryAllCustomers();
%>
<table >
<tr>
<th>姓名</th><th>密碼</th><th>頭像</th><th>電話号碼</th>
<th>問題提示</th><th>問題答案</th><th>位址</th><th>郵箱</th>
</tr>
<%
for(int i=0;i<customers.size();i++){
Customer c=(Customer)customers.get(i);
%>
<tr>
<td><%=c.getC_name() %></td>
<td><%=c.getC_pass() %></td>
<td><%=c.getC_header() %></td>
<td><%=c.getC_phone() %></td>
<td><%=c.getC_question() %></td>
<td><%=c.getC_answer() %></td>
<td><%=c.getC_address() %></td>
<td><%=c.getC_email() %></td>
</tr>
<%
}
%>
</table>
</body>
</html>
(5)複制mysql資料庫jar包到項目的WEB-INF/lib目錄中,并釋出到類路徑。
(6)運作showCustomer.jsp,結果如下圖所示。