JSP学生信息管理系统
作者:岑泉鄅 发布时间:2024-03-20 22:28:27
标签:JSP,管理系统,信息管理
本文实例为大家分享了JSP学生信息管理系统源码,JSP+Servlet+Javabean+JDBC+MySQL,供大家参考,具体内容如下
1.service层,进行数据库操作
package com.service;
/**
* 负责学生信息的所有数据库操作,增删改查
*/
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.model.stuInfo;
public class stuInfoService {
private Connection conn;
private PreparedStatement pstmt;//执行sql语句
public stuInfoService() {
conn = new com.conn.conn().getCon();
}
public boolean addStu(stuInfo stu) {//插入学生数据
try {
pstmt = conn.prepareStatement("insert into studentinfo"
+ "(Nickname,truename,sex,birthday,major,course,interest,remark) "
+ "values(?,?,?,?,?,?,?,?)");
pstmt.setString(1, stu.getNickname());
pstmt.setString(2, stu.getTruename());
pstmt.setByte(3, stu.getSex());
pstmt.setString(4, stu.getbirthday());
pstmt.setString(5, stu.getmajor());
pstmt.setString(6, stu.getcourses());
pstmt.setString(7, stu.getinterests());
pstmt.setString(8, stu.getremark());
pstmt.executeUpdate();
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
//查询所哟学生信息
public List<stuInfo> queryAllStu() {//查询学生数据
List<stuInfo> stus = new ArrayList<stuInfo>();//每一个学生的信息作为list集合的每一个元素存储在list集合中
try {
pstmt = conn.prepareStatement("select * from studentinfo");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
stuInfo stu = new stuInfo();
stu.setId(rs.getInt(1));
stu.setNickname(rs.getString(2));
stu.setTruename(rs.getString(3));
stu.setSex(rs.getByte(4));
if (rs.getDate(5) != null)
stu.setbirthday(rs.getDate(5).toString());
stu.setmajor(rs.getString(6));
if (rs.getString(7) != null)
stu.setcourse(rs.getString(7).split("&"));
if (rs.getString(8) != null)
stu.setinterest(rs.getString(8).split("&"));
stu.setremark(rs.getString(9));
stus.add(stu);
}
return stus;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
//查询单个学生信息
public stuInfo queryStubyID(int id) {
// List stus = new ArrayList();
try {
pstmt = conn
.prepareStatement("select * from studentinfo where id=?");
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();
if (rs.next()) {
stuInfo stu = new stuInfo();
stu.setId(rs.getInt(1));
stu.setNickname(rs.getString(2));
stu.setTruename(rs.getString(3));
stu.setSex(rs.getByte(4));
if (rs.getDate(5) != null)
stu.setbirthday(rs.getDate(5).toString());
stu.setmajor(rs.getString(6));
if (rs.getString(7) != null)
stu.setcourse(rs.getString(7).split("&"));
if (rs.getString(8) != null)
stu.setinterest(rs.getString(8).split("&"));
stu.setremark(rs.getString(9));
// stus.add(stu);
return stu;
}
return null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
//更新学生信息
public boolean updateStu(stuInfo stu) {
try {
pstmt = conn
.prepareStatement("update studentinfo set Nickname=? , truename=? , sex=? ,birthday=? ,"
+ " major=? ,course=? , interest=?, remark=? where id=?");
pstmt.setString(1, stu.getNickname());
pstmt.setString(2, stu.getTruename());
pstmt.setByte(3, stu.getSex());
pstmt.setString(4, stu.getbirthday());
pstmt.setString(5, stu.getmajor());
pstmt.setString(6, stu.getcourses());
pstmt.setString(7, stu.getinterests());
pstmt.setString(8, stu.getremark());
pstmt.setInt(9, stu.getId());
pstmt.executeUpdate();
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
//删除学生信息
public Boolean deleteStu(int id) {
try {
pstmt = conn.prepareStatement("delete from studentinfo where id=?");
pstmt.setInt(1, id);
pstmt.executeUpdate();
return true;
} catch (Exception e) {
e.getStackTrace();
return false;
}
}
}
2.InputStuInfoServlet,添加学生信息的Servlet
package com.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.model.stuInfo;
import com.service.stuInfoService;
public class inputStuInfoServlet extends HttpServlet {
/**
* Constructor of the object.
*/
public inputStuInfoServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");//get到表单所有的控件的值
String nickname=request.getParameter("nickname");
String truename=request.getParameter("truename");
byte sex=Byte.parseByte(request.getParameter("sex"));
String birthday=request.getParameter("birthday");
String major=request.getParameter("major");
System.out.println(major);
//String course=request.getParameter("course");
String courses[]=request.getParameterValues("course");
String interests[]=request.getParameterValues("interest");
String remark=request.getParameter("remark");
//放到Javabean中暂时保存
stuInfo stu=new stuInfo();
stu.setNickname(nickname);
stu.setTruename(truename);
stu.setbirthday(birthday);
if(birthday.equals(""))
stu.setbirthday(null);
if(courses!=null)
stu.setcourse(courses);
if(interests!=null)
stu.setinterest(interests);
stu.setremark(remark);
stu.setmajor(major);
stu.setSex(sex);
if(new stuInfoService().addStu(stu))//插入学生数据的方法
response.sendRedirect("../inputStuInfo_success.jsp");
else
response.sendRedirect("../inputStuInfo.jsp");//插入数据库失败则返回初始输入页面
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
3.stuInfo,保存学生信息的Javabean
package com.model;
//Javabean相当于是一个中间件,用于类与类之间,各层之间的中转数据的一个中转站
public class stuInfo {
private int id;
private String nickname;
private String truename;
private byte sex;
private String birthday;
private String major;
private String[] course = { "" };
private String courses = "";
private String[] interest = { "" };
private String interests = "";
private String remark;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getTruename() {
return truename;
}
public void setTruename(String truename) {
this.truename = truename;
}
public byte getSex() {
return sex;
}
public void setSex(byte sex) {
this.sex = sex;
}
public String getbirthday() {
return birthday;
}
public void setbirthday(String birthday) {
this.birthday = birthday;
}
public String getmajor() {
return major;
}
public void setmajor(String major) {
this.major = major;
}
public String[] getcourse() {
return course;
}
public void setcourse(String[] course) {
this.course = course;
}
public String getcourses() {
if(course!=null)
{courses="";
for(int i=0;i<course.length;i++)
courses+=course[i]+"&";
}
courses=courses.substring(0,courses.length()-1);
return courses;
}
public void setcourses(String courses) {
this.courses = courses;
}
public String[] getinterest() {
return interest;
}
public void setinterest(String[] interest) {
this.interest = interest;
}
public String getinterests() {
if(interest!=null)
{interests="";
for(int i=0;i<interest.length;i++)
interests+=interest[i]+"&";
}
interests=interests.substring(0,interests.length()-1);
return interests;
}
public void setinterests(String interests) {
this.interests = interests;
}
public String getremark() {
return remark;
}
public void setremark(String remark) {
this.remark = remark;
}
}
4.DB connect 类
package com.conn;
import java.sql.Connection;
import java.sql.DriverManager;
public class conn {
public Connection getCon() {
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost/Stu_info_System?useUnicode=true&characterEncoding=utf-8";
String user = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println(conn.getMetaData().getURL());
return conn;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}


猜你喜欢
- 首先请把手放胸前成沉思状:我上了生活,还是被生活上了自己?没想出答案把,恩,可以读下文了。从语义角度讲,同一事物的不同表述可以反映人的主观视
- Numpy、Pytorch中的broadcasting写在前面自己一直都不清楚numpy、pytorch里面不同维数的向量之间的elemen
- 目标在本节中,将学习根据立体图像创建深度图基础在上一节中,看到了对极约束和其他相关术语等基本概念。如果有两个场景相同的图像,则可以通过直观的
- 1、判断请求头来进行反爬这是很早期的网站进行的反爬方式User-Agent 用户代理referer 请求来自哪里cookie 也可以用来做访
- Python lxml安装失败针对windows系统LXML安装失败而且pip升级也失败解决方案原因可能是pip没有安装到python我们需
- 引言书接上回 Gradio机器学习模型快速部署工具【quickstart】翻译,讲到多输入输出,其实很简单,就是把多个组件包装到列表,inp
- 本文实例为大家分享了bootstrap显示隐藏的具体代码,供大家参考,具体内容如下<html><head><m
- 使用mybatis 从数据库中查询出date 类型字段,在java 类型中只看到了日期,没有看到时分秒,从数据库中是可以看到时分秒的。后来发
- 本文实例讲述了Python实现查找二叉搜索树第k大的节点功能。分享给大家供大家参考,具体如下:题目描述给定一个二叉搜索树,找出其中第k大的节
- 一、特效预览处理前处理后细节放大后二、程序原理将图片所在的 256 的灰度映射到相应的字符上面也就是 RGB 值转成相应的字符然后再将字符其
- replace() 方法用于将字符串用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 需要注意的是:如果用正则表达式替换时, r
- 默认情况下,Python DB API会返回不带字段的结果,这意味着你得到的是一个列表,而不是一个字典。花费一点性能代价之后,你可以返回一个
- 一般情况下,在函数中可以使用一个装饰器,但是有时也会有两个或两个以上的装饰器。多个装饰器装饰的顺序是从里到外(就近原则),而调用的顺序是从外
- 技巧之一:提高使用Request集合的效率 访问一个ASP集合来提取一个值是费时的、占用计算资源的过程。因为这个操作包含了一系列对相关集合的
- 基于 Snapchat 的增强现实胡子挂件融合第一个项目中,我们将在检测到的脸上覆盖了一个小胡子。我们可以使用从摄像头捕获的连续视频帧,也可
- 实例如下所示:# -*- coding: utf-8 -*-"""使用通配符,获取所有文件,或进行操作。&qu
- 楔子在 TensorFlow 中,可以给一个 tensor 增加一个维度、删除一个维度,那么在 Numpy 中该怎么呢?删除维度、增加维度先
- function getTableDataByXML(inTable, inWindow) { var
- 关于Python数据分析中pandas模块在输出的时候,每行的中间会有省略号出现,和行与行中间的省略号....问题,其他的站点(百度)中的大
- 背景关于 Go 语言的 Map,有两个需要注意的特性:Map 是并发读写不安全的,这是出于性能的考虑;Map 并发读写导致的错误,无法使用