1.在util中创建一个工具类(SqlSessionFactoryUtils)
package com.hui.util;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
public class SqlSessionFactoryUtils {
private static SqlSessionFactory sqlSessionFactory;
static {
//静态代码块会随着类的加载而自动执行,且只执行一次
try {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
}
2.在BrandMapper接口创建selectAll()方法,直接用注解查询
//用注解的方式查询数据库,调用方法就能执行注解中的命令
@Select("select * from tb_brand;")
//创建一个关于Brand实体类的集合,名字为selectAll
List<Brand> selectAll();
3.在service包下面创建一个BrandService的类,调用工具类,使用mabatis方式调用selectAll()方法访问数据库
package com.hui.service;
import com.hui.mapper.BrandMapper;
import com.hui.pojo.Brand;
import com.hui.util.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import java.util.List;
public class BrandService {
// 1.从工具类中调用getSqlSessionFactory()
SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
/**
* 查询所有
* @return
*/
public List<Brand> selectAll() {
//调用BrandMapper.selectAll();
// 2.获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 3.获取BrandMapper方法
BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
// 4.调用方法
List<Brand> brands = mapper.selectAll();
// 5.关闭sqlSession
sqlSession.close();
// 6.返回方法获得的值
return brands;
}
}
4.在web包中创建一个selectAllServlet
package com.hui.web;
import com.hui.pojo.Brand;
import com.hui.service.BrandService;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;
@WebServlet("/selectAllServlet")
public class selectAllServlet extends HttpServlet {
private BrandService service = new BrandService();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("Utf-8");
resp.setContentType("text/html;charset=utf-8");
//1.调用BrandService完成查询
List<Brand> brands = service.selectAll();
//2.存入request域中
req.setAttribute("brands", brands);
//3.转发到brand.jsp中
req.getRequestDispatcher("/brand.jsp").forward(req,resp);
}
}
5.在webapp下创建一个index.html,a链接对应的是selectAllServlet
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/web-demo01/selectAllServlet">查询所有</a>
</body>
</html>
6.创建一个brand.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="button" value="新增" id="add"><br>
<hr>
<table border="1" cellspacing="0" width="80%">
<tr>
<th>序号</th>
<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>${brand.id}</td>--%>
<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 != 1}">
<td>禁用</td>
</c:if>
<td><a href="/brand-demo/selectByIdServlet?id=${brand.id}">修改</a> <a href="#">删除</a></td>
</tr>
</c:forEach>
</table>
</script>
</body>
</html>
可以看到
显示成功