这个主要是就是,先写接口,再写SQL,然后在service层中写方法调用SQL返回一个值的集合,然后在servlet中调用service层的方法,把结果先存到request里面,最后通过jsp界面继续输出。这个过程主要分为
四个步骤
一、mybatis(数据库)这一块
①写接口
②写SQL
注意:有一些属性名和字段名对不上的,需要使用
resultMapper
.其实就是它的type转接了原来的resultType。
二、service层
代码:
package com.fldwws.service;
import com.fldwws.mapper.BrandMapper;
import com.fldwws.pojo.Brand;
import com.fldwws.utils.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import java.util.ArrayList;
import java.util.List;
public class BrandService {
//获取工厂
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
public List<Brand> SelectAll(){
//获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//调用getMapper
BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
//调用接口方法
List<Brand> brands = mapper.selectAll();
//关闭连接
sqlSession.close();
return brands;
}
}
①获取工厂(因为以后一致都要使用,所以提到成员的位置)
②获取sqlSession
③调用getMapper
④调用接口方法
⑤关闭连接返回结果。
到这一步就已经把数据查出来了。我们已经有了,接下来就是通过转到servlet准备进行展示
三、servlet这一块
调用方法,转到域中。
代码:
package com.fldwws.web;
import com.fldwws.pojo.Brand;
import com.fldwws.service.BrandService;
import javax.jws.WebService;
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 java.io.IOException;
import java.util.List;
@WebServlet("/SelectAllServlet")
public class SelectAllServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.调用BrandService的方法
//1.1 new一个对象
BrandService brandService = new BrandService();
//1.2 调用方法
List<Brand> brands = brandService.SelectAll();
//2. 存入域中
request.setAttribute("brands",brands);
//3.请求转发
request.getRequestDispatcher("/brand.jsp").forward(request,response);
}
}
四、展示数据了
<%--User: 彭于晏 --%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
<title>foreach-demo</title>
</head>
<body>
<table border="3">
<tr>
<th>序号</th>
<th>品牌</th>
<th>公司</th>
<th>价格</th>
<th>描述</th>
<th>状态</th>
</tr>
<c:forEach items="${brands}" var="brand" varStatus="status">
<tr align="center">
<td>${status.count}</td>
<td>${brand.brandName}</td>
<td>${brand.companyName}</td>
<td>${brand.ordered}</td>
<td>${brand.description}</td>
<c:if test="${brand.status == 1}">
<td>激活</td>
</c:if>
<c:if test="${brand.status == 0}">
<td>禁用🈲</td>
</c:if>
</tr>
</c:forEach>
</table>
</body>
</html>
效果
小结一下啊:
我感觉掌握一些基本的顺序就大差不差了,基本就是接口–SQL–service层–servlet–展示层