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

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

优化MVC,实现数据库表的记录的添加、删除、修改、查询。的更多相关文章

  1. 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等

    用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...

  2. SQL语句添加删除修改字段及一些表与字段的基本操作

    用SQL语句添加删除修改字段 1.增加字段     alter table docdsp    add dspcode char(200)2.删除字段     ALTER TABLE table_NA ...

  3. 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改的记录数

    开篇语 在这篇日志中 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 我介绍到了包级别的日志管理框架,那么这个主要是针对包这一个层级的 Log 信息,包括包开始执行和结束时间,以 ...

  4. MySQL数据库优化技术之数据库表的设计

    三范式介绍表的范式:只有符合的第一范式,才能满足第二范式,进一步才能满足第三范式. 1. 第一范式:表的列具有原子性,不可再分解.只要是关系型数据库都自动满足第一范式.数据库的分类:关系型数据库:My ...

  5. 查询sqlserver数据库表的记录数

    SELECT a.name, b.rows FROM sysobjects AS a INNER JOINsysindexes AS b ON a.id = b.idWHERE (a.type = ' ...

  6. SQL Server 数据库引擎怎样记录完整备份后修改过的数据

    SQL Server 使用两个内部数据结构跟踪被大容量复制操作修改的区,以及自上次完整备份后修改的区.这些数据结构极大地加快了差异备份的速度.当数据库使用大容量日志恢复模式时,这些数据结构也可以加快将 ...

  7. SQL Server 2012设置某用户对某些表的记录限制其删除操作

    第一步:用sa用户进入SSMS: 第二步:在安全性---用户上面点击右键---"属性": 第三步:在选择页中选择”安全对象“,点击”搜索“,弹出添加对象页面,这里默认为特定对象不用 ...

  8. Oracle数据库表空间创建、添加用户并授权

    --创建test表空间CREATE TABLESPACE test_data LOGGING DATAFILE '/u01/app/oracle/oradata/test/test_data.dbf' ...

  9. MVC缓存02,使用数据层缓存,添加或修改时让缓存失效

    在"MVC缓存01,使用控制器缓存或数据层缓存"中,在数据层中可以设置缓存的有效时间.但这个还不够"智能",常常希望在编辑或创建的时候使缓存失效,加载新的数据. ...

随机推荐

  1. 获取天气预报API5_统计最容易生病时间段

    sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...

  2. Scala进阶之路-Scala高级语法之隐式(implicit)详解

    Scala进阶之路-Scala高级语法之隐式(implicit)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们调用别人的框架,发现少了一些方法,需要添加,但是让别人为你一 ...

  3. BIO | NIO | AIO (Java版)

    几篇解释的不错的文章: BIO NIO AIO NIO.2 入门,第 1 部分: 异步通道 API 使用异步 I/O 大大提高应用程序的性能

  4. css颜色模式hsla和rgba

    在CSS3中可以使用RGBA和HSLA两种色彩模式,这两个都可以用来设置颜色以及指定透明度. rgba指的是:红色.绿色.蓝色.Alpha透明度(Red-Green-Blue-Alpha)前三个值取值 ...

  5. Hibernate_day02

    一.今天内容 1 实体类编写规则 2 hibernate主键生成策略 (1)native (2)uuid 3 实体类操作 (1)crud操作 (2)实体类对象状态 4 hibernate的一级缓存 5 ...

  6. Ubuntu下提示U盘没有权限--只能读不能写

    在Windows下,U盘能够正常地读写文件(能复制粘贴),但发现有个文件打不开.然后在Linux下,对U盘只能读不能写.提示:Read only system. 参考:https://bugs.lau ...

  7. .NET面试题系列(十一)WinDbg、Perfmon

    WinDbg 资料 https://www.cnblogs.com/sheng-jie/p/9503650.html https://www.cnblogs.com/yudongdong/p/9701 ...

  8. ADB not responding

    1.如下错误: 2.执行 如下代码 : netstat -aon|findstr "5037" 3.打开任务管理器  找到PID 为 5536 的进程  将该进程关闭 4.重启 A ...

  9. magelinux(0111)

    Web Service 应用层:http, https 实现某类具体应用: 传输层协议:TCP, UDP, SCTP IANA: 0-1023:众所周知,永久地分配给固定的应用使用,特权端口: 102 ...

  10. VS2013+Win10+opencv3.0配置(包括opencv2.4.10版本)

    在win下配置opencv3.0.0还是比较简单的,这里简单说一下配置过程:参考链接:http://blog.csdn.net/u010009145/article/details/50756751 ...