• 优化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

  • 相关阅读:
    Focal loss and weighted loss学习记录
    学习记录之Focal loss
    caffe学习记录(八) shufflenet学习记录
    caffe学习记录(七) Windows下基于Inter训练的核心加速技术,MKL
    caffe学习记录(六) MobileNet fine tune
    caffe学习记录(五) SSD训练+SSDpelee测试
    caffe学习记录(四) solver
    caffe学习记录(三) Blob,layer Net, solver配置文件的编写
    caffe学习记录(二)
    HTML meta viewport属性说明
  • 原文地址:https://www.cnblogs.com/LindaBlog/p/5281639.html
Copyright © 2020-2023  润新知