Servlet+JDBC
- 创建数据库表
create table t_student(
stu_id int primary key auto_increment,
stu_name varchar(20),
stu_pass varchar(20),
stu_age int,
stu_address varchar(30)
);
- 创建javaweb项目StudentManger,[修改Content Root为student],修改工程访问名称
- 导入第三方依赖【druid-1.1.10.jar mysql-connector-java-5.1.38-bin.jar】
- 在src下创建数据库连接配置文件【xxxxxxxx.properties】
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
initialSize=100
maxActive=300
maxWait=60000
- 创建javabean
package com.wangxing.student.bean;
/**
* 保存学生信息的javabean
* @author Administrator
*
*/
public class StudentBean {
private int stuid;
private String stuname;
private String stupass;
private int stuage;
private String stuaddress;
public int getStuid() {
return stuid;
}
public void setStuid(int stuid) {
this.stuid = stuid;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public String getStupass() {
return stupass;
}
public void setStupass(String stupass) {
this.stupass = stupass;
}
public int getStuage() {
return stuage;
}
public void setStuage(int stuage) {
this.stuage = stuage;
}
public String getStuaddress() {
return stuaddress;
}
public void setStuaddress(String stuaddress) {
this.stuaddress = stuaddress;
}
}
- 创建数据访问接口以及实现类
package com.wangxing.student.dao.impl;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.sql.DataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.wangxing.student.bean.StudentBean;
import com.wangxing.student.dao.StudentDao;
public class StudentDaoImpl implements StudentDao{
private static StudentDaoImpl studentDao=null;
// 定义保存druid数据源对象
private DataSource dataSource = null;
private StudentDaoImpl() {
if(dataSource==null){
try {
Properties pro=new Properties();
InputStream inStream=this.getClass().getResourceAsStream("/mysqldata.properties");
pro.load(inStream);
dataSource=DruidDataSourceFactory.createDataSource(pro);
}catch(Exception e) {
e.printStackTrace();
}
}
}
public static StudentDaoImpl getStudentDaoImpl(){
if(studentDao==null){
studentDao=new StudentDaoImpl();
}
return studentDao;
}
@Override
public void insertStudent(StudentBean student)throws Exception{
Connection conn = dataSource.getConnection();
String insert = "insert into t_student values(null,?,?,?,?);";
PreparedStatement statement = conn.prepareStatement(insert);
statement.setString(1, student.getStuname());
statement.setString(2, student.getStupass());
statement.setInt(3, student.getStuage());
statement.setString(4, student.getStuaddress());
int temp = statement.executeUpdate();
statement.close();
conn.close();
}
@Override
public void updateStudent(StudentBean student)throws Exception{
Connection conn = dataSource.getConnection();
String update = "update t_student set stu_name=?,stu_pass=?,stu_age=?,stu_address=? where stu_id=?;";
PreparedStatement statement = conn.prepareStatement(update);
statement.setString(1, student.getStuname());
statement.setString(2, student.getStupass());
statement.setInt(3, student.getStuage());
statement.setString(4, student.getStuaddress());
statement.setInt(5, student.getStuid());
int temp = statement.executeUpdate();
statement.close();
conn.close();
}
@Override
public void deleteStudent(int stuid)throws Exception {
Connection conn = dataSource.getConnection();
String delete = "delete from t_student where stu_id=?;";
PreparedStatement statement = conn.prepareStatement(delete);
statement.setInt(1, stuid);
int temp = statement.executeUpdate();
statement.close();
conn.close();
}
@Override
public StudentBean selectStudentById(int stuid)throws Exception {
StudentBean student=null;
Connection conn = dataSource.getConnection();
String select = "select * from t_student where stu_id=?;";
PreparedStatement statement = conn.prepareStatement(select);
statement.setInt(1, stuid);
ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
int id = resultSet.getInt("stu_id");
String name = resultSet.getString("stu_name");
String pass = resultSet.getString("stu_pass");
int age = resultSet.getInt("stu_age");
String address = resultSet.getString("stu_address");
student= new StudentBean();
student.setStuid(id);
student.setStuname(name);
student.setStupass(pass);
student.setStuage(age);
student.setStuaddress(address);
}
resultSet.close();
statement.close();
conn.close();
return student;
}
@Override
public List<StudentBean> selectStudent()throws Exception {
List<StudentBean> studenlist=new ArrayList<StudentBean>();
Connection conn = dataSource.getConnection();
String select = "select * from t_student;";
PreparedStatement statement = conn.prepareStatement(select);
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()) {
int id = resultSet.getInt("stu_id");
String name = resultSet.getString("stu_name");
String pass = resultSet.getString("stu_pass");
int age = resultSet.getInt("stu_age");
String address = resultSet.getString("stu_address");
StudentBean student= new StudentBean();
student.setStuid(id);
student.setStuname(name);
student.setStupass(pass);
student.setStuage(age);
student.setStuaddress(address);
studenlist.add(student);
}
resultSet.close();
statement.close();
conn.close();
return studenlist;
}
}
- 创建业务访问接口以及实现类
package com.wangxing.student.service.impl;
import java.util.List;
import com.wangxing.student.bean.StudentBean;
import com.wangxing.student.dao.StudentDao;
import com.wangxing.student.service.StudentService;
public class StudentServiceImpl implements StudentService{
private StudentDao stuentDao=null;
public StudentServiceImpl(StudentDao stuentDao){
this.stuentDao=stuentDao;
}
@Override
public void insertStudent(StudentBean student) throws Exception {
stuentDao.insertStudent(student);
}
@Override
public void updateStudent(StudentBean student) throws Exception {
stuentDao.updateStudent(student);
}
@Override
public void deleteStudent(int stuid) throws Exception {
stuentDao.deleteStudent(stuid);
}
@Override
public StudentBean selectStudentById(int stuid) throws Exception {
return stuentDao.selectStudentById(stuid);
}
@Override
public List<StudentBean> selectStudent() throws Exception {
return stuentDao.selectStudent();
}
}
- 创建具体业务处理的Servlet
package com.wangxing.student.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.wangxing.student.bean.StudentBean;
import com.wangxing.student.dao.impl.StudentDaoImpl;
import com.wangxing.student.service.StudentService;
import com.wangxing.student.service.impl.StudentServiceImpl;
/**
* 处理添加操作的servlet
* @author Administrator
*
*/
public class StudentInsertServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String stuname=req.getParameter("username");
String stupass=req.getParameter("password");
String stuage=req.getParameter("stuage");
String stuaddress=req.getParameter("stuaddress");
StudentBean student=new StudentBean();
student.setStuname(stuname);
student.setStupass(stupass);
student.setStuage(Integer.parseInt(stuage));
student.setStuaddress(stuaddress);
StudentService studentService=new StudentServiceImpl(StudentDaoImpl.getStudentDaoImpl());
try {
studentService.insertStudent(student);
resp.sendRedirect("studentselectlist");
} catch (Exception e) {
e.printStackTrace();
resp.sendRedirect("studentselectlist");
}
}
}
package com.wangxing.student.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.wangxing.student.bean.StudentBean;
import com.wangxing.student.dao.impl.StudentDaoImpl;
import com.wangxing.student.service.StudentService;
import com.wangxing.student.service.impl.StudentServiceImpl;
/**
* 处理修改操作的servlet
* @author Administrator
*
*/
public class StudentUpdateServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String stuid=req.getParameter("stuid");
String stuname=req.getParameter("username");
String stupass=req.getParameter("password");
String stuage=req.getParameter("stuage");
String stuaddress=req.getParameter("stuaddress");
StudentBean student=new StudentBean();
student.setStuid(Integer.parseInt(stuid));
student.setStuname(stuname);
student.setStupass(stupass);
student.setStuage(Integer.parseInt(stuage));
student.setStuaddress(stuaddress);
StudentService studentService=new StudentServiceImpl(StudentDaoImpl.getStudentDaoImpl());
try {
studentService.updateStudent(student);
resp.sendRedirect("studentselectlist");
} catch (Exception e) {
e.printStackTrace();
resp.sendRedirect("studentselectlist");
}
}
}
package com.wangxing.student.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.wangxing.student.bean.StudentBean;
import com.wangxing.student.dao.impl.StudentDaoImpl;
import com.wangxing.student.service.StudentService;
import com.wangxing.student.service.impl.StudentServiceImpl;
/**
* 处理删除操作的servlet
* @author Administrator
*
*/
public class StudentDeleteServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String stuid=req.getParameter("stuid");
StudentService studentService=new StudentServiceImpl(StudentDaoImpl.getStudentDaoImpl());
try {
studentService.deleteStudent(Integer.parseInt(stuid));
resp.sendRedirect("studentselectlist");
} catch (Exception e) {
e.printStackTrace();
resp.sendRedirect("studentselectlist");
}
}
}
package com.wangxing.student.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.wangxing.student.bean.StudentBean;
import com.wangxing.student.dao.impl.StudentDaoImpl;
import com.wangxing.student.service.StudentService;
import com.wangxing.student.service.impl.StudentServiceImpl;
/**
* 处理根据id查询操作的servlet
* @author Administrator
*
*/
public class StudentSelectStudentServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String stuid=req.getParameter("stuid");
StudentService studentService=new StudentServiceImpl(StudentDaoImpl.getStudentDaoImpl());
try {
StudentBean student=studentService.selectStudentById(Integer.parseInt(stuid));
req.setAttribute("student", student);
req.getRequestDispatcher("update").forward(req, resp);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.wangxing.student.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.wangxing.student.bean.StudentBean;
import com.wangxing.student.dao.impl.StudentDaoImpl;
import com.wangxing.student.service.StudentService;
import com.wangxing.student.service.impl.StudentServiceImpl;
/**
* 处理查询所有操作的servlet
* @author Administrator
*
*/
public class StudentSelectListServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
StudentService studentService=new StudentServiceImpl(StudentDaoImpl.getStudentDaoImpl());
try {
List<StudentBean> studentlist=studentService.selectStudent();
req.setAttribute("studentlist", studentlist);
req.getRequestDispatcher("/main").forward(req, resp);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- 创建页面Servlet
package com.wangxing.student.ui;
import java.io.IOException;
import java.io.PrintWriter;
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.wangxing.student.bean.StudentBean;
/**
* 主页面
* @author Administrator
*
*/
public class MainServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out=resp.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("<title>学生信息</title>");
out.println("</head>");
out.println("<body>");
out.println("<center>");
out.println("<table border=\"1px\" width=\"500px\">");
out.println("<tr align=\"left\">");
out.println("<td colspan=\"7\"><h1><a href=\"add\">新建</a></h1></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td colspan=\"7\"><h1>学生信息</h1></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>学生编号</td>");
out.println("<td>学生姓名</td>");
out.println("<td>登陆密码</td>");
out.println("<td>学生年龄</td>");
out.println("<td>学生地址</td>");
out.println("<td colspan=\"2\">相关操作</td>");
out.println("</tr>");
List<StudentBean> studentlist=(List<StudentBean>)req.getAttribute("studentlist");
if(studentlist.size()==0){
out.println("<tr align=\"center\">");
out.println("<td colspan=\"7\">没有记录</td>");
out.println("</tr>");
}else{
for(StudentBean student:studentlist){
out.println("<tr align=\"center\">");
out.println("<td>"+student.getStuid()+"</td>");
out.println("<td>"+student.getStuname()+"</td>");
out.println("<td>"+student.getStupass()+"</td>");
out.println("<td>"+student.getStuage()+"</td>");
out.println("<td>"+student.getStuaddress()+"</td>");
out.println("<td><a href=\"studentselectstudent?stuid="+student.getStuid()+"\">修改</a></td>");
out.println("<td><a href=\"studentdelete?stuid="+student.getStuid()+"\">删除</a></td>");
out.println("</tr>");
}
}
out.println("</table>");
out.println("</center>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
package com.wangxing.student.ui;
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 javax.servlet.http.HttpSession;
/**
* 添加页面
* @author Administrator
*
*/
public class AddServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out=resp.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("<title>新建用户信息</title>");
out.println("</head>");
out.println("<body>");
out.println("<center>");
out.println("<form action=\"studentinsert\" method=\"post\">");
out.println("<table border=\"1px\">");
out.println("<tr align=\"center\">");
out.println("<td colspan=\"2\"><h1>新建用户信息</h1></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>学生姓名:</td>");
out.println("<td><input type=\"text\" name=\"username\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>登陆密码:</td>");
out.println("<td><input type=\"password\" name=\"password\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>学生年龄:</td>");
out.println("<td><input type=\"text\" name=\"stuage\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>学生地址:</td>");
out.println("<td><input type=\"text\" name=\"stuaddress\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td colspan=\"2\"><input type=\"submit\" value=\"新建\"/></td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
out.println("</center>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
package com.wangxing.student.ui;
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 com.wangxing.student.bean.StudentBean;
/**
* 修改页面
* @author Administrator
*
*/
public class UpdateServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
StudentBean student=(StudentBean)req.getAttribute("student");
PrintWriter out=resp.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset=\"UTF-8\">");
out.println("<title>修改用户信息</title>");
out.println("</head>");
out.println("<body>");
out.println("<center>");
out.println("<form action=\"studentupdate\" method=\"post\">");
out.println("<input type=\"hidden\" name=\"stuid\" value=\""+student.getStuid()+"\"/>");
out.println("<table border=\"1px\">");
out.println("<tr align=\"center\">");
out.println("<td colspan=\"2\"><h1>修改用户信息</h1></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>学生姓名:</td>");
out.println("<td><input type=\"text\" name=\"username\" value=\""+student.getStuname()+"\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>登陆密码:</td>");
out.println("<td><input type=\"password\" name=\"password\" value=\""+student.getStupass()+"\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>学生年龄:</td>");
out.println("<td><input type=\"text\" name=\"stuage\" value=\""+student.getStuage()+"\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td>学生地址:</td>");
out.println("<td><input type=\"text\" name=\"stuaddress\" value=\""+student.getStuaddress()+"\"/></td>");
out.println("</tr>");
out.println("<tr align=\"center\">");
out.println("<td colspan=\"2\"><input type=\"submit\" value=\"修改\"/></td>");
out.println("</tr>");
out.println("</table>");
out.println("</form>");
out.println("</center>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
- 创建字符过滤器
- 配置web.xml
- 测试http://127.0.0.1:8080/student/studentselectlist