## **学生信息管理系统、具有模糊查询功能,使用了MVC设计模式,实现学生信息管理(增删改查)使用工具MYSQL、C3P0、DBUtils**

先看效果

1、查询所有学生列表

在这里插入图片描述

2、添加

在这里插入图片描述

3、更新(修改)

在这里插入图片描述

4、删除不演示了哦

5、按条件查询(女)

在这里插入图片描述

6、安姓名性别查询

在这里插入图片描述

原码下载:https://download.csdn.net/download/qq_40529129/11203735

项目目录

这里插入图片描述

页面目录

在这里插入图片描述

bean

import java.util.Date;

public class Student {

private int sid;
private String sname;
private String gender;
private String phone;
private String hobby;
private String info;
private Date birthday;

public Student(String sname, String gender, String phone, String hobby, String info, Date birthday) {
	super();
	this.sname = sname;
	this.gender = gender;
	this.phone = phone;
	this.hobby = hobby;
	this.info = info;
	this.birthday = birthday;
}

public Student(int sid,String sname, String gender, String phone, String hobby, String info, Date birthday) {
	super();
	this.sid= sid;
	this.sname = sname;
	this.gender = gender;
	this.phone = phone;
	this.hobby = hobby;
	this.info = info;
	this.birthday = birthday;
}



public Student() {
	super();
	// TODO Auto-generated constructor stub
}




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 String getGender() {
	return gender;
}
public void setGender(String gender) {
	this.gender = gender;
}
public String getPhone() {
	return phone;
}
public void setPhone(String phone) {
	this.phone = phone;
}
public String getHobby() {
	return hobby;
}
public void setHobby(String hobby) {
	this.hobby = hobby;
}
public String getInfo() {
	return info;
}
public void setInfo(String info) {
	this.info = info;
}
public Date getBirthday() {
	return birthday;
}
public void setBirthday(Date birthday) {
	this.birthday = birthday;
}

@Override
public String toString() {
	return "Student [sid=" + sid + ", sname=" + sname + ", gender=" + gender + ", phone=" + phone + ", hobby="
			+ hobby + ", info=" + info + ", birthday=" + birthday + "]";
}

}

``

package com.stu.dao; 定义添加、修改、查询&模糊查询、删除的接口

import java.sql.SQLException;
import java.util.List;

import com.stu.bean.Student;

public interface Dao {
public List findAll() throws Exception;
public void add(Student student) throws Exception;
public void delete(int sid)throws Exception;
public Student edit(int sid)throws Exception;
public void updeat(Student student)throws Exception;
public List search(String sname,String sgender)throws Exception;
}

package com.stu.impldao; 实现dao接口

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.stu.bean.Student;
import com.stu.dao.Dao;
import com.stu.util.StringUtil;
import com.stu.util.Util;

public class ImplDao implements Dao {

@Override
public List<Student> findAll() throws SQLException {
	
	//ComboPooledDataSource dataSource = new ComboPooledDataSource();
	//QueryRunner runner = new QueryRunner(dataSource);
	QueryRunner runner = new QueryRunner(Util.getDataSource());
	String sql = "select * from student2";
	List<Student> list = runner.query(sql, new BeanListHandler<Student>(Student.class));
	return list;
}

@Override
public void add(Student student) throws SQLException {
	// TODO Auto-generated method stub
	QueryRunner runner = new QueryRunner(Util.getDataSource());
	String sql = "insert into student2 values(null,?,?,?,?,?,?)";
	runner.update(sql,
			student.getSname(),
			student.getGender(),
			student.getPhone(),
			student.getBirthday(),
			student.getHobby(),
			student.getInfo()
			);
	
	
	
}

@Override
public void delete(int sid) throws Exception {
	// TODO Auto-generated method stub
	QueryRunner runner = new QueryRunner(Util.getDataSource());
	runner.update("delete from student2 where sid=?",sid);
}

@Override
public Student edit(int sid) throws Exception {
	QueryRunner runner = new QueryRunner(Util.getDataSource());
	String sql = "select * from student2 where sid=?";
	 Student student = runner.query(sql, new BeanHandler<Student>(Student.class),sid);
	return student;
}

@Override
public void updeat(Student student) throws Exception {
	QueryRunner runner = new QueryRunner(Util.getDataSource());
	runner.update("update student2 set sname=? , gender=? , phone=? , birthday=? , hobby=? , info=? where sid = ?", 
			student.getSname(),
			student.getGender(),
			student.getPhone(),
			student.getBirthday(),
			student.getHobby(),
			student.getInfo(),
			student.getSid());
}


/**
 * 模糊查询
 */
@Override
public List<Student> search(String sname, String sgender) throws Exception {
	QueryRunner runner = new QueryRunner(Util.getDataSource());
	String sql = "select * from student2 where 1=1 ";
	List<String> list = new ArrayList<String> ();
			
	if(!StringUtil.isEmpty(sname)){
		sql = sql + "  and sname like ?";
		list.add("%"+sname+"%");
	}
	
	if(!StringUtil.isEmpty(sgender)){
		sql = sql + " and gender = ?";
		list.add(sgender);
	}
	
	
	return runner.query(sql , new BeanListHandler<Student>(Student.class) ,list.toArray() );
	
}

}

package com.stu.service; 创建service接口,定义添加、修改、查询&模糊查询、删除的接口

import java.util.List;

import com.stu.bean.Student;

public interface StuDaoService {
public List findAll()throws Exception;
public void add(Student student) throws Exception;
public void delete(int sid)throws Exception;
public Student edit(int sid)throws Exception;
public void updeat(Student student)throws Exception;
public List search(String sname,String sgender)throws Exception;
}

package com.stu.ImplService;实现studaosryvice接口

import java.util.List;

import com.stu.bean.Student;
import com.stu.dao.Dao;
import com.stu.impldao.ImplDao;
import com.stu.service.StuDaoService;

public class ImplService implements StuDaoService {

@Override
public List<Student> findAll() throws Exception {
	// TODO Auto-generated method stub
	Dao dao = new ImplDao();
	return dao.findAll();
}

@Override
public void add(Student student) throws Exception {
	// TODO Auto-generated method stub
	Dao dao = new ImplDao();
	dao.add(student);
}

@Override
public void delete(int sid) throws Exception {
	// TODO Auto-generated method stub
	Dao dao = new ImplDao();
	dao.delete(sid);
}

@Override
public Student edit(int sid) throws Exception {
	// TODO Auto-generated method stub
	Dao dao = new ImplDao();
	Student student = dao.edit(sid);
	return student;
}

@Override
public void updeat(Student student) throws Exception {
	Dao dao = new ImplDao();
	dao.updeat(student);
}

@Override
public List<Student> search(String sname, String sgender) throws Exception {
	Dao dao = new ImplDao();
	return dao.search(sname, sgender);
}

}

servlet 实现页面数据互通

package com.stu.servlet;添加的servlet

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
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.stu.ImplService.ImplService;
import com.stu.bean.Student;
import com.stu.service.StuDaoService;

/**

  • Servlet implementation class AddServlet
    */
    public class AddServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

     request.setCharacterEncoding("UTF-8");
     response.setContentType("text/html;charset=UTF-8");
     
     
     try {
     	
     	String sname = request.getParameter("sname"); 
     	String gender = request.getParameter("gender");
     	String phone = request.getParameter("phone");
     	String birthday = request.getParameter("birthday"); 
     	String info = request.getParameter("info");
     	String [] h  = request.getParameterValues("hobby");
     	String hobby = Arrays.toString(h);
     	hobby = hobby.substring(1, hobby.length()-1);
     	Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
     	Student student = new Student(sname, gender, phone, hobby, info, date);
     	StuDaoService service = new ImplService();
     	service.add(student);
     	request.getRequestDispatcher("FindAllServlvlet").forward(request,response );
    
     } catch (Exception e) {
     	// TODO Auto-generated catch block
     	e.printStackTrace();
     }
    

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }

}

package com.stu.servlet; 删除

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.stu.ImplService.ImplService;
import com.stu.service.StuDaoService;

/**

  • Servlet implementation class DeleteServlet
    */
    public class DeleteServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
    int sid = Integer.parseInt(request.getParameter(“sid”));
    StuDaoService service = new ImplService();
    service.delete(sid);
    request.getRequestDispatcher(“FindAllServlvlet”).forward(request,response );

     } catch (Exception e) {
     	// TODO: handle exception
     }
    

    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
    }

}

package com.stu.servlet; 修改

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.stu.ImplService.ImplService;
import com.stu.bean.Student;
import com.stu.service.StuDaoService;

/**

  • 处理单个学生的更新, 查询一个学生的信息,然后跳转到更新页面
  • @author xiaomi

*/
public class EditServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	try {
		int sid = Integer.parseInt(request.getParameter("sid"));
		System.out.println(sid);
		StuDaoService service = new ImplService();
		Student stu = service.edit(sid);
		
		
		request.setAttribute("stu", stu);
		request.getRequestDispatcher("edit.jsp").forward(request, response);
		
	} catch (SQLException e) {
		e.printStackTrace();
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	// TODO Auto-generated method stub
	doGet(request, response);
}

}

package com.stu.servlet; 全表查询

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.stu.ImplService.ImplService;
import com.stu.bean.Student;
import com.stu.service.StuDaoService;
public class FindAllServlvlet extends HttpServlet {

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=UTF-8");
	try {
		
		//查询出所有学生
		StuDaoService service = new ImplService();
		List<Student> list = service.findAll();
		//把数据存到作用玉
		request.setAttribute("list", list);
		//跳转到页面
		request.getRequestDispatcher("list.jsp").forward(request,response );
		
		
	} catch (Exception e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doGet(request, response);
}

}

package com.stu.servlet; 模糊查询

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.stu.ImplService.ImplService;
import com.stu.bean.Student;
import com.stu.service.StuDaoService;

/**

  • Servlet implementation class SearchServlet
    */
    public class SearchServlet extends HttpServlet {
    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");
     	
     	StuDaoService service = new ImplService();
     	List<Student> list = service.search(sname, sgender);
     	
    
     	
     	request.setAttribute("list", list);
     	
     	//3. 跳转界面。列表界面
     	request.getRequestDispatcher("list.jsp").forward(request, response);
     } catch (SQLException e) {
     	e.printStackTrace();
     } catch (Exception e) {
     	// TODO Auto-generated catch block
     	e.printStackTrace();
     }
    

    }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      doGet(request, response);
      }

}

package com.stu.servlet;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
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.stu.ImplService.ImplService;
import com.stu.bean.Student;
import com.stu.service.StuDaoService;

/**

  • Servlet implementation class UpdateServlet
    */
    public class UpdateServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

     request.setCharacterEncoding("UTF-8");
     
     	try {
     		int sid = Integer.parseInt(request.getParameter("sid"));
     		String sname = request.getParameter("sname"); //sname:zhangsan
     		String gender = request.getParameter("gender");
     		String phone = request.getParameter("phone");
     		String birthday = request.getParameter("birthday"); // 1989-10-18
     		String info = request.getParameter("info");
     		String[] h = request.getParameterValues("hobby");
     		String hobby = Arrays.toString(h);
     		hobby = hobby.substring(1, hobby.length() - 1);
     		Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
     		Student student = new Student(sid, sname, gender, phone, hobby, info, date);
     		
     		StuDaoService service = new ImplService();
     		service.updeat(student);
     		request.getRequestDispatcher("FindAllServlvlet").forward(request, response);
     		
     		
     	} catch (Exception e) {
     		// TODO: handle exception
     	}
    

    }
    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      doGet(request, response);
      }

}

Util 数据库工具类用于关闭数据库非常简单读者自行编写

c3p0.html 用于配置与MYsQL数据库的连接

<?xml version="1.0" encoding="UTF-8"?>
<!-- default-config 默认的配置,  -->
com.mysql.jdbc.Driver jdbc:mysql://localhost/数据库名?useUnicode=true&characterEncoding=UTF-8
<property name="user">用户名t</property>
<property name="password">数据库密码</property>


<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
50 100 50 1000
<!-- intergalactoApp adopts a different approach to configuring statement caching -->
<property name="maxStatements">0</property> 
<property name="maxStatementsPerConnection">5</property>

<!-- he's important, but there's only one of him -->
<user-overrides user="master-of-the-universe"> 
  <property name="acquireIncrement">1</property>
  <property name="initialPoolSize">1</property>
  <property name="minPoolSize">1</property>
  <property name="maxPoolSize">5</property>
  <property name="maxStatementsPerConnection">50</property>
</user-overrides>

WEB模块

add.jsp 添加学生页面

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

Insert title here

添加学生页面

姓名
性别 男 女
电话
生日
爱好 游泳 篮球 足球 看书 写字
</td>
简介

list.jsp 学生列表页面

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

学生列表页面
		<tr >
			<td colspan="8">
				
				按姓名查询:<input type="text" name="sname"/>
				&nbsp;
				按性别查询:<select name="sgender">
							<option value="">--请选择--
							<option value="男">男
							<option value="女">女
						  </select>
				&nbsp;&nbsp;&nbsp;
				<input type="submit" value="查询">
				&nbsp;&nbsp;&nbsp;
				<a href="add.jsp">添加</a>
			</td>
		</tr>
	
	  <tr align="center">
		<td>编号</td>
		<td>姓名</td>
		<td>性别</td>
		<td>电话</td>
		<td>生日</td>
		<td>爱好</td>
		<td>简介</td>
		<td>操作</td>
	  </tr>
	  
		  <c:forEach items="${list }" var="stu">
			  <tr align="center">
				<td>${stu.sid }</td>
				<td>${stu.sname }</td>
				<td>${stu.gender }</td>
				<td>${stu.phone }</td>
				<td>${stu.birthday }</td>
				<td>${stu.hobby }</td>
				<td>${stu.info }</td>
				<td><a href="EditServlet?sid=${stu.sid }">更新</a>   <a href="#" onclick="doDelete(${stu.sid})">删除</a></td>
			  </tr>
		  </c:forEach>
	  </table>
  </form>

<%-- <%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

学生信息
				<tr >
			<td colspan="8">
				
				按姓名查询:<input type="text" name="sname"/>
				&nbsp;
				按性别查询:<select name="sgender">
							<option value="">--请选择--
							<option value="男">男
							<option value="女">女
						  </select>
				&nbsp;&nbsp;&nbsp;
				<input type="submit" value="查询">
				&nbsp;&nbsp;&nbsp;
				<a href="add.jsp">添加</a>
			</td>
		</tr>
	
	<tr align="center">
		<td>编号</td>
		<td>姓名</td>
		<td>性别</td>
		<td>电话</td>
		<td>生日</td>
		<td>爱好</td>
		<td>简介</td>
		<td>操作</td>
	</tr>
	  
	  <c:forEach items="${list }" var="stu">
			 <tr align="center">
				<td>${stu.sid }</td>
				<td>${stu.sname }</td>
				<td>${stu.gender }</td>
				<td>${stu.phone }</td>
				<td>${stu.birthday }</td>
				<td>${stu.hobby }</td>
				<td>${stu.info }</td>
				<td><a href="EditServlet?sid=${stu.sid }">更新</a>   <a href="#" onclick="doDelete(${stu.sid})">删除</a></td>
			</tr>
		</c:forEach>
		</table>
	</form>
--%>

edit.jsp 修改信息页面

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<%@ taglib prefix=“fn” uri=“http://java.sun.com/jsp/jstl/functions” %>

更新学生页面

更新学生页面

姓名
性别
## 标题 简介 ${stu.info }

原码下载:https://download.csdn.net/download/qq_40529129/11203735

  • 1
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值