MVC模式
M:Model,即模型,对于JavaBean
V:View,即试图,对应JSP页面
C:Controller,即控制器,对应Servlet
1.以下为MVC实现一个简单的增删改查功能1>显示记录
2>增加一条记录
3>修改一条记录
4>删除一条记录
2.简单的登录界面及jsp对数据库的操作1>登录界面
2>注册界面
程序源代码:
M层:模型层
package MVC;
public class JavaBean {
private int id;
private String name;
private String password;
private String sex;
private int age;
public JavaBean() {
super();
// TODO Auto-generated constructor stub
}
public JavaBean(int id, String name, String password, String sex, int age) {
this.id = id;
https://www.wendangku.net/doc/421795358.html, = name;
this.password = password;
this.sex = sex;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
https://www.wendangku.net/doc/421795358.html, = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
封装数据库连接以及操作JavaBean所用到的方法,
SqlBean.java文件即DAO
package MVC;
//封装数据库连接以及操作JavaBean所用到的方法,即DAO
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
//import java.util.List;
public class SqlBean {
/**
*操作数据库的方法
*/
// 定义数据库驱动程序
String DBDRIVER = "com.mysql.jdbc.Driver" ;
// 定义数据库连接对象,属于java.sql包中的接口
Connection con=null;
//定义PreapredStatement对象,用于操作数据库
PreparedStatement pre=null;
// 查询返回的结果集对象
ResultSet rs=null;
public SqlBean()
{
try {
// 1、加载驱动程序
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
// 2、数据库连接地址
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/zxds tudent","root","");
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* @author help
*
*插入新的一条记录
* @return
*/
public int getInsert(String sql,JavaBean jBean)
{
int count =0;
try {
pre = con.prepareStatement(sql);
pre.setString(1,jBean.getName());
pre.setString(2,jBean.getPassword());
pre.setString(3,jBean.getSex());
pre.setInt(4,jBean.getAge());
count=pre.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
finally
{
try {
//关闭数据库
pre.close();//关闭操作
con.close();//关闭连接
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return count;
}
/**
* @author help
*
*删除一条记录
* @return
*/
public int getDelete(String sql,int id)
{
int count =0;
try {
pre = con.prepareStatement(sql);
pre.setInt(1, id);
count=pre.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
finally
{
try {
pre.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return count;
}
/**
* @author help
*
*根据ID查询某一条记录
* @return
*/
public JavaBean getSearchById(String sql,int id) {
JavaBean jBean = new JavaBean();
try {
pre = con.prepareStatement(sql);
pre.setInt(1, id);
rs=pre.executeQuery();
while(rs.next())
{
jBean.setId(rs.getInt("id"));
jBean.setName(rs.getString("name"));
jBean.setPassword(rs.getString("password"));
jBean.setSex(rs.getString("sex"));
jBean.setAge(rs.getInt("age"));
}
} catch (SQLException e)
{
e.printStackTrace();
}
return jBean;
}
/**
* @author help
*
*更新某一条记录
* @return
*/
public int getUpdate(String sql,JavaBean jBean)
{
int count =0;
try {
pre = con.prepareStatement(sql);
pre.setInt(5,jBean.getId());
pre.setString(1,jBean.getName());
pre.setString(2,jBean.getPassword());
pre.setString(3,jBean.getSex());
pre.setInt(4,jBean.getAge());
count = pre.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
pre.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return count;
}
/**
* @author help
*
*显示所有记录
* @return
*/
public ArrayList
{
ArrayList
try {
pre = con.prepareStatement(sql);
rs =pre.executeQuery();
while(rs.next())
{
JavaBean jBean =new JavaBean();
jBean.setId(rs.getInt("id"));
jBean.setName(rs.getString("name"));
jBean.setPassword(rs.getString("password"));
jBean.setSex(rs.getString("sex"));
jBean.setAge(rs.getInt("age"));
list.add(jBean);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally
{
try {
pre.close();
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
}
V层:试图层
显示记录集的页面 SearchList.jsp
<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%@page import="MVC.SqlBean"%>
<%@page import="MVC.JavaBean"%>
<%@page import="java.util.Iterator;"%>
<%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
插入页面Insert.jsp
<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
学生管理页面
更新页面Update.jsp
<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
学生管理页面
查询页面Search.jsp
<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%@page import="MVC.SqlBean"%>
<%@page import="MVC.JavaBean"%>
<%@page import="java.util.Iterator;"%>
<%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
出错页面Error.jsp
<%@page language="java"import="java.util.*"pageEncoding="UTF-8"%> <%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
对不起!您<%=request.getAttribute("error") %>失败
C层:控制层—Servlet
1.显示记录集的Servlet----SearchById.java
package MVC;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import MVC.JavaBean;
import MVC.SqlBean;
public class SearchById extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doDelete(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取用户ID
String sid = request.getParameter("id");
int id =Integer.parseInt(sid);
String sql ="select * from login where id=?";
SqlBean sBean = new SqlBean();
JavaBean jBean = sBean.getSearchById(sql, id);
//用户ID
request.setAttribute("id",jBean.getId());
//用户姓名
request.setAttribute("name",jBean.getName());
//用户密码
request.setAttribute("password",jBean.getPassword());
//用户性别
String sex="";
String man="";
String woman="";
if(jBean.getSex()!=null)
{
sex=jBean.getSex().trim();
if(sex.equals("男"))
{
man ="checked";
}
else
{
woman ="checked";
}
}
request.setAttribute("man",man);
request.setAttribute("woman",woman);
//用户年龄
request.setAttribute("age",jBean.getAge());
//转发
request.getRequestDispatcher("Update.jsp").forward(request, response);
}
}
2.增加记录的Servlet----Insert.java
package MVC;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import MVC.SqlBean;
import MVC.JavaBean;
public class Inserts extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doDelete(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取前台页面数据
String name =request.getParameter("name");
String password =request.getParameter("password");
String sex =request.getParameter("sex");
String sage = request.getParameter("age");
int age =Integer.parseInt(sage);
//封装到JavaBean对象中去
JavaBean jBean = new JavaBean();
jBean.setName(name);
jBean.setPassword(password);
jBean.setSex(sex);
jBean.setAge(age);
//调用模型层
String sql = "insert into login(name,password,sex,age)
values(?,?,?,?)";
SqlBean sBean = new SqlBean();
int count =sBean.getInsert(sql,jBean);
String url="";
if(count>0)
{
url="SearchList.jsp";
}
else
{
url ="error.jsp";
request.setAttribute("error", "插入");
}
//转发?
request.getRequestDispatcher(url).forward(request, response);
}
}
3.更新记录的Servlet----Updated.java
package MVC;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import MVC.JavaBean;
import MVC.SqlBean;
public class Update extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doDelete(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获得前台表单信息
String sid = request.getParameter("id");
int id =Integer.parseInt(sid);
String name =request.getParameter("name");
String password =request.getParameter("password");
String sex =request.getParameter("sex");
String sage = request.getParameter("age");
int age =Integer.parseInt(sage);
//封装到JavaBean对象中去
JavaBean jBean = new JavaBean();
jBean.setId(id);
jBean.setName(name);
jBean.setPassword(password);
jBean.setSex(sex);
jBean.setAge(age);
String sql ="update login set name=?,password=?,sex=?,age=? where id=?";
SqlBean sBean = new SqlBean();
int count =sBean.getUpdate(sql,jBean);
String url="";
if(count>0)
{
url="SearchList.jsp";
}
else
{
url ="error.jsp";
request.setAttribute("error", "更新");
}
request.getRequestDispatcher(url).forward(request,
response);//forword跳转语句
}
}
4.删除记录的Servlet----Delete.java
package MVC;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import MVC.SqlBean;
public class Delete extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doDelete(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
//获取超链接传来的数据
String sId = request.getParameter("id");
int id =Integer.parseInt(sId);
//
//调用模型层删除方法
String sql = "delete from login where id=?";
SqlBean sBean = new SqlBean();