jsp+servlet+maven实现简单的学生信息增删改查

本文档详细介绍了如何使用jsp、servlet和maven构建一个学生信息管理系统,包括创建maven项目、定义实体类、设计数据库结构、实现jdbcutils工具类、定义dao接口和逻辑层代码,以及servlet控制器的编写。项目运行展示了登录、信息修改和添加功能,需要注意若遇到找不到mysql驱动问题,可能需要将驱动复制到tomcat的lib目录。
摘要由CSDN通过智能技术生成

1.使用eclipse创建maven项目,引入依赖包

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<!--mysql驱动包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.11</version>
		</dependency>
		<!-- 添加jstl依赖 Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core" -->
		<dependency>
			<groupId>javax.servlet.jsp.jstl</groupId>
			<artifactId>javax.servlet.jsp.jstl-api</artifactId>
			<version>1.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.taglibs</groupId>
			<artifactId>taglibs-standard-impl</artifactId>
			<version>1.2.5</version>
		</dependency>

	</dependencies>
	<build>
		<finalName>epoint03</finalName>
		<defaultGoal>compile</defaultGoal>
	</build>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
		<java.version>1.8</java.version>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
	</properties>

 2.定义实体类:

//学生实体类
public class Student {
	private int sid;
	private String sname;
	private int sage;
	private String stel;
	private String sadrres;
	public Student() {
		super();
	}
	public Student(int sid, String sname, int sage, String stel, String sadrres) {
		super();
		this.sid = sid;
		this.sname = sname;
		this.sage = sage;
		this.stel = stel;
		this.sadrres = sadrres;
	}
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	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 getStel() {
		return stel;
	}
	public void setStel(String stel) {
		this.stel = stel;
	}
	public String getSadrres() {
		return sadrres;
	}
	public void setSadrres(String sadrres) {
		this.sadrres = sadrres;
	}
	@Override
	public String toString() {
		return "Student [sid=" + sid + ", sname=" + sname + ", sage=" + sage + ", stel=" + stel + ", sadrres=" + sadrres
				+ "]";
	}
	
	
	

}

 

 3,封装一个连接数据库的jdbcutils工具类

//用于连接数据库的方法类
public class JDBCUtil {

 
	// 连接数据库
	public static Connection conData(Connection connection) {
		try {
			Class.forName("com.mysql.cj.jdbc.Driver");
		 	String url = "jdbc:mysql://localhost:3306/epoint01?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
			String user = "root";
			String password = "1234";
			connection = DriverManager.getConnection(url, user, password);

		} catch (ClassNotFoundException e) {

			e.printStackTrace();
		} catch (SQLException e) {

			e.printStackTrace();
		} finally {
			return connection;
		}
	}

//关闭方法
	public static void closeRes(Connection connection, PreparedStatement pst, ResultSet rs) {
		try {
			if (rs != null)
				rs.close();
			if (pst != null)
				pst.close();
			if (connection != null)
				connection.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

 

 4,写dao接口方法实现:

public interface StuDao {
	// 查找所有学生
	public List<Student> Findall();

	// 根据学生姓名跟电话查找学生
	public Student Findone(Student stu);

	// 增加学生
	public int Addone(Student stu);

	// 删除指定id的学生
	public int Delbyid(int sid);

	// 修改指定id的学生信息
	public int Updatebyid(Student stu);
   //根据id查找学生
	public Student Findbyid(int sid);
}
 
//方法实现类,用于连接数据库操作数据
public class StuDaoImp implements StuDao {
	Connection connection = null;
	PreparedStatement pst = null;
	ResultSet rs = null;

	// 查找所有学生
	public List<Student> Findall() {
		List<Student> l
MySQL是一个常用的关系型数据库管理系统,可以通过Java中的JDBC技术来连接和操作MySQL数据库。在Java Web应用中,可以通过ServletJSP技术来实现MySQL数据库的增删改查操作。 以下是一个简单的示例,演示如何使用MySQL JDBC连接MySQL数据库,并通过ServletJSP实现数据的增删改查操作。 1.导入MySQL JDBC驱动程序 在Java Web项目中,需要将MySQL JDBC驱动程序添加到项目的classpath中,以便在程序运行时可以动态加载它。可以通过Maven或手动下载MySQL JDBC驱动程序来实现。 2.连接MySQL数据库 在Servlet中,可以使用Java中的JDBC技术来连接MySQL数据库。以下是一个示例代码: ``` import java.sql.*; public class DBUtil { private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"; private static final String USERNAME = "root"; private static final String PASSWORD = "root"; public static Connection getConnection() throws ClassNotFoundException, SQLException { Class.forName(DRIVER); return DriverManager.getConnection(URL, USERNAME, PASSWORD); } } ``` 在上面的代码中,使用了Java中的JDBC技术来连接MySQL数据库。其中,DRIVER是MySQL JDBC驱动程序的类路径,URL是MySQL数据库的连接字符串,USERNAME和PASSWORD是连接MySQL数据库所需要的用户名和密码。 3.实现增删改查操作 在Servlet中,可以使用Java中的JDBC技术来实现MySQL数据库的增删改查操作。以下是一个示例代码: ``` import java.io.IOException; import java.sql.*; import javax.servlet.ServletException; import javax.servlet.http.*; public class UserServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); if ("add".equals(action)) { addUser(request, response); } else if ("delete".equals(action)) { deleteUser(request, response); } else if ("update".equals(action)) { updateUser(request, response); } else if ("query".equals(action)) { queryUser(request, response); } } private void addUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); Connection conn = null; PreparedStatement stmt = null; try { conn = DBUtil.getConnection(); stmt = conn.prepareStatement("insert into user(username, password) values(?, ?)"); stmt.setString(1, username); stmt.setString(2, password); stmt.executeUpdate(); response.sendRedirect(request.getContextPath() + "/index.jsp"); } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.close(stmt, conn); } } private void deleteUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = request.getParameter("id"); Connection conn = null; PreparedStatement stmt = null; try { conn = DBUtil.getConnection(); stmt = conn.prepareStatement("delete from user where id=?"); stmt.setInt(1, Integer.parseInt(id)); stmt.executeUpdate(); response.sendRedirect(request.getContextPath() + "/index.jsp"); } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.close(stmt, conn); } } private void updateUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String id = request.getParameter("id"); String username = request.getParameter("username"); String password = request.getParameter("password"); Connection conn = null; PreparedStatement stmt = null; try { conn = DBUtil.getConnection(); stmt = conn.prepareStatement("update user set username=?, password=? where id=?"); stmt.setString(1, username); stmt.setString(2, password); stmt.setInt(3, Integer.parseInt(id)); stmt.executeUpdate(); response.sendRedirect(request.getContextPath() + "/index.jsp"); } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.close(stmt, conn); } } private void queryUser(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn = null; PreparedStatement stmt = null; ResultSet rs = null; try { conn = DBUtil.getConnection(); stmt = conn.prepareStatement("select * from user"); rs = stmt.executeQuery(); request.setAttribute("users", rs); request.getRequestDispatcher("/user.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); } finally { DBUtil.close(rs, stmt, conn); } } } ``` 在上面的代码中,实现了一个UserServlet,其中包含了addUser、deleteUser、updateUser和queryUser四个方法,分别对应MySQL数据库的增、删、改、查操作。在每个方法中,首先获取请求参数,然后使用Java中的JDBC技术连接MySQL数据库,最后执行相应的SQL语句。如果操作成功,则跳转到相应的页面,否则输出错误信息。 4.使用JSP页面显示数据 在JSP页面中,可以通过EL表达式和JSTL标签来显示MySQL数据库中的数据。以下是一个示例代码: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <html> <head> <title>用户列表</title> </head> <body> <table border="1"> <tr> <th>ID</th> <th>用户名</th> <th>密码</th> </tr> <c:forEach var="user" items="${users}"> <tr> <td>${user.id}</td> <td>${user.username}</td> <td>${user.password}</td> </tr> </c:forEach> </table> </body> </html> ``` 在上面的代码中,使用了JSTL标签来遍历MySQL数据库中的数据,并使用EL表达式来显示数据。如果数据为空,则不会显示任何内容。 以上就是使用MySQL JDBC和ServletJSP技术实现MySQL数据库的增删改查操作的示例。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值