一.在UserDAO里面重寫實體user要調用的方法;
1.查詢所有user表中的記錄。用getAllUser()方法得到List
public class UserDAO {
public List getAllUser() throws SQLException{
String sql="select * from user";
ResultSet rs= DBHelper.getResultSet(sql);
return tools.ResultSettoList(rs,user.class);
}
2.刪除user表中的一條記錄,通過得到客戶端傳過來的ID定位到該條記錄,並調用delete方法,執行刪除記錄操作。
public boolean delete(user user){
String sql="delete from user where userID=?";
Object[] obj=new Object[]{user.getUserID()};
int rs=DBHelper.ExecSql(sql,obj);
if(rs==1)
return true;
else
return true;
}
3.修改user表中的一條記錄,通過得到客戶端傳過來的ID定位到該條記錄,並調用update方法,執行修改記錄操作。
public boolean update(user user){
String sql="update user set userName=?,password=? where userID=?";
Object[] obj=new Object[]{user.getUserName(),user.getPassword(),user.getUserID()};
int rs=DBHelper.ExecSql(sql,obj);
if(rs==1)
return true;
else
return false;
}
4.添加user表中的一條記錄,通過得到客戶端傳過來的ID定位到該條記錄,並調用insert方法,執行添加一條記錄操作。
public boolean insert(user user){
String sql="insert into user(userID,userName,password)values(?,?,?)";
Object[] obj=new Object[]{user.getUserID(),user.getUserName(),user.getPassword()};
int rs=DBHelper.ExecSql(sql,obj);
if(rs>0)
return true;
else
return false;
}
(1)先在dao包中寫出test類測試以上方法是否正確:
1.1 首先可以查看出數據庫中有4條記錄
1.2 當運行此段代碼時,控制台應當顯示出數字“4”,說明getAllUser()方法沒問題。
public class testDAO {
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
// 測試查詢
UserDAO dao = new UserDAO();
List list = dao.getAllUser();
System.out.println(list.size());
}
}
2.1測試刪除方法的正確性:首先查看數據庫中第一條記錄為(userID:1;userName:Tom;password:13579;)
2.2當輸入userID=“5” 該條記錄會被刪除
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
UserDAO dao = new UserDAO();
// 測試刪除:
u.setUserID("5");
dao.delete(u);
System.out.println("u");
結果顯示:
3.1修改:客戶端輸入userID,定位到對應的記錄,則會調用update()方法,執行修改操作
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
UserDAO dao = new UserDAO();
user u = new user();
// 測試修改
u.setUserID("1");
u.setPassword("123");
u.setUserName("King");
dao.update(u);
System.out.println("u");
結果顯示:
4.添加一條記錄:客戶端需要輸入對應的userID;userName;password;此時調用inser()方法,執行添加操作。
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
// 測試查詢
UserDAO dao = new UserDAO();
user u = new user();
// 測試添加:
u.setUserID("4");
u.setUserName("Judy");
u.setPassword("12345");
dao.insert(u);
}
結果:
5.UserServlet中得到List集合並實現跳轉,將記錄顯示在jsp中。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// System.out.println("hello");
UserDAO dao = new UserDAO();
try {
List user = dao.getAllUser();
// servlet改進方法
// request.setAttribute("user", user);
// RequestDispatcher rd=request.getRequestDispatcher("show.jsp");
// rd.forward(request, response);//推送給user,jsp進行后續處理
request.getSession().setAttribute("user", user);
response.sendRedirect("show.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
6.index.jsp中加入超鏈接,以便於使servlet訪問到用戶請求,使數據庫做出相應處理。
<%@ 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%>">
</head>
<body>
<a href ="user/UserServlet?action=show">顯示用戶信息</a>
<a href ="user/insert.jsp">添加用戶</a>
</body>
</html>
7.心得體會:通過此次鍛煉,我對MVC有了更加深入的了解,這個架構的思想又在我的腦海里畫上了深深地一筆,只要思路清晰,知道自己在干什么,想干什么,就什么都好說了。
需要特別注意到的是路徑的問題,必須搞清楚是相對路徑還絕對路徑。