Thymeleaf+spring jpa+springmvc实现的增删改查以及分页查询

本文介绍了一个使用Spring Data JPA实现的分页查询案例,包括自定义Repository接口的方法定义及Controller层的分页逻辑实现。通过具体代码展示了如何进行数据的保存、更新、删除以及按名称查询等操作,并实现了基于PageRequest的分页功能。
public interface ZxwxKFJSDWRepository extends JpaRepository<ZxwxKFJSDW, String>,
                                        PagingAndSortingRepository<ZxwxKFJSDW, String>{
  //插入数据
  public ZxwxKFJSDW save(ZxwxKFJSDW jsdw);
  //更新数据
  public ZxwxKFJSDW saveAndFlush(ZxwxKFJSDW jsdw);
  //删除数据
  @Modifying(clearAutomatically = true)
  public void delete(String dwm);
  //按照名字来查询
  public ZxwxKFJSDW findByDwm(String dwm);
  /**
   * 注意:在做分页查询的时候,不需要在这个借口定义方法了。可以直接调用
   */
  
  
//public List<ZxwxKFJSDW> findAll();
}
control中分页查询
@RequestMapping(value="/kfjsdwlisthtml") 
   public ModelAndView jsdwdlist(@RequestParam(value="pageNumberstr",required=false) 
   String pageNumberstr){
	   if(pageNumberstr==null ||"".equals(pageNumberstr)){
		   pageNumberstr="0";
       }
	   int pageNumber = Integer.parseInt(pageNumberstr);
       int pageSize = 5;
	   ModelAndView modelAndView=new ModelAndView();
	   PageRequest pageRequest=new PageRequest(pageNumber, pageSize,null);
	   Page<ZxwxKFJSDW> jsdwPage = jsdwRepos.findAll(pageRequest);
	   List<ZxwxKFJSDW> jsdwPagelist=jsdwPage.getContent();
	   modelAndView.addObject("jsdwlist",jsdwPagelist);
	   //总记录数
       modelAndView.addObject("totalPageNumber",jsdwPage.getTotalElements());
       //当前页
       modelAndView.addObject("pageNumberstr",pageNumber);
       //每页多少行
       modelAndView.addObject("pagesize",pageSize);
       //总页数
       modelAndView.addObject("TotalPages",jsdwPage.getTotalPages()-1);
	   modelAndView.setViewName("/jcxx/jsdwList");
	   return modelAndView;
   }

页面:

<tr th:each="jsdw:${jsdwlist}">
      <td align="center" bgcolor="#EFFBFE" th:text="${jsdw.dwm}">
      <td align="center" bgcolor="#EFFBFE" th:text="${jsdw.jgcode}">
      <td align="center" bgcolor="#EFFBFE" th:text="${jsdw.lxr}">
      <td align="center" bgcolor="#EFFBFE" th:text="${jsdw.tel}">
      <td align="center" bgcolor="#EFFBFE" th:text="${jsdw.szxzqn}">
      <td align="center" bgcolor="#EFFBFE" th:text="${jsdw.szxzqm}">
      <td align="center" bgcolor="#EFFBFE">
	      <a th:href="@{'/kfjwdw/updatehtml?dwm='+${jsdw.dwm}}">更新</a>|
	      <a th:href="@{'/kfjwdw/delete?dwm='+${jsdw.dwm}}">删除</a>
      </td>
      </tr>

<div width="80%" align="center"  bgcolor="#EFFBFE">
            <div align="center" bgcolor="#EFFBFE"> 
                <a th:href="@{/kfjwdw/kfjsdwlisthtml?pageNumberstr=0}">首页</a>
                <a th:href="@{'/kfjwdw/kfjsdwlisthtml?pageNumberstr='+*{pageNumberstr-1}}">上一页</a>
                <a th:href="@{'/kfjwdw/kfjsdwlisthtml?pageNumberstr='+*{pageNumberstr+1}}">下一页</a>
                <a th:href="@{'/kfjwdw/kfjsdwlisthtml?pageNumberstr='+*{TotalPages}}">尾页</a>
            </div>
      </div>



内容概要:本文系统梳理了计算机组成原理的完整知识体系,重点围绕冯·诺依曼体系结构、五大核心硬件(运算器、控制器、存储器、输入/输出设备)、数据表示与运算、存储层级、CPU架构、总线系统及I/O控制机制展开,深入剖析了硬件底层如何支撑Java程序的运行,特别是与JVM内存模型、多线程并发、IO操作、性能调优等关键技术的紧密关联。文章强调通过理解二进制编码、补码运算、缓存机制、指令流水线、乱序执行、中断与DMA等底层原理,帮助Java开发者从根本上解释浮点精度丢失、数值溢出、线程安全、伪共享、IO阻塞等常见问题,并提供性能优化的硬件级视角。; 适合人群:具备一定Java开发基础,工作1-3年,希望深入理解JVM、并发编程、IO模型底层原理的后端研发人员。; 使用场景及目标:① 理解Java代码从编译到执行的完整软硬件链路;② 掌握JVM内存布局、GC机制、线程上下文切换、volatile与synchronized的硬件实现原理;③ 分析并解决高并发、高性能场景下的性能瓶颈,如缓存命中率低、伪共享、总线争用、IO阻塞等问题;④ 在面试中清晰阐述Java底层与计算机硬件的关联,展现扎实的系统功底。; 阅读建议:建议按照文档提供的“八、学习顺序”分阶段学习,每学完一个硬件模块,立即结合对应的Java技术点(如学到Cache时思考伪共享和@Contended)进行复盘,将抽象硬件原理具象化到日常开发场景中,以达到学以致用的目的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值