美文网首页javaWeb
Springboot+Thymeleaf+Mybatis+Pag

Springboot+Thymeleaf+Mybatis+Pag

作者: coooCode | 来源:发表于2019-01-11 20:43 被阅读0次

准备工作:
1)创建springboot项目
2)创建数据库表category_,准备好对应的实体类
3)在项目中的pom文件中添加jdbc,mybatis, pageHelper 的jar包
代码地址在:
https://github.com/yunqinz/thymeleafCrud


1.application.properties (配置thtymeleaf 和 数据库连接)

#thymeleaf 配置
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
#缓存设置为false, 这样修改之后马上生效,便于调试
spring.thymeleaf.cache=false
#上下文
server.context-path=/thymeleaf
#数据库
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

2.PageHelperConfig (工具类)
3.CategoryMapper (~~)
4.CategoryController ()
5.页面
1)listCategory.html
2)editCategory.html


一、查询:
如何分页?3步

  • 引入PageHelperConfig.java
  • CategoryMapper.java
@Select("select * from category_")
public List<Category> findAll();
  • CategoryController:
    -> listCategory()函数中引入start,size两个参数
    -> 将查询出来的所有数据添加到PageInfo中
@RequestMapping("/listCategory")
public String listCategory(Model m,
                         @RequestParam(value = "start",defaultValue = "0")int start,
                         @RequestParam(value = "size",defaultValue = "5")int size){
    List<Category> cs = categoryMapper.findAll();
    // 将查询的数据以分页的形式展示
    PageHelper.startPage(start,size,"id desc");// 还可以指定排序规则
    PageInfo<Category> page = new PageInfo<>(cs);
    m.addAttribute("page",page);
    return "listCategory";
}
  • 页面 (page.list;page.Num;page.pages):
<table align='center' border='1' cellspacing='0'>
    <tr>
        <td>id</td>
        <td>name</td>
        <td>编辑</td>
        <td>删除</td>
    </tr>
    <tr th:each="c:${page.list}">
        <td th:text="${c.id}"></td>
        <td th:text="${c.name}"></td>
        <td><a th:href="@{/editCategory(id=${c.id})}">编辑</a></td>
        <td>删除</td>
    </tr>
</table>
<br/>
<div>
    <a th:href="@{/listCategory(start=0)}">[首  页]</a>
    <a th:href="@{/listCategory(start=${page.pageNum-1})}">[上一页]</a>
    <a th:href="@{/listCategory(start=${page.pageNum+1})}">[下一页]</a>
    <a th:href="@{/listCategory(start=${page.pages})}">[末  页]</a>
</div>

二、新增

  • 表单页面(action 不能加 斜杠):
<!--这里的action 不能写成 action="/addCategory"-->
<form action="addCategory" method="post">
    <!--这里也不用写hidden id-->
    name: <input name = "name"/><br/>
    <button type="submit">提交</button>
</form>
  • CategoryMapper.java
@Insert("insert into category_ (name) values (#{name})")
    public int add(Category c);
  • CategoryController.java
@RequestMapping("/addCategory")
public String addCategory(Category c){
    categoryMapper.add(c);
    return "redirect:listCategory";
}

三、修改

  • 流程
    1)点击listCategory.html table的编辑,跳转到路由/editCategory(id=${c.id});
    2)查找到id对应的Category,并注入到Model中,跳转到editCategory.html页面中;
    3)editCategory.html 是一个表单,点击提交按钮,路由到action = "updateCategory"进行后台更新;
    4)进入/updateCategory路由对应的函数,更新数据库,并跳转到listCategory.html进行展示
  • 两个页面
    1)操作入口 - listCategory.html() - 注意语法
<td><a th:href="@{/editCategory(id=${c.id})}">编辑</a></td>

2)CategoryController.java 接收id,并从db中查找到对应的Category - 注意函数的参数

@RequestMapping("/editCategory")
public String listCategory(int id, Model m){
    Category c = categoryMapper.get(id);
    m.addAttribute("c",c);
    return "editCategory";
}

此时要写的CategoryMapper.java

@Select("select * from category_ where id = #{id}")
public Category get(int id);

3)editCategory.html - 注意action的写法 - 注意要写hidden id

<form action="updateCategory" method="post">
    name:<input name="name" th:value="${c.name}"/>
    <input type="hidden" name = "id" th:value="${c.id}"/>
    <br/>
    <button type="submit">提交</button>
</form>

4)CategoryController.java

@RequestMapping("/updateCategory")
public String update(Category c,Model m){
    categoryMapper.update(c);
    return "redirect:listCategory";
}

四、删除
1)入口

<td><a th:href="@{/deleteCategory(id=${c.id})}">删除</a></td>

2)进入路由/deleteCategory,进行后台删除,并跳转进行展示
CategoryController.java

@RequestMapping("/deleteCategory")
public String delete(int id){
    categoryMapper.delete(id);
    return "redirect:listCategory";
}

3)CategoryMapper.java

@Delete("delete from category_ where id = #{id}")
public void delete(int id);

相关文章

网友评论

    本文标题:Springboot+Thymeleaf+Mybatis+Pag

    本文链接:https://www.haomeiwen.com/subject/hfwxdqtx.html