zoukankan      html  css  js  c++  java
  • 优化MVC,实现数据库表的记录的添加、删除、修改、查询。

    一.在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有了更加深入的了解,这个架构的思想又在我的脑海里画上了深深地一笔,只要思路清晰,知道自己在干什么,想干什么,就什么都好说了。

     需要特别注意到的是路径的问题,必须搞清楚是相对路径还绝对路径。

    本文来自博客园,作者:💞Travelerᘗ,转载请注明原文链接:https://www.cnblogs.com/LindaBlog/p/5281639.html

  • 相关阅读:
    稳扎稳打Silverlight(13) 2.0交互之鼠标事件和键盘事件
    稳扎稳打Silverlight(17) 2.0数据之详解DataGrid, 绑定数据到ListBox
    再接再厉VS 2008 sp1 + .NET 3.5 sp1(2) Entity Framework(实体框架)之详解 Linq To Entities 之一
    稳扎稳打Silverlight(8) 2.0图形之基类System.Windows.Shapes.Shape
    稳扎稳打Silverlight(11) 2.0动画之ColorAnimation, DoubleAnimation, PointAnimation, 内插关键帧动画
    稳扎稳打Silverlight(21) 2.0通信之WebRequest和WebResponse, 对指定的URI发出请求以及接收响应
    稳扎稳打Silverlight(16) 2.0数据之独立存储(Isolated Storage)
    稳扎稳打Silverlight(9) 2.0画笔之SolidColorBrush, ImageBrush, VideoBrush, LinearGradientBrush, RadialGradientBrush
    稳扎稳打Silverlight(23) 2.0通信之调用WCF的双向通信(Duplex Service)
    游戏人生Silverlight(1) 七彩俄罗斯方块[Silverlight 2.0(c#)]
  • 原文地址:https://www.cnblogs.com/LindaBlog/p/5281639.html
Copyright © 2011-2022 走看看