学生管理系统(html+Css+JDBC+JavaWeb_MVC_Servlet+mysql)

前端页面:连接mysql数据库与login表格中有登陆权限的学生做校验,验证成功进入下一个页面。失败则重新登录。
在这里插入图片描述
管理面板:实现信息的增删改查功能
在这里插入图片描述

三层架构
在这里插入图片描述
mysql创建student表格

CREATE table student(
	sno int PRIMARY key,
	sname VARCHAR(12),
	sage int,
	saddress VARCHAR(20)
);

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/>
		
	</form>
</body>
</html>

AddStudentServlet.java:表示层后台

package org.student.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.student.entity.student;
import org.student.service.StudentService;
public class AddStudentServlet extends HttpServlet {
    public AddStudentServlet() {
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		//获取add.jsp的4个 值
		int no=Integer.parseInt(request.getParameter("sno"));
		String name=request.getParameter("sname");
		int age=Integer.parseInt(request.getParameter("sage"));
		String address=request.getParameter("saddress");
		//把4个值封装成对象
		student stu = new student(no,name,age,address);
		
		StudentService service = new StudentService();
		//调用StudentService的addStudent方法,增加
		boolean res = service.addStudent(stu);
		
		response.setContentType("text/html; charset=UTF-8");//java
		response.setCharacterEncoding("utf-8");//响应的编码
		//===========设置编码在让它响应之前,下面是响应的编码
		PrintWriter printWriter = response.getWriter();
		
		if(res) {
			//返回的是out对象
			printWriter.print("增加成功!");
		}else {
			printWriter.print("增加失败!");
		}
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

student.java封装对象的实体类:

package org.student.entity;

public class student {
	private int no;
	private String name;
	private int age;
	private String address;
	public student() {
	}
	public student(String name, int age, String address) {
		this.name = name;
		this.age = age;
		this.address = address;
	}
	public student(int no, String name, int age, String address) {
		this.no=no;
		this.name = name;
		this.age = age;
		this.address = address;
	}
	public int getNo() {
		return no;
	}

	public void setNo(int no) {
		this.no = no;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
}

studentDao.java:业务逻辑实现

package org.student.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
import org.student.entity.student;

import com.mysql.jdbc.Driver;

//数据访问层:原子性的增删改查

//判断学生是否存在
public class studentDao {
	public boolean isExit(int sno) {
		return queryStudentByNo(sno)==null?true:false;
	}
	
	public boolean addStudent(student stu) {
		Connection conn=null;
		PreparedStatement prepareStatement=null;
		ResultSet rs=null;
		try {
			Class clazz=Class.forName("com.mysql.jdbc.Driver");
			Driver driver=(Driver) clazz.newInstance();
			String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
			Properties info = new Properties();
			info.setProperty("user", "root");
			info.setProperty("password", "xxxxx");
			conn = driver.connect(url, info);
			
			String sql="insert into student values(?,?,?,?)";
			prepareStatement= conn.prepareStatement(sql);
			prepareStatement.setInt(1, stu.getNo());
			prepareStatement.setString(2, stu.getName());
			prepareStatement.setInt(3, stu.getAge());
			prepareStatement.setString(4, stu.getAddress());
			
			int res = prepareStatement.executeUpdate();
			if(res>0) {
				return true;
			}else {
				return false;
			}
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}finally {
			try {
				if(rs!=null) rs.close();
				if(prepareStatement!=null) prepareStatement.close();
				if(conn!=null) conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	public student queryStudentByNo(int sno) {
		int no=-1;
		String name=null;
		int age=-1;
		String address=null;
		Connection conn=null;
		PreparedStatement prepareStatement=null;
		ResultSet rs=null;
		try {
			Class clazz=Class.forName("com.mysql.jdbc.Driver");
			Driver driver=(Driver) clazz.newInstance();
			String url="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8";
			Properties info = new Properties();
			info.setProperty("user", "root");
			info.setProperty("password", "xxxxx");
			conn = driver.connect(url, info);
			String sql="select * from student where sno=?";
			prepareStatement= conn.prepareStatement(sql);
			prepareStatement.setInt(1, sno);
			rs = prepareStatement.executeQuery();
			if(rs.next()) {
				no = rs.getInt("sno");
				name= rs.getString("sname");
				age = rs.getInt("sage");
				address = rs.getString("saddress");
			}
			return new student(no,name,age,address);
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}finally {
			try {
				if(rs!=null) rs.close();
				if(prepareStatement!=null) prepareStatement.close();
				if(conn!=null) conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	public void deleteStudentByNo(int sno) {
	}
}

studentService.java:对studentDao.java进行封装

package org.student.service;

import org.student.dao.studentDao;
import org.student.entity.student;

//业务逻辑层,逻辑性的增删改查(增加:查+增)
public class StudentService {
	
	studentDao stude=new studentDao();
	public boolean addStudent(student stu) {
		if(!stude.isExit(stu.getNo())) {
			stude.addStudent(stu);
			return true;
		}else {
			System.out.println("此人已存在!");
			return false;
		}
	}
}

入口界面:
在这里插入图片描述
插入的数据:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值