三层是指: 表示层,业务逻辑层,和数据访问层
三层架构和 mvc 的对比
三层架构的运行流程:
代码:
首先是导包:
大致方向:
bean
package 三层架构.student.bean;
public class Student {
private int id ;
private String name;
private String age;
private String address;
public int getId() {
return id;
}
public Student(String age, String address) {
super();
this.age = age;
this.address = address;
}
public Student(String name, String age, String address) {
super();
this.name = name ;
this.age = age;
this.address = address;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Student(int id, String name, String age, String address) {
super();
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
super();
}
@Override
public String toString() {
// TODO Auto-generated method stub
return this.getId()+"-" +this.getName()+"-"+this.getAge()+"-"+this.getAddress();
}}
dao
package 三层架构.student.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;
import 三层架构.student.bean.Student;public class studentdao {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;public boolean addstudent(Student student) {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/读取?characterEncoding=utf-8","root","021117");
System.out.println("链接数据库成功");
String sql = "insert into student(name,age,address) values (?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, student.getName());
preparedStatement.setString(2, student.getAge());
preparedStatement.setString(3, student.getAddress());
int count =preparedStatement.executeUpdate();
System.out.println("新增成功");
if (count>0) {
return true;
}else {
return false;
}} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}finally {
try {
if (preparedStatement!=null) preparedStatement.close();
if (connection!=null) connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public boolean deletestudent(String name) {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/读取?characterEncoding=utf-8","root","021117");
System.out.println("链接数据库成功");
String sql = "delete from student where name = ?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, name);
int count =preparedStatement.executeUpdate();
System.out.println("删除成功");
if (count>0) {
return true;
}else {
return false;
}} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}finally {
try {
if (preparedStatement!=null) preparedStatement.close();
if (connection!=null) connection .close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public boolean updatastudent(String name, Student student) {
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/读取?characterEncoding=utf-8","root","021117");
System.out.println("链接数据库成功");
String sql = "update student set age=?, address =? where name =? ";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, student.getAge());
preparedStatement.setString(2, student.getAddress());
preparedStatement.setString(3, name);
int count =preparedStatement.executeUpdate();
// System.out.println("修改成功");
if (count>0) {
return true;
}else {
return false;
}} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}finally {
try {
if (preparedStatement!=null) preparedStatement.close();
if (connection!=null) connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public boolean isExist(String name) {
if ( queryByid(name)==null)
return false;
else
return true;
}
public Student queryByid(String name) {
Student student = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/读取?characterEncoding=utf-8","root","021117");
System.out.println("链接数据库成功");
String sql = "select *from student where name =?";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, name);
resultSet = preparedStatement.executeQuery();
if(resultSet.next()) {
int id = resultSet.getInt("id");
String name1 = resultSet.getString("name");
String age = resultSet.getString("age");
String address = resultSet.getString("address");
student = new Student(id ,name1 ,age, address);
}
return student;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}finally {
try {
if (resultSet!=null) resultSet.close();
if (preparedStatement!=null) preparedStatement.close();
if (connection!=null) connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public List <Student> querysStudentall( ) {
List <Student> students = new ArrayList<>();
Student student = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/读取?characterEncoding=utf-8","root","021117");
System.out.println("链接数据库成功");
String sql = "select *from student";
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name1 = resultSet.getString("name");
String age = resultSet.getString("age");
String address = resultSet.getString("address");
student = new Student(id ,name1 ,age, address);
students.add(student);
}
return students;
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}finally {
try {
if (resultSet!=null) resultSet.close();
if (preparedStatement!=null) preparedStatement.close();
if (connection!=null) connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
servlce:
package 三层架构.student.service;
import java.util.List;
import 三层架构.student.bean.Student;
import 三层架构.student.dao.studentdao;public class Studentservice {
studentdao dao = new studentdao();
public boolean addStudent(Student student) {
if (!dao.isExist(student.getName())) {
dao.addstudent(student);
return true;
}else {
System.out.println("此人已存在");
return false;
}
}
public boolean deletestudent(String name) {
if (dao.isExist(name)) {
dao.deletestudent(name);
return true;
}else {
//System.out.println("此人已存在");
return false;
}
}
public boolean updatestudent(String name ,Student student) {
if (dao.isExist(name)) {
dao.updatastudent(name, student);
return true;
}else {
return false;
}
}
//查询一个学生
public Student querystudent (String name) {
return dao.queryByid(name);
}
//查询全部学生
public List<Student> queryStudents (){
return dao.querysStudentall();
}
}
servlet:
删除
package 三层架构.student.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import 三层架构.student.bean.Student;
import 三层架构.student.service.Studentservice;
@WebServlet("/deleteservlet")
public class deleteservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//接收前端传来的 名字
String name = request.getParameter("uname");
Studentservice studentservice = new Studentservice();
boolean result = studentservice.deletestudent(name);
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("utf-8" );
if (result) {
response.getWriter().println("删除成功");
response.setHeader("refresh","3;URL=selectallservlet");
//response.sendRedirect("selectallservlet");
}else {
response.getWriter().println("删除失败");
response.setHeader("refresh","3;URL=selectallservlet");
//response.sendRedirect("selectallservlet");
}
/*
if(!result) {
request.setAttribute("delete","deleteerror");
}else {
request.setAttribute("delete","nodeleteerror");
}
request.getRequestDispatcher("selectallservlet").forward(request, response);
}
*/
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}}
查询全部
package 三层架构.student.servlet;
import java.io.IOException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import 三层架构.student.bean.Student;
import 三层架构.student.service.Studentservice;
@WebServlet("/selectallservlet")
public class selectallservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//接收前端的消息
Studentservice studentservice = new Studentservice();
List<Student> students = studentservice.queryStudents();
System.out.println(students);
request.setAttribute("students",students);
request.getRequestDispatcher("student.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}}
查询个人:
package 三层架构.student.servlet;
import java.io.IOException;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import 三层架构.student.bean.Student;
import 三层架构.student.service.Studentservice;
@WebServlet("/selectallservlet")
public class selectallservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//接收前端的消息
Studentservice studentservice = new Studentservice();
List<Student> students = studentservice.queryStudents();
System.out.println(students);
request.setAttribute("students",students);
request.getRequestDispatcher("student.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}}
添加:
package 三层架构.student.servlet;
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import 三层架构.student.bean.Student;
import 三层架构.student.service.Studentservice;/**
* Servlet implementation class studentservlet
*/
@WebServlet("/studentservlet")
public class studentservlet extends HttpServlet {
private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {request.setCharacterEncoding("utf-8");
// int id = Integer.parseInt(request.getParameter("uid"));
String name = request.getParameter("uname");
String age = request.getParameter("uage");
String address = request.getParameter("uadd");
Student student = new Student(name, age, address);Studentservice studentservice = new Studentservice();
boolean result = studentservice.addStudent(student);
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
/**
* if(result) { out.println("此增加成功 "); response.setHeader("refresh",
* "5;URL=selectallservlet");//定时跳转 到全部查询的界 面
*
* }else out.println("此增加失败 ");
*
* }
*/
if (!result) {// 增加失败
request.setAttribute("error", "adderror");
} else {// 增加成功
request.setAttribute("error", "noadderror");
}
// response.setHeader("refresh", "5;URL=selectallservlet");//定时跳转 到全部查询的界 面request.getRequestDispatcher("selectallservlet").forward(request, response);
}protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {}
}
修改
package 三层架构.student.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.sun.xml.internal.ws.wsdl.writer.document.Service;
import 三层架构.student.bean.Student;
import 三层架构.student.service.Studentservice;
@WebServlet("/updateservlet")
public class updateservlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//接收前端的消息
String name = request.getParameter("uname");
//获取修改后的消息
//int id = Integer.parseInt(request.getParameter("uid"));
String age = request.getParameter("uage");
String address = request.getParameter("uadd");
Student student = new Student(age, address);
Studentservice studenservice = new Studentservice();
boolean result = studenservice.updatestudent(name, student);
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("utf-8" );
if(result) {
response.getWriter().println("修改成功");
//response.sendRedirect("selectallservlet");
response.setHeader("refresh","3;URL=selectallservlet");
}else {
response.getWriter().println("修改失败");
// response.sendRedirect("selectallservlet");
response.setHeader("refresh","3;URL=selectallservlet");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}}
xml 配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>三层架构</display-name>
<welcome-file-list>
<welcome-file>selectallservlet</welcome-file>
<welcome-file>student.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>student.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
查询全部:
录入 :
查询和修改:
删除: