优化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有了更加深入的了解,这个架构的思想又在我的脑海里画上了深深地一笔,只要思路清晰,知道自己在干什么,想干什么,就什么都好说了。
需要特别注意到的是路径的问题,必须搞清楚是相对路径还绝对路径。
优化MVC,实现数据库表的记录的添加、删除、修改、查询。的更多相关文章
- 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等
用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...
- SQL语句添加删除修改字段及一些表与字段的基本操作
用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200)2.删除字段 ALTER TABLE table_NA ...
- 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改的记录数
开篇语 在这篇日志中 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 我介绍到了包级别的日志管理框架,那么这个主要是针对包这一个层级的 Log 信息,包括包开始执行和结束时间,以 ...
- MySQL数据库优化技术之数据库表的设计
三范式介绍表的范式:只有符合的第一范式,才能满足第二范式,进一步才能满足第三范式. 1. 第一范式:表的列具有原子性,不可再分解.只要是关系型数据库都自动满足第一范式.数据库的分类:关系型数据库:My ...
- 查询sqlserver数据库表的记录数
SELECT a.name, b.rows FROM sysobjects AS a INNER JOINsysindexes AS b ON a.id = b.idWHERE (a.type = ' ...
- SQL Server 数据库引擎怎样记录完整备份后修改过的数据
SQL Server 使用两个内部数据结构跟踪被大容量复制操作修改的区,以及自上次完整备份后修改的区.这些数据结构极大地加快了差异备份的速度.当数据库使用大容量日志恢复模式时,这些数据结构也可以加快将 ...
- SQL Server 2012设置某用户对某些表的记录限制其删除操作
第一步:用sa用户进入SSMS: 第二步:在安全性---用户上面点击右键---"属性": 第三步:在选择页中选择”安全对象“,点击”搜索“,弹出添加对象页面,这里默认为特定对象不用 ...
- Oracle数据库表空间创建、添加用户并授权
--创建test表空间CREATE TABLESPACE test_data LOGGING DATAFILE '/u01/app/oracle/oradata/test/test_data.dbf' ...
- MVC缓存02,使用数据层缓存,添加或修改时让缓存失效
在"MVC缓存01,使用控制器缓存或数据层缓存"中,在数据层中可以设置缓存的有效时间.但这个还不够"智能",常常希望在编辑或创建的时候使缓存失效,加载新的数据. ...
随机推荐
- pyautogui_pdf内容提取到excel内_3
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?courseId=1005269003& ...
- Linux下网卡绑定模式
Linux bonding驱动一共提供了7种模式,它们分别是:balance-rr .active-backup.balance-xor.broadcast.802.3ad.balance-tlb.b ...
- Nginx的alias的用法及与root的区别
以前只知道Nginx的location块中的root用法,用起来总是感觉满足不了自己的一些想法.然后终于发现了alias这个东西. 先看toot的用法 location /request_path/i ...
- Hbase记录-ZooKeeper介绍
ZooKeeper是一个分布式协调服务来管理大量的主机.协调和管理在分布式环境的一个服务是一个复杂的过程.ZooKeeper 简单解决了其结构和API这个问题.ZooKeeper允许开发人员能够专注于 ...
- CM记录-Hadoop运维管理
1.自动化运维--cloudera manager 2.手动运维 a.启动./start.all.sh,停止./stop-all.sh b.hdfs启动/停止:./start-dfs.sh ./s ...
- Study 6 —— 字体和段落属性
字体风格{font-style:normal | italic | oblique | inherit字体复合属性{font:font-style font-variant font-weight f ...
- CentOS6.x下yum安装MySQL5.5/5.6
1. 安装mysql-5.5的yum源 # rpm -ivh http://repo.mysql.com/yum/mysql-5.5-community/el/6/x86_64/mysql-commu ...
- Redis 主从模式
系统:Centos6.6x64安装目录:/usr/local/主:192.168.100.103从:192.168.100.104 ,下载安装: 安装依赖: # yum install gcc tcl ...
- JavaScript练习 - 模态对话框
模态对话框练习 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Android 中查看内存的使用情况集常用adb命令
http://blog.csdn.net/bigconvience/article/details/35553983 http://blog.csdn.net/duantihi/article/det ...