须要建立相应的包与文件夹css
Book数据表做为本示例数据html
搭建项目开始前端
首先有bean后java
private int id; private String name; private int cnt;
第一步拿到业务需求(查询所有书籍信息)web
须要写上注解spring
package com.gdnf.ssm.dao; import com.gdnf.ssm.entity.Book; import org.springframework.stereotype.Repository; import java.util.List; @Repository public interface BookDAO { List<Book> getBookAll(); }
在service包下面建立接口数据库
package com.gdnf.ssm.service; import com.gdnf.ssm.entity.Book; import java.util.List; public interface BookService { List<Book> getBookAll(); }
建立实现类服务器
package com.gdnf.ssm.service; import com.gdnf.ssm.dao.BookDAO; import com.gdnf.ssm.entity.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class BookServiceImpl implements BookService { @Autowired BookDAO bookDAO = null; @Override public List<Book> getBookAll() { return bookDAO.getBookAll(); } }
web包下面处理请求调用的方法mybatis
package com.gdnf.ssm.web; import com.gdnf.ssm.dao.BookDAO; import com.gdnf.ssm.entity.Book; import com.gdnf.ssm.service.BookService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.xml.ws.RequestWrapper; import java.util.List; @Controller public class BookController { @Autowired private BookService bookService; @Autowired private BookDAO bookDAO; //请求路径 @RequestMapping("/bookAll") public String getBookAll(Model model) { List<Book> bookAll = bookService.getBookAll(); model.addAttribute("books", bookAll); return "book_list"; } }
为何返回String ?看下图app
会直接经过配置好的文件找到页面
随后建立文件夹>建立包>数据库交互层
看代码吧 我编不下去了
属性
parameterType输入参数类型,resultType为返回参数类型
写入参数格式 #{参数名} 可防注入
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.gdnf.ssm.dao.BookDAO"> <select id="getBookAll" resultType="com.gdnf.ssm.entity.Book" > select * from book </select> </mapper>
而后编写前端渲染
<%-- Created by IntelliJ IDEA. User: DZ Date: 2018/9/26 Time: 15:24 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %> <html> <head> <title>书籍详情</title> </head> <!-- CSS goes in the document HEAD or added to your external stylesheet --> <style type="text/css"> table.hovertable { font-family: 宋体; font-size: 18px; color:#333333; border-width: 1px; border-color: #999999; border-collapse: collapse; } table.hovertable th { background-color:#c3dde0; border-width: 1px; padding: 8px; border-style: solid; border-color: #a9c6c9; } table.hovertable tr { background-color:#d4e3e5; } table.hovertable td { border-width: 1px; padding: 8px; border-style: solid; border-color: #a9c6c9; } </style> <body> <a href="/book">添加书籍</a> 全部书籍: <table class="hovertable" align = "center" width="450"> <thead> <tr> <th>编号</th> <th>书名</th> <th>库存</th> <th>其余</th> </tr> </thead> <tbody> <c:forEach items="${books}" var="book"> <tr> <td>${book.id}</td> <td>${book.name}</td> <td>${book.cnt}</td> <td></td> </tr> </c:forEach> </tbody> </table> <script !src=""> </script> </body> </html>
服务器启动后输入地址
结果: