先看效果
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);
}
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 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);
}
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse 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”%>
添加学生页面
姓名 | |
性别 | 男 女 |
电话 | |
生日 | |
爱好 | 游泳 篮球 足球 看书 写字 |
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"/>
按性别查询:<select name="sgender">
<option value="">--请选择--
<option value="男">男
<option value="女">女
</select>
<input type="submit" value="查询">
<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"/>
按性别查询:<select name="sgender">
<option value="">--请选择--
<option value="男">男
<option value="女">女
</select>
<input type="submit" value="查询">
<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” %>
更新学生页面
姓名 | |
性别 |