作者:拜客
IStudentDao.java代码如下(示例):
public interface IStudentDao {//查询全部学生public List<Student> queryAllStudent();public Student queryStudentBySno(int sno);public boolean isExist(int sno) ;public boolean addStudent(Student student) ;public boolean deleteStudentBySno(int sno);public boolean updateStudentBySno(int sno,Student student) ;}
StudentDaoImpl.java代码如下(示例):
package org.mabo.dao.impl;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import org.mabo.dao.IStudentDao;
import ity.Student;
import org.mabo.util.DBUtil;//数据访问层 原子性
public class StudentDaoImpl implements IStudentDao{public static int getTotalCount(String sql) {ResultSet rs=null;int count=-1;rsuteQuery(sql, null);try {()) {countInt(1);}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally {DBUtil.closeAll();}return count;}//查询全部学生public List<Student> queryAllStudent() {List<Student> students=new ArrayList<Student>();Student student=new Student();ResultSet rs=null;try {String sql="select *from student";rsuteQuery(sql, null);()) {int noInt("sno");String nameString("sname");int age= rs.getInt("sage");String address= rs.getString("saddress");student=new Student(no,name,age,address);students.add(student);}return students;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();return null; } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return null; }finally {DBUtil.closeAll();}}public Student queryStudentBySno(int sno) {ResultSet rs=null;Student student=new Student();try {String sql="select *from student where sno=?";Object[]params= {sno};rsuteQuery(sql, params);()) {int noInt("sno");String nameString("sname");int age= rs.getInt("sage");String address= rs.getString("saddress");student=new Student(no,name,age,address);}return student;} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();return null; } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return null; }finally {DBUtil.closeAll();}}public boolean isExist(int sno) {return queryStudentBySno(sno)==null ? false:true;}public boolean addStudent(Student student) {String sql="insert into student values(?,?,?,?)";Object[]params= {Sno(),Sname(),Sage(),Sadress()};uteUpdate(sql, params);}public boolean deleteStudentBySno(int sno) {String sql="DELETE FROM student WHERE sno=?";Object[]params= {sno};uteUpdate(sql, params);}public boolean updateStudentBySno(int sno,Student student) {String sql="update student set sname=? ,sage=?,saddress=? where sno=?";Object[]params= {Sname(),Sage(),Sadress(),Sno()};uteUpdate(sql, params);}}
Student.java代码如下(示例):
package ity;
//实体类
public class Student {private int sno;private String sname;private int sage;private String saddress;public int getSno() {return sno;}public void setSno(int sno) {this.sno = sno;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public int getSage() {return sage;}public void setSage(int sage) {this.sage = sage;}public String getSadress() {return saddress;}public void setSadress(String sadress) {this.saddress = sadress;}public Student(int sno, String sname, int sage, String sadress) {super();this.sno = sno;this.sname = sname;this.sage = sage;this.saddress = sadress;}public Student() {}public Student( int sage, String sadress) {this.sage = sage;this.saddress = sadress;}@Overridepublic String toString() {return "Student [sno=" + sno + ", sname=" + sname + ", sage=" + sage + ", saddress=" + saddress + "]";}}
IStudentService.java代码如下(示例):
package org.mabo.service;import java.util.List;import ity.Student;public interface IStudentService {public boolean addStudent(Student student);//删除学生public boolean deleteStudent(int sno) ;//更新学生信息public boolean updateStudentBySno(int sno,Student student) ;//根据学号查询学生public Student queryStudentBySno(int sno) ;//查询所有学生public List<Student> queryAllStudent();
}
StudentServiceImpl.java代码如下(示例):
package org.mabo.service.impl;import org.mabo.dao.IStudentDao;
import org.mabo.dao.impl.StudentDaoImpl;
import ity.Student;
import org.mabo.service.IStudentService;import java.util.List;
//业务逻辑层
//负责对dao层进行组装
public class StudentServiceImpl implements IStudentService{StudentDaoImpl studentDao=new StudentDaoImpl();//增加学生public boolean addStudent(Student student) {if(studentDao.Sno())) {studentDao.addStudent(student);return true;}else {return false;}}//删除学生public boolean deleteStudent(int sno) {if(studentDao.isExist(sno)) {return studentDao.deleteStudentBySno(sno);}return false; }//更新学生信息public boolean updateStudentBySno(int sno,Student student) {if(studentDao.isExist(sno)) {return studentDao.updateStudentBySno(sno, student);}return false;}//根据学号查询学生public Student queryStudentBySno(int sno) {return studentDao.queryStudentBySno(sno);}//查询所有学生public List<Student> queryAllStudent(){return studentDao.queryAllStudent();}}
MyController.java代码如下(示例):
package ller;import ity.Student;
import com.mabo.service.IStudentService;
import com.mabo.service.impl.StudentServiceImpl;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.List;@Controller
public class MyController {@RequestMapping(value = "/some.do")public ModelAndView doSome(){//处理some.do请求,相当于service调用处理完成了ModelAndView mv = new ModelAndView();//添加数据,框架在请求的最后把数据放入到request作用域//request.setAttribute("msg","欢迎使用....");mv.addObject("msg","欢迎使用springmvc做web开发");mv.addObject("fun","执行的是doSome方法");//指定视图,指定视图的完整路径//框架对视图执行的forward操作RequestDispather("/show.jsp").forward(...)mv.setViewName("show.jsp");return mv;}@RequestMapping(value = "/queryAllStudent.do")public ModelAndView doQueryAllStudent(){IStudentService service=new StudentServiceImpl();List<Student> students= service.queryAllStudent();System.out.String());//处理some.do请求,相当于service调用处理完成了ModelAndView mv = new ModelAndView();//添加数据,框架在请求的最后把数据放入到request作用域//request.setAttribute("msg","欢迎使用....");mv.addObject("students",students);//指定视图,指定视图的完整路径//框架对视图执行的forward操作RequestDispather("/show.jsp").forward(...)mv.setViewName("/index2.jsp");return mv;}@RequestMapping(value = "/AddStudentServlet.do")public ModelAndView doAddStudent(HttpServletRequest request){try {request.setCharacterEncoding("utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}int no = Integer.Parameter("sno")) ;String name = Parameter("sname");int age =Integer.Parameter("sage")) ;String address = Parameter("saddress");Student student=new Student(no,name,age,address);IStudentService service=new StudentServiceImpl();boolean result= service.addStudent(student);ModelAndView mv = new ModelAndView();if(result==true) {System.out.print("增加成功");mv.setViewName("/queryAllStudent.do");}else {System.out.print("增加失败");}return mv;}@RequestMapping(value = "/QueryStudentBySno.do")public ModelAndView doQueryStudentBySno(HttpServletRequest request) {try {request.setCharacterEncoding("utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}int no = Integer.Parameter("sno"));IStudentService service = new StudentServiceImpl();Student student = service.queryStudentBySno(no);if (student != null) {ModelAndView mv = new ModelAndView();//添加数据,框架在请求的最后把数据放入到request作用域//request.setAttribute("msg","欢迎使用....");mv.addObject("student", student);//指定视图,指定视图的完整路径//框架对视图执行的forward操作RequestDispather("/show.jsp").forward(...)mv.setViewName("personInfo.jsp");return mv;} else {System.out.println("失败");}return null;}@RequestMapping(value = "/DeleteStudentServlet.do")public ModelAndView doDeleteStudent(HttpServletRequest request) {int no = Integer.Parameter("sno")) ;IStudentService service=new StudentServiceImpl();boolean result=service.deleteStudent(no);if(result) {ModelAndView mv = new ModelAndView();mv.setViewName("/queryAllStudent.do");return mv;}else return null;}@RequestMapping(value = "/UpdateStudent.do")public ModelAndView doUpdateStudent(HttpServletRequest request) {try {request.setCharacterEncoding("utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}int no = Integer.Parameter("sno")) ;String name = Parameter("sname");int age =Integer.Parameter("sage")) ;String address = Parameter("saddress");Student student=new Student(no,name,age,address);IStudentService service=new StudentServiceImpl();boolean result= service.updateStudentBySno(no, student);ModelAndView mv=new ModelAndView();if(result) {System.out.print("成功");mv.setViewName("/queryAllStudent.do");return mv;}else {System.out.print("失败");return null;}}}
DBUtil.java代码如下(示例):
package org.mabo.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;import ity.Student;public class DBUtil {static String URL = "jdbc:mysql://localhost:3306/user?serverTimezone=UTC" ;static String USERNAME = "root" ;static String PWD = "368542";public static Connection connection=null;public static PreparedStatement pStatement=null;public static ResultSet rs=null;public static Connection getConnection() throws ClassNotFoundException, SQLException {Class.forName(sql.cj.jdbc.Driver");Connection(URL, USERNAME, PWD);}public static PreparedStatement createPreparedStatement(String sql, Object[] params) throws ClassNotFoundException, SQLException {pStatement=getConnection().prepareStatement(sql);if(params!=null) {for(int i=0;i<params.length;i++) {pStatement.setObject(i+1, params[i]);}}return pStatement;}public static boolean executeUpdate(String sql, Object[] params) {try {pStatement=createPreparedStatement(sql,params);int countuteUpdate();if(count>0) {return true;}else {return false;}} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();return false; } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();return false; } catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();return false; }finally {try {if(pStatement!=null) {pStatement.close();}if(connection!=null) {connection.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}public static ResultSet executeQuery(String sql,Object[]params) {try {pStatement=createPreparedStatement(sql,params);rsuteQuery();return rs;} catch (ClassNotFoundException | SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();return null;} }public static void closeAll() {try {if(DBUtil.rs!=null) {DBUtil.rs.close();}if(DBUtil.pStatement!=null) {DBUtil.pStatement.close();}tion!=null) {tion.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
}
index.jsp代码如下(示例):
<%@page import="java.util.List"%>
<%@page import="ity.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="" method="post" ><table border="1"><tr><th>学号</th><th>姓名</th><th>年龄</th><th>地址</th><th>操作</th></tr><%List<Student> students=(List<Student>)Attribute("students");for(Student student:students){%> <tr><th><a href="QueryStudentBySnoServlet?sno=<%Sno() %>"><%Sno() %></a></th><th><a><%Sname() %></a></th><th><a><%Sage() %></a></th><th><a><%Sadress() %></a></th><th><a href="DeleteStudentServlet?sno=<%Sno() %>">删除</a></th></tr><% }%></table><a href="add.jsp">新增</a>
</form>
</body>
</html>
personInfo.jsp代码如下(示例):
<%@page import="ity.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>个人信息</title>
</head>
<body>
<%Student student=(Attribute("student");
%>
<form action="UpdateStudentServlet" method="post">学号:<input type="text" name="sno" value="<%Sno() %>" readonly="readonly"><br>姓名:<input type="text" name="sname" value="<%Sname() %>"><br>年龄:<input type="text" name="sage" value="<%Sage() %>"><br>地址:<input type="text" name="saddress" value="<%Sadress() %>"><br><input type="submit" value="修改"><br><a href="QueryAllStudentServlet">返回</a>
</form>
</body>
</html>
add.jsp代码如下(示例):
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="AddStudentServlet" method="post">学号:<input type="text" name="sno"><br>姓名:<input type="text" name="sname"><br>年龄:<input type="text" name="sage"><br>地址:<input type="text" name="saddress"><br><input type="submit" value="新增"><br><a href="QueryAllStudentServlet">返回</a>
</form>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="" xmlns=".0.0"xsi:schemaLocation=".0.0 .0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.mabo</groupId><artifactId>SpringMVC</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><mavenpiler.source>1.8</mavenpiler.source><mavenpiler.target>1.8</mavenpiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!--spring mvc--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.6.RELEASE</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency></dependencies><build></build>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""xmlns:xsi=""xmlns:context=""xsi:schemaLocation="://www.springframework/schema/beans/spring-beans.xsd://www.springframework/schema/context/spring-context.xsd"><!--声明组件扫描器--><context:component-scan base-package="com.mabo"/></beans>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns=""xmlns:xsi=""xsi:schemaLocation=" .xsd"version="4.0"><!--声明:注册springmvc的核心对象DispatcherServlet需要在tomcat服务器启动后,创建DispatcherServlet对象实例为什么要创建DispatcherServlet对象的实例呢?因为在DispatcherServlet创建过程中,会同时创建springmvc容器对象,读取springmvc的配置文件,把这个配置文件中的对象都配置好,当用户发起请求时就可以直接使用对象了。servlet的初始化会执行init()方法,DispatcherServlet在init()中{//创建容器,读取配置文件webApplicationContext ctx = new ClassPathXmlApplicationContext(l");//把容器对象放入到ServletContext中getServletContext().setAttribute(key,ctx);}
--><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--自定义springmvc读取文件的位置--><init-param><!--springmvc配置文件的位置属性--><param-name>contextConfigLocation</param-name><!--指定自定义文件的位置--><param-value>l</param-value></init-param><!--表示在tomcat启动后,创建servlet对象数字表示启动后创建对象的顺序,数值越小,tomcat创建对象越早,要求大于等于0的整数--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><!--使用框架的时候,url-pattern可以使用两种值1.使用扩展名方式,语法 *.xxxx , xxxx时自定义扩展名。常用的方式 *.do, *.action, *.mvc等等localhost:8080/myweb/some.dolocalhost:8080?myweb/other.do2.使用斜杠"/"--><url-pattern>*.do</url-pattern></servlet-mapping><!--欢迎页面--><welcome-file-list><welcome-file>queryAllStudent.do</welcome-file></welcome-file-list>
</web-app>
欢迎页面为controller
跳转后为index.jsp
点击删除自动跳转到index.jsp
增加学生页面
点击学生学号进入详细信息
该界面可以修改学生信息,修改完毕跳转到index.jsp
学号不可改
org.springframework.web.servlet.DispatcherServletr配置的时候爆红,并且在maven依赖中找不到相关的包
<servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
解决办法:在lib目录导入包spring-web-5.2.6.RELEASE.jar并添加
添加jar包
选择并确定
设置java文件夹为根,添加resources目录
[MVC注解的项目参考教学视频]()
[servlet基础参考视频](=38&t=509)
本文发布于:2024-02-01 09:58:57,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170675273935838.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |