gpt4 book ai didi

JavaWeb实现学生信息管理系统(3)

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章JavaWeb实现学生信息管理系统(3)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文接着第二篇,继续为大家分享了JavaWeb实现学生信息管理系统,供大家参考,具体内容如下 。

今日任务:实现学生管理系统的删除、更新、修改和模糊查询功能! 。

1、删除学生信息

点击超链接,弹出一个询问是否删除的对话框,如果点击了确定,删除此学生的信息.

1. 超链接执行一个js方法 。

?
1
< a href = "#" onclick = "doDelete(${stu.sid})" >删除</ a >

在doDelete()方法里判断点击的选项,然后跳转到DeleteServlet.

?
1
2
3
4
5
6
7
8
9
10
<script type= "text/javascript" >
  function doDelete(sid){
   //如果这里弹出的对话框,用户点击的是确定,就去请求servlet
   var flag = confirm( "确定删除?" );
   if (flag){
    //表明确定删除。则访问servlet,在当前标签页上打开超链接
    window.location.href = "DeleteServlet?sid=" +sid;
   }
  }
</script>

2. DeleteServlet收到了请求,然后去调用service,service去调用dao.

DeleteServlet.java 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
   try {
    //1.接受id
    int sid = Integer.parseInt(request.getParameter( "sid" ));
   
    //2.执行删除
    StudentService service = new StudentServiceImpl();
    service.delete(sid);
   
    //3.跳转到列表页
    request.getRequestDispatcher( "StudentListServlet" ).forward(request,response);
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }

StudentDao.java & StudentService.java 。

?
1
2
3
4
5
6
/**
  * 根据id删除学生
  * @param sid
  * @throws SQLException
  */
void delete( int sid) throws SQLException;

StudentDaoImpl.java & StudentServiceImpl.java 。

?
1
2
3
4
5
6
7
8
9
10
11
public class StudentDaoImpl implements StudentDao {
 
  @Override
  public void delete( int sid) throws SQLException {
   QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());
   String sql = "delete from stu where sid=?" ;
   runner.update(sql,sid);
  
  }
 
}
?
1
2
3
4
5
6
7
8
public class StudentServiceImpl implements StudentService{
  @Override
  public void delete( int sid) throws SQLException {
   StudentDao dao = new StudentDaoImpl();
   dao.delete(sid);
  
  }
}

3. 删除结果如下:

删除id = 3的学生的信息 。

JavaWeb实现学生信息管理系统(3)
JavaWeb实现学生信息管理系统(3)

2、更新(修改)学生信息

1. 点击列表上的更新,跳转到EditServlet上 。

?
1
< a href = "EditServlet?sid=${stu.sid }" rel = "external nofollow" >更新</ a >

2. 在EditServlet里面,根据id查询这个学生的所有信息 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
   try {
    //1.接受id
    int sid = Integer.parseInt(request.getParameter( "sid" ));
   
    //2.查询学生数据
    StudentService service = new StudentServiceImpl();
    Student stu = service.findStudentById(sid);
   
    //3.显示数据
    //存数据
    request.setAttribute( "stu" , stu);
    //跳转
    request.getRequestDispatcher( "edit.jsp" ).forward(request, response);
   } catch (SQLException e) {
    e.printStackTrace();
   }
  
  
  }

3. 跳转到更新页面edit.jsp,在edit.jsp上显示数据 。

原来的学生信息如图所示,我们修改编号为2的学生的电话为11111。 点击更新,跳转到该学生的修改页面,如下:

JavaWeb实现学生信息管理系统(3)

修改页面代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
< body >
 
  < h3 >更新学生页面</ h3 >
 
  < form action = "UpdateServlet" method = "post" >
   < input type = "hidden" name = "sid" value = "${stu.sid }" >
   < table border = "1" width = "600" >
    < tr >
     < td >姓名</ td >
     < td >< input type = "text" name = "sname" value = "${stu.sname }" ></ td >
    </ tr >
    < tr >
     < td >性别</ td >
     < td >
      <!--
      如果性别是男的,可以在男的性别input标签里面出现checked;
      如果性别是女的,可以在女的性别input标签里面出现checked;
       -->
      < input type = "radio" name = "gender" value = "男"
       <c:if test = "${stu.gender == '男' }" >checked</ c:if >
      >男
      < input type = "radio" name = "gender" value = "女"
       <c:if test = "${stu.gender == '女' }" >checked</ c:if >
      >女
     </ td >
    </ tr >
    < tr >
     < td >电话</ td >
     < td >< input type = "text" name = "phone" value = "${stu.phone }" ></ td >
    </ tr >
    < tr >
     < td >生日</ td >
     < td >< input type = "text" name = "birthday" value = "${stu.birthday }" ></ td >
    </ tr >
    < tr >
     < td >爱好</ td >
     < td >
      <!--
      例如:爱好有篮球,足球,看书
      由于爱好有很多歌,里面存在包含关系
       -->
      < input type = "checkbox" name = "hobby" value = "游泳"
       <c:if test = "${fn:contains(stu.hobby,'游泳') }" >checked</ c:if >
      >游泳
      < input type = "checkbox" name = "hobby" value = "篮球"
       <c:if test = "${fn:contains(stu.hobby,'篮球') }" >checked</ c:if >
      >篮球
      < input type = "checkbox" name = "hobby" value = "足球"
       <c:if test = "${fn:contains(stu.hobby,'足球') }" >checked</ c:if >
      >足球
      < input type = "checkbox" name = "hobby" value = "看书"
       <c:if test = "${fn:contains(stu.hobby,'看书') }" >checked</ c:if >
      >看书
      < input type = "checkbox" name = "hobby" value = "写字"
       <c:if test = "${fn:contains(stu.hobby,'写字') }" >checked</ c:if >
      >写字
     </ td >
    </ tr >
    < tr >
     < td >简介</ td >
     < td >
      < textarea rows = "3" cols = "20" name = "info" >${stu.info }</ textarea >
     </ td >
    </ tr >
    < tr >
     < td colspan = "2" >< input type = "submit" value = "更新" ></ td >
    </ tr >
   </ table >
  </ form >
 
 
</ body >

修改该学生的电话为11111,如下:

JavaWeb实现学生信息管理系统(3)

4. 修改完数据,提交数据到UpdateServlet 。

【备:代码与AddServlet代码相似,唯一的不同点就是:提交上来的数据是没有带id的,我们需要手动创建一个隐藏的输入框,在这里面给定id的值,以便提交表单时,带上id.

?
1
< input type = "hidden" name = "sid" value = "${stu.sid }" >
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
   request.setCharacterEncoding( "utf-8" );
   try {
    //1.获取客户端提交上来的数据
    int sid = Integer.parseInt(request.getParameter( "sid" ));
    System.out.println(sid);
    String sname = request.getParameter( "sname" );
    System.out.println(sname);
    String gender = request.getParameter( "gender" );
    String phone = request.getParameter( "phone" );
    String birthday = request.getParameter( "birthday" );  //传过来是1989-10-18
    String info = request.getParameter( "info" );
    
    //String hobby = request.getParameter("hobby");
    String [] h = request.getParameterValues( "hobby" );
    //[篮球,足球,写字]-----篮球,足球,写字
    String hobby = Arrays.toString(h);
    hobby = hobby.substring( 1 ,hobby.length()- 1 );
   
    //String-------Date
    Date date = new SimpleDateFormat( "yyyy-MM-dd" ).parse(birthday);
    Student student = new Student(sid,sname,gender,phone,hobby,info,date);
   
    //2.更新数据库数据
    StudentService service = new StudentServiceImpl();
    service.update(student);
   
    //3.跳转界面
    request.getRequestDispatcher( "StudentListServlet" ).forward(request, response);
   } catch (Exception e) {
    e.printStackTrace();
   }
  
 
  }

5. 获取数据,调用service,调用dao 。

StudentDao.java & StudentService.java 。

?
1
2
3
4
5
6
/**
  * 更新学生信息
  * @param student  需要更新的学生数据
  * @throws SQLException
  */
void update(Student student) throws SQLException;

StudentDaoImpl.java 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class StudentDaoImpl implements StudentDao {
  @Override
  public void update(Student student) throws SQLException {
   QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());
   String sql = "update stu set sname=? , gender=? , phone=? , birthday=? , hobby=? , info=? where sid=?" ;
   runner.update(sql,
     student.getSname(),
     student.getGender(),
     student.getPhone(),
     student.getBirthday(),
     student.getHobby(),
     student.getInfo(),
     student.getSid()
    
     );
  
  }
 
}

StudentServiceImpl.java 。

?
1
2
3
4
5
6
7
8
public class StudentServiceImpl implements StudentService{
  @Override
  public void update(Student student) throws SQLException {
  
   StudentDao dao = new StudentDaoImpl();
   dao.update(student);
  }
}

6. 更新(修改)学生信息结果如下:

JavaWeb实现学生信息管理系统(3)

3、模糊查询

1. 在list.jsp加入进行查询的文本框 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
< form action = "SearchStudentServlet" method = "post" >
 
   < table border = "1" width = "700" >
   
    < tr >
     < td colspan = "8" >
      按姓名查询:< input type = "text" name = "sname" />
      &nbsp;&nbsp;&nbsp;
      按性别查询:< select name = "sgender" >
          < option value = "" >--请选择--
          < option value = "男" >男
          < option vale = "女" >女
         </ select >
      &nbsp;&nbsp;&nbsp;
      < input type = "submit" value = "查询" >
      &nbsp;&nbsp;&nbsp;
      < a href = "add.jsp" rel = "external nofollow" >添加</ a >
     </ td >
    </ tr >
   </ table >
  </ form >

实现效果如下图所示:

JavaWeb实现学生信息管理系统(3)

2. 在SearchServlet里面,查询符合查询条件的学生信息 。

代码实现如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  
   request.setCharacterEncoding( "utf-8" );
   try {
    //1.取到了要查询的关键数据:姓名,性别
    String sname = request.getParameter( "sname" );
    String sgender = request.getParameter( "sgender" );
   
    //2.查询
    StudentService service = new StudentServiceImpl();
    List<Student> list = service.searchStudent(sname, sgender);
   
    request.setAttribute( "list" , list);
   
    //3.跳转界面--列表界面
    request.getRequestDispatcher( "list.jsp" ).forward(request, response);
   } catch (SQLException e) {
    e.printStackTrace();
   }
  
  }

例如:查询所有性别为男的学生信息; 。

JavaWeb实现学生信息管理系统(3)

查询结果如下:

JavaWeb实现学生信息管理系统(3)

3. 获取数据,调用service,调用dao 。

StudentDao.java & StudentService.java 。

?
1
2
3
4
5
6
7
8
/**
   * 模糊查询,根据姓名或者根据性别,或者两者兼有
   * @param sname
   * @param sgender
   * @return  List<Student>
   * @throws SQLException
   */
  List<Student> searchStudent(String sname,String sgender) throws SQLException;

StudentDaoImpl.java【这是一个需要注意的部分!!!】 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@Override
public List<Student> searchStudent(String sname, String sgender) throws SQLException {
  QueryRunner runner = new QueryRunner(JDBCUtil02.getDataSource());
  /**
   * 如果只有姓名 select * from stu where sname like?;
   * 如果只有性别 select * from stu where gender=?
   * 如果两个都有 select * from stu where sname like? and gender=?
   * 如果两个都没有就查询所有
   */
  String sql = "select * from stu where 1=1 " ;
  List<String> list = new ArrayList<String>();
 
  //判断是否有姓名,如果有,就组拼到sql语句里
  if (!TestUtils.isEmpty(sname)) {
   sql = sql + "and sname like ?" ;
   list.add( "%" +sname+ "%" );
  }
  //判断是否有性别,如果有,就组拼到sql语句里
  if (!TestUtils.isEmpty(sgender)) {
   sql = sql + "and gender = ?" ;
   list.add(sgender);
  }
 
 
  return runner.query(sql, new BeanListHandler<Student>(Student. class ),list.toArray());
 
}

StudentServiceImol…java 。

?
1
2
3
4
5
@Override
  public List<Student> searchStudent(String sname, String sgender) throws SQLException {
   StudentDao dao = new StudentDaoImpl();
   return dao.searchStudent(sname, sgender);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.

原文链接:https://blog.csdn.net/weixin_44270855/article/details/104231634 。

最后此篇关于JavaWeb实现学生信息管理系统(3)的文章就讲到这里了,如果你想了解更多关于JavaWeb实现学生信息管理系统(3)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com