修改客户信息的java程序_基于jsp+servlet图书管理系统之后台
⽤户信息修改操作
为了⽅便理解和说明,先写⼀下执⾏的流程和步奏,详细代码可以下载连接。
1:修改操作的执⾏流程:
1.1:修改操作需要先获取到⽤户信息的编号,然后才可以进⾏修改,脑⼦⾥⼀定有这个思路。故获取⽤户编号的操作即为查询操作。这⾥使⽤了⼀个⼩⼯具进⾏分页操作,感兴趣的可以下载源码查看,当作练⼿使⽤也是灰常不错的选择。
paramId="userId" paramProperty="userId">
1.2:点击修改提交到system/userinfoupdate这个路径的servlet层。然后到了后台调⽤service业务逻辑层的getUser⽅法。
UserInfoService service=new UserInfoServiceImpl();
//调⽤service业务逻辑层的getUser⽅法
UserInfo User(user);
1.3:然后业务逻辑层调⽤dao层(数据处理=层),UserId());
1.4:dao层(数据处理层)执⾏和数据库的连接等等操作之后执⾏ return user;//返回⽤户的信息
1.5:service层执⾏UserId());返回到servlet层
1.6:servlet层转发到 userinfo_update.jsp更新操作的jsp页⾯
1.7:在更新页⾯没修改好之后就可以提交到system/userinfoupdate这个执⾏更新操作的servlet层的doPost⽅法。需要注意的是隐藏⽂本框是为了获取⽤户编号,⼀定要写,不然获取不到⽤户的编号,⽆法进⾏修改。
1.8:执⾏到这个修改的servlet层之后调⽤业务逻辑层的修改⽅法。
UserInfoService service=new UserInfoServiceImpl();
boolean mark=service.updateUser(user);
1.9:service业务逻辑层(修改,插⼊,伪删除都是使⽤提出来的⼯具类的⽅法),所以调⽤⼯具类⾥⾯的⽅法。
//添加和修改(伪删除)都可以调⽤⼯具类⾥⾯公共的⽅法。
int count=DbUtils.addAndUpdate(sql, Array());
2.0:⼯具类⾥⾯的⽅法执⾏之后返回执⾏的结果。uteUpdate();
2.1:⼜返回到了service层,将执⾏的true或者false结果返回到servlet层。
//添加和修改(伪删除)都可以调⽤⼯具类⾥⾯公共的⽅法。
int count=DbUtils.addAndUpdate(sql, Array());
if(count>0){
return true;
}else{
return false;
}
2.2:最后返回到了修改的servlet层
boolean mark=service.updateUser(user);
//判断最后返回值是否为true,如果为true,提⽰修改成功,否则提⽰修改失败
if(mark){
request.setAttribute("info", "⽤户信息修改成功");
}else{
request.setAttribute("info", "⽤户信息修改失败");
}
2.3:判断上⾯的true或者false之后转发到user_info.jsp这个页⾯,这个页⾯⽤来提⽰信息
2.4:提⽰信息之后⼜由js的window跳转到system/userinfoselect这个路径的servlet层。
window.location="system/userinfoselect";
2.5: 跳转到这个servlet层之后转发到userinfo_list.jsp这个页⾯。显⽰出修改之后的结果。完成修改操作
⾄此修改操作基本完成;
下⾯将执⾏流程的重要代码写⼀下,希望对学习基于java开发的web⽅法的⼩伙伴有所帮助,也⽅便以后⾃⾏脑补。详细的代码可以去链接地址下载。 1
1:按照页⾯点击修改的流程进⾏写代码,⽅便理解。第⼀是到页⾯点击修改。
1
2 pageEncoding="UTF-8"%>
3
4 //获取绝对路径路径
5 String path =ContextPath();
6 String basePath = Scheme() + "://"
7 + ServerName() + ":" +ServerPort()8 + path + "/";9 %>
10
11
12
13
14
15
16
17
⽤户管理-⽤户查询
18
19
20
25
26
系统管理
27
⽤户管理
28
⽤户查询
29
30
javaservlet和jsp的比较31
32
33
34 账号:
35
36 姓名:
37
38
39 全部
40 普通会员
41 管理员42
43
44 添加⽤户46
47
48
49
50
51
52
53
54
58
59
60
61
62
63
64
2:点击修改之后就到了修改的servlet层的doSet⽅法
1 packagecom.bie.system.servlet;2
3 importjava.io.IOException;4
5 importjavax.servlet.ServletException;
6 importjavax.servlet.annotation.WebServlet;
7 importjavax.servlet.http.HttpServlet;
8 importjavax.servlet.http.HttpServletRequest;
9 importjavax.servlet.http.HttpServletResponse;10
11 importcom.bie.po.UserInfo;12 importcom.bie.system.service.UserInfoService;13
importcom.bie.system.service.impl.UserInfoServiceImpl;web.servlet.RequestBeanUtils;15
16 @WebServlet("/system/userinfoupdate")17 public class UserInfoUpdateServlety extendsHttpServlet{18
19 private static final long serialVersionUID = 1L;20
21 @Override22 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {23 //将从表单中获取的数据封装到javabean的⽤户信息实体类中
24 UserInfo questToSimpleBean(request, UserInfo.class);25 UserInfoService
service=newUserInfoServiceImpl();26 //调⽤service业务逻辑层的getUser⽅法
27 UserInfo User(user);28 //将返回的⽤户信息设置域中
29 request.setAttribute("user", userInfo);30 //转发到更新⽤户信息的页⾯
RequestDispatcher("/view/system/userinfo/userinfo_update.jsp").forward(request, response);32 }33
34 @Override35 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {36 //将表单提交的数据封装到javabean中的实体类中
37 UserInfo questToSimpleBean(request, UserInfo.class);38 //调⽤业务逻辑层的更新的⽅法
39 UserInfoService service=newUserInfoServiceImpl();40 boolean mark=service.updateUser(user);41 //判断最后返回值是否为true,如果为true,提⽰修改成功,否则提⽰修改失败
42 if(mark){43 request.setAttribute("info", "⽤户信息修改成功");44 }else{45 request.setAttribute("info", "⽤户信息修改失败");46 }RequestDispatcher("/view/system/userinfo/user_info.jsp").forward(request, response);48 }49
50
51 }
3:执⾏了上⾯的servlet层之后⼜到了service层(业务逻辑层)页⾯。
1 packagecom.bie.system.service.impl;2
3 importjava.util.ArrayList;
4 importjava.util.List;5
6 importcom.bie.po.UserInfo;
7 importcom.bie.system.dao.UserInfoDao;
8 importcom.bie.system.dao.impl.UserInfoDaoImpl;
9 importcom.bie.system.service.UserInfoService;10 importcom.bie.utils.DbUtils;11 importcom.bie.utils.MarkUtils;12 /***13 * 1.4:这是业务逻辑层的实现类,实现⽤户信息的接⼝14 *15 * 切忌新⼿写好service业务逻辑层需要test测试(junit)16
*@authorbiehongli17 *18 */
19 public class UserInfoServiceImpl implementsUserInfoService{20
21 private UserInfoDao dao=newUserInfoDaoImpl();22 @Override23 public booleaninsertUser(UserInfo user) {24 try{25
//System.out.println(user);//测试传来的UserInfo⾥⾯是否够存在⽤户信息
26 if(user!=null && UserAccount()!=null){27 String sql="INSERT INTO user_info(user_account,user_pw,"
28 + "user_number,user_name,user_age,user_sex,user_mark)"
29 + " VALUES(?,?,?,?,?,?,?)";30 List list=new ArrayList();31 //可以理解位将实体类中get到的信息放到数据库中,因为set设置的信息就是为了查到数据库中
32 list.UserAccount());//将设置好的账号信息保存到集合中
33 list.UserPw());//将设置好的账号信息保存到集合中
34 list.UserNumber());//将设置好的密码信息保存到集合中
35 list.UserName());//将设置好的姓名信息保存到集合中
36 list.UserAge());//将设置好的年龄信息保存到集合中
37 list.UserSex());//将设置好的性别信息保存到集合中38 //list.UserMark());//将设置好的标识信息保存到集合中39 //后台只可以添加管理员
40 user.setUserMark(MarkUtils.USER_MARK_MANAGER);41 //将设置为默认的管理员添加到数据库
42 list.UserMark());43
44 //将封装到集合list中的信息和sql语句传递到DbUtils封装好的 ⽅法中45 //这⾥sql转化位String语句,list转化位数组类型
46 int count=DbUtils.String(), Array());47 //System.out.println(count);//测试返回值是0还是1
48 if(count>0){49 return true;//成功返回true
50 }else{51 return false;//失败返回false
52 }53 }54 }catch(Exception e){55 e.printStackTrace();56 }57 return false;58 }59
60 @Override61 public ListselectUser(UserInfo user) {62 //使⽤StringBuffer进⾏字符串的拼接,不使⽤String63
//StringBuffer sql=new StringBuffer("select * from user_info where 1=1 ");
64 StringBuffer sql=new StringBuffer("select * from user_info where 1=1 ");65 //设置集合,⽤户存放⽤户信息设置值的时候使⽤
66 List list=null;67 //判断⽤户的信息不为空的时候
68 if(user!=null){69 list=new ArrayList();70 //按照账号查询,如果账号不为null且不为空
71 UserAccount()!=null && !UserAccount().equals("")){72 sql.append(" and user_account=?");73
list.UserAccount());74 }75 //按照姓名查询,如果姓名不为null且不为空
76 UserName()!=null && !UserName().equals("")){77 sql.append(" and user_name like ?");78 //模糊查询这样拼接字符串
79 list.add("%"+UserName()+"%");80 }81 //按照标识查询,如果标识不为null且不为空
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论