基于IDEA搭建SpringMVC项目详细过程(三)

前面,我们在IDEA上把SpringMVC框架基本搭建完成,接下来,就要实现核心业务逻辑

我们的业务需求是从MySQL数据库中取出数据,然后在 jsp 页面上把数据显示出来 

 在实现具体的业务逻辑时,把业务逻辑分为DAO层、Service层、Controller层、View层

      Controller层-->Service层-->DAO层

  1. Controller层:主要负责具体业务模块流程的控制,会调用Service层的接口来控制业务逻辑;
  2. DAO层:主要是负责数据持久层的工作,用来对表进行增删改查的操作;
  3. Service层:主要负责业务逻辑设计,调用已定义的DAO层接口
  4. View层:主要负责前端 jsp 页面的实现;
  5. vo层:视图对象,是根据表抽象出来的业务对象;

 

 1)根据表设计vo层视图对象

public class Student {

    private int stuId;

    private String stuName;

    private int stuAge;

    private String stuAddr;

    private int stuSex;

    public Student() {

    }

    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 int getStuAge() {
        return stuAge;
    }

    public void setStuAge(int stuAge) {
        this.stuAge = stuAge;
    }

    public String getStuAddr() {
        return stuAddr;
    }

    public void setStuAddr(String stuAddr) {
        this.stuAddr = stuAddr;
    }

    public int getStuSex() {
        return stuSex;
    }

    public void setStuSex(int stuSex) {
        this.stuSex = stuSex;
    }


    @Override
    public String toString() {
        return "Student{" +
                "stuId=" + stuId +
                ", stuName='" + stuName + '\'' +
                ", stuAge=" + stuAge +
                ", stuAddr='" + stuAddr + '\'' +
                ", stuSex=" + stuSex +
                '}';
    }
}

2)编写dbManager类,用来进行数据库的连接和关闭

public class DbManager {

    public Connection conn = null;
    public Statement state = null;
    public ResultSet rs = null;

    public String driver = "com.mysql.jdbc.Driver";
    public String url = "jdbc:mysql://localhost:3308/demon";
    public String username = "root";
    public String password = "123456";

    public DbManager(){

    }

    public Connection getConnection(){
        try{
            Class.forName(driver);

            conn = DriverManager.getConnection(url,username,password);
            
            return conn;
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return conn;
    }


    public ResultSet queryExecute(String strSql){
        try{
            conn = this.getConnection();
            state = conn.createStatement();
            rs = state.executeQuery(strSql);
            return rs;
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return rs;
    }

    public void closeDb() {
        try {
            if (rs != null) rs.close();
            if (state != null) state.close();
            if(conn != null) conn.close();
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }
}

3)实现DAO层

由于在Service层调用了DAO,在DAO类上应加上Component注解

@Component
public class StudentDAO {

    public List<Student> queryAllOfStudent(){
        List<Student> studentList = null;
        try{
            String strSql = "select * from student";
            ResultSet rs = new DbManager().queryExecute(strSql);
            studentList = new ArrayList<Student>();
            while(rs.next()){
                Student student = new Student();
                student.setStuId(rs.getInt("stuId"));
                student.setStuName(rs.getString("stuName"));
                student.setStuAge(rs.getInt("stuAge"));
                student.setStuAddr(rs.getString("stuAddr"));
                student.setStuSex(rs.getInt("stuSex"));
                studentList.add(student);
            }
            return studentList;
        }catch (Exception ex){
            ex.printStackTrace();
        }
        return studentList;
    }
}

4)实现Service层

@Service
public class StudentServiceImpl implements StudentService {

    
   @Autowired
    public StudentDAO studentDAO;

    public List<Student> queryStudentService() throws Exception {
        return studentDAO.queryAllOfStudent();
    }
}

5)实现Controller层

这里我们使用了注解配置了处理器,并且将创建service实例的工作交给Spring容器来处理;

@Controller
public class ShowStudentHandler {


    @Autowired
    public StudentService studentService;

    @RequestMapping(value = "/queryStudent")
    public ModelAndView queryStudent() throws Exception{

        List<Student> studentList =  studentService.queryStudentService();
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("studentListKey",studentList);
        modelAndView.setViewName("studentslist");
        return modelAndView;
    }
}

6)实现View层,编写jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<table width="100%" align="center" border="1">
    <tr>
        <td>stuid</td>
        <td>stuname</td>
        <td>stuage</td>
        <td>stuaddr</td>
        <td>stusex</td>
    </tr>

    <c:forEach items="${studentListKey}" var="stus">
        <tr>
            <td>${stus.stuId}</td>
            <td>${stus.stuName}</td>
            <td>${stus.stuAge}</td>
            <td>${stus.stuAddr}</td>
            <td>${stus.stuSex}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

以上,就是实现具体业务逻辑的全部过程~~~

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值