涉及到很多xml配置没写:只写具体实现的所有类

1、实体类

对应数据表SYS_SBGL,

主键是SBBM,主键是自动生成的uuid

数据表内容如下(有图有真相):

package com.jinhetech.yogurt.sbgl.entity;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table; import org.hibernate.annotations.GenericGenerator;
import org.springframework.cache.annotation.Cacheable;
@Entity
@Table(name="SYS_SBGL")
@PrimaryKeyJoinColumn(name = "SBBM")
@Cacheable(value = "baseCache")
public class Sbgl implements Serializable{ private static final long serialVersionUID = -1423899016746755470L; //@SequenceGenerator(name = "MY_SUQUENCE", sequenceName = "SEQ_SYS_SBGL") //@GeneratedValue(generator="MY_SUQUENCE")
//@GeneratedValue(generator="system_uuid")
//@GenericGenerator(name="system_uuid", strategy="uuid")
@Id
private String sbbm; private String sbmc;
private String sblx;
private String sssx;
private String ssjd; private String azsj;
private String azry;
private String sbzt;
private String sbjd;
private String sbwd; private String wxlxr;
private String wxlxdh;
private String sbywxcs;
private String jzpylyz;
private String mqsbcyr;
private String bzsm; public String getSbbm() {
return sbbm;
}
public void setSbbm(String sbbm) {
this.sbbm = sbbm;
}
public String getSbmc() {
return sbmc;
}
public void setSbmc(String sbmc) {
this.sbmc = sbmc;
}
public String getSblx() {
return sblx;
}
public void setSblx(String sblx) {
this.sblx = sblx;
}
public String getSssx() {
return sssx;
}
public void setSssx(String sssx) {
this.sssx = sssx;
}
public String getSsjd() {
return ssjd;
}
public void setSsjd(String ssjd) {
this.ssjd = ssjd;
}
public String getAzsj() {
return azsj;
}
public void setAzsj(String azsj) {
this.azsj = azsj;
}
public String getAzry() {
return azry;
}
public void setAzry(String azry) {
this.azry = azry;
}
public String getSbzt() {
return sbzt;
}
public void setSbzt(String sbzt) {
this.sbzt = sbzt;
}
public String getSbjd() {
return sbjd;
}
public void setSbjd(String sbjd) {
this.sbjd = sbjd;
}
public String getSbwd() {
return sbwd;
}
public void setSbwd(String sbwd) {
this.sbwd = sbwd;
}
public String getWxlxr() {
return wxlxr;
}
public void setWxlxr(String wxlxr) {
this.wxlxr = wxlxr;
}
public String getWxlxdh() {
return wxlxdh;
}
public void setWxlxdh(String wxlxdh) {
this.wxlxdh = wxlxdh;
}
public String getSbywxcs() {
return sbywxcs;
}
public void setSbywxcs(String sbywxcs) {
this.sbywxcs = sbywxcs;
}
public String getJzpylyz() {
return jzpylyz;
}
public void setJzpylyz(String jzpylyz) {
this.jzpylyz = jzpylyz;
}
public String getMqsbcyr() {
return mqsbcyr;
}
public void setMqsbcyr(String mqsbcyr) {
this.mqsbcyr = mqsbcyr;
}
public String getBzsm() {
return bzsm;
}
public void setBzsm(String bzsm) {
this.bzsm = bzsm;
} }

2、JSP页面(sbgl_list.jsp)

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<!doctype html> <c:set var="ctx" value="${pageContext.request.contextPath}" scope="session"/> <html>
<head>
<title>设备管理</title>
<!-- zTree需要的样式和js -->
<link rel="stylesheet" href="${ctx }/yogurtResource/assembly/ztree/css/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="${ctx }/yogurtResource/assembly/ztree/jquery.ztree.core-3.5.js"></script>
<script type="text/javascript" src="${ctx }/yogurtResource/assembly/ztree/jquery.ztree.excheck-3.5.js"></script> <!-- 验证框架 -->
<script type="text/javascript" src="${ctx }/yogurtResource/assembly/yogurt/user/formValidate.js"></script> <!-- 修改表单验证错误提示样式 -->
<style type="text/css">
.table-bordered-ul li{ margin: 5px; float:left}
label.error {
padding-left: 16px; padding-bottom: 2px; font-weight: bold; color: #F00;
}
</style> <script type="text/javascript">
function console(consoleTag, userId, stateTag) {
// 添加用户。
if("add" == consoleTag) {
$('#formid').prop("action", "${ctx}/sbgl/sbgl_add_list");
} } </script> </head> <body>
<div class="clear">
<div class="panel panel-default yogurt_route" id="yogurt_route">
<a href="${ctx }/home/home_list">首页</a> > <a
href="javascript:void(0);" onclick="navigate();">设备管理</a> > 设备列表
</div>
</div> <ul id="bqnum">
<li><a href="javascript:void(0);" onclick="navigate();">导航</a>
</li>
<li><a href="javascript:void(0);" onclick="orgTree();">机构</a>
</li>
</ul> <!-- 根据条件查询 -->
<div class="clear ppd10" style="line-height:32px">
<form action="${ctx }/sbgl/sbgl_list" method="post" id="selForm">
<div style="float:left; width:200px">
设备名称:
<input type="text" name="sbmc" id="sbmc" >
</div>
<div class="floatleft">
&nbsp;&nbsp;设备类型:
<input type="text" name="sblx" id="sblx" >
</div>
<div class="floatleft">
&nbsp;&nbsp;所属市县:
<input type="text" name="sssx" id="sssx" >
</div>
<div class="floatleft">
&nbsp;&nbsp;基地名称:
<input type="text" name="jdmc" id="jdmc" >
</div>
<div class="floatleft">
&nbsp;&nbsp;设备状态:
<select class="form-control" style="display:inline-block; width:80px" name="sbzt" id="sbzt">
<option value="">全部</option>
<option value="Y">正常</option>
<option value="N">异常</option>
</select>
</div>&nbsp;&nbsp;&nbsp;&nbsp;
<button type="submit" class="btn btn-success yogurt_search_button" onclick="search();">
<img src="${ctx }/yogurtResource/images/Panel/search.png" width="" height="" />
</button>
</form>
</div> <!-- 新增、删除 -->
<div class="panel panel-default" style="margin-top:10px">
<div class="yogurt_panel_title_core">
<span class="state_bold">共查询出数据结果:<span class="state_red"></span>条</span>
</div>
<div class="more_core3">
<!-- <button type="button" class="btn btn-success yogurt_search_button2" onclick="console('add','');">新增设备</button> -->
<button type="button" class="btn btn-success yogurt_search_button2" onclick="window.location.href='${ctx }/sbgl/sbgl_add_list' ">新增设备</button>
<button type="button" class="btn btn-success yogurt_search_button2" onclick="console('delete','');">删除设备</button>
</div>
</div>
<!-- 列表 -->
<div class="yogurt_elementsbox_core clear">
<div class="yogurt_elementsbox_table_article" id="yogurt_elementsbox_table_article">
<table id="tableBody" border="" cellspacing="" cellpadding="" class="table yogurt_elementsbox_table">
<thead>
<tr class="yogurt_tab_back" onmouseover="this.className='yogurt_tab_trhover'" onmouseout="this.className='yogurt_tab_back'">
<th width="3%"><input type="checkbox" onClick="allchecked(this)"></th>
<th width="10%">设备名称</th>
<th width="10%">设备类型</th>
<th width="10%">所属市县</th>
<th width="10%">基地名称</th>
<th width="10%">设备状态</th>
<th width="10%">维修联系人</th>
<th width="10%">联系电话</th>
<th width="10%">设备持有人</th>
<th width="17%" style="text-align:center;">操作</th>
</tr>
</thead>
<tbody id="userTb">
<c:forEach var="sbgl" items="${lst}" varStatus="status">
<tr>
<td><input type="checkbox" ></td>
<td>${sbgl.sbmc }</td>
<td>${sbgl.sblx }</td>
<td>${sbgl.sssx }</td>
<td>${sbgl.ssjd }</td>
<td>${sbgl.sbzt }</td>
<td>${sbgl.wxlxr }</td>
<td>${sbgl.wxlxdh }</td>
<td>${sbgl.mqsbcyr }</td>
<td style="text-align:center">
<a href="javascript:void(0);" onclick="console('update', '${user.userId}')"> 修改</a>
<a href="javascript:void(0);" onclick="showRoles('${user.userId}')">| 查看</a>
</td>
</tr>
</c:forEach>
</tbody> </table> </div>
</div> <!--分页-->
<div style="clear:both; height:50px">
<!--加载分页组件-->
<div id="kkpager"></div>
<script type="text/javascript">
var param = ""; $(function() {
var totalPage = ;
var totalRecords = ;
var pageSize = ; var pageNum = ;
//初始化分页控件
//有些参数是可选的,比如lang,若不传有默认值
kkpager.init({
pno: pageNum,
//总页码
total: ,
//总数据条数
totalRecords: totalRecords,
//链接前部
hrefFormer: 'user_list',
//链接尾部
hrefLatter: '',
getLink: function(n) {
return getInitParam() + "&pageNum=" + n + "&pageSize=" + pageSize;
},
lang: {
prePageText: '上一页',
nextPageText: '下一页',
totalPageBeforeText: '共',
totalPageAfterText: '页',
totalRecordsAfterText: '条数据',
gopageBeforeText: '转到',
gopageButtonOkText: '确定',
gopageAfterText: '页',
buttonTipBeforeText: '第',
buttonTipAfterText: '页'
}
});
//生成
kkpager.generPageHtml(); $('#mykkpagerselect').val(pageSize);
}); function returnoption(pageSize) {
window.location.href = getInitParam() + "&pageNum=1&pageSize=" + pageSize;
} function getInitParam() {
var serUserName = $('#ser_username').val();
var serActiveState = $('#ser_activeState').val();
var serOrgIds = $('#ser_orgId').val();
var serRoleIds = $('#ser_roleIds').val(); var attr = "?serUserName=" + encodeURI(encodeURI(serUserName))
+ "&serActiveState=" + serActiveState + "&serOrgIds=" + serOrgIds + "&serRoleIds=" + serRoleIds;
return "${ctx}/user/user_list" + attr;
}
</script>
<!--分页结束-->
</div>
<!--分页end--> </body>
</html>

3、Controller(SbglController.java)

@Controller("sbglController")
@RequestMapping("/sbgl")
public class SbglController extends BaseController {
@Autowired
private SbglDao dao; /**
* 查询设备信息列表
* (在这里查询数据表所有数据,用Spring Data JPA框架自带的findAll()方法查询所有数据)。
*/
@RequestMapping("sbgl_list")
@RequiresRoles("sbgl/sbgl_list")
public String getUserList(Model model) throws Exception {

     //这两行就能查询到Sbgl类对应的数据表的所有数据库,并放在List集合里,供JSP页面调用
List<Sbgl> lst=new ArrayList<Sbgl>();
lst=(List<Sbgl>) dao.findAll(); System.out.println("aaa");
model.addAttribute("lst", lst); return "sbgl/sbgl_list";
} }

4、DAO层(Spring Data JPA只需要extends继承Spring Data JPA接口,不需要写SQL从数据表查询,上面提到的自带的findAll()方法就可以查到对应实体类数据表的所有数据 )

package com.jinhetech.yogurt.sbgl.dao;

import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.stereotype.Repository; import com.jinhetech.yogurt.sbgl.entity.Sbgl; public interface SbglDao extends CrudRepository<Sbgl, String> { }

Spring MVC和Spring Data JPA之获取数据表数据放在List集合,显示在JSP页面的更多相关文章

  1. java(样品集成框架spring、spring mvc、spring data jpa、hibernate)

    这是你自己的参考springside集成框架的开源项目.主要的整合spring.spring mvc.spring data jpa.hibernate几个框架,对于这些框架中仍然感觉更舒适sprin ...

  2. 【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

    作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MV ...

  3. Spring MVC 到 Spring Boot 的简化之路(山东数漫江湖)

    背景 从Servlet技术到Spring和Spring MVC,开发Web应用变得越来越简捷.但是Spring和Spring MVC的众多配置有时却让人望而却步,相信有过Spring MVC开发经验的 ...

  4. 【转】Spring,Spring MVC及Spring Boot区别

    对于一个Java开发者来说,Spring可谓如雷贯耳,无论是Spring框架,还是Spring引领的IOC,AOP风格,都对后续Java开发产生的深远的影响,同时,Spring社区总能及时响应开发者的 ...

  5. spring mvc和spring boot的区别

    spring boot只是一个配置工具,整合工具,辅助工具. springmvc是框架,项目中实际运行的代码 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等 ...

  6. Spring MVC 到 Spring BOOT 的简化之路

    背景 Spring vs Spring MVC vs Spring Boot Spring FrameWork Spring 还能解决什么问题 Spring MVC 为什么需要Spring Boot ...

  7. Spring MVC 和 Spring 总结

    1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合. 2). AOP编程的 ...

  8. 使用Spring MVC测试Spring Security Oauth2 API

    不是因为看到希望了才去坚持,而坚持了才知道没有希望. 前言 在Spring Security源码分析十一:Spring Security OAuth2整合JWT和Spring Boot 2.0 整合 ...

  9. Spring,Spring MVC及Spring Boot区别

    什么是Spring?它解决了什么问题? 我们说到Spring,一般指代的是Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代 ...

  10. callable与runable区别?switch char ?sql只查是否存在,sql复制表 ?反射 ? spring mvc 和spring 上下文区别?

    中化技术部  2018.4.16 1. callable 和 thread 区别 实现Callable接口的线程能返回执行结果,而Runable 不可以 . Callable 的call方法允许抛出异 ...

随机推荐

  1. Python数据分析入门之pandas基础总结

    Pandas--"大熊猫"基础 Series Series: pandas的长枪(数据表中的一列或一行,观测向量,一维数组...) Series1 = pd.Series(np.r ...

  2. FAST Hello World - Preparation for software's running environment

    Ubuntu 14.04 安装 libpcap-1.1.1 & libpnet-1.1.4 & NMAC function lib 参考: NetMagic.org yacc: com ...

  3. UVa 1626 括号序列(矩阵连乘)

    https://vjudge.net/problem/UVA-1626 题意: 输入一个由 "(" . ")" . "[" . " ...

  4. MSVC_代码优化

    测试环境: Win7x64 cn_visual_studio_2010_ultimate_x86_dvd_532347.iso qt-opensource-windows-x86-msvc2010_o ...

  5. 《WAP团队》项目系统设计改进与详细设计

    任务1: 一.分析<基于家教管理系统项目需求规格说明书>初稿的不足,特别是文档需求描述建模不完整的内容. 通过软件工程更深入的学习发现我们的需求分析建模明显不足,缺少最重要的类图. 二.团 ...

  6. CCF 100012. 技能树

    100012. 技能树 思路:区间dp. 状态:dp[i][j]表示节点为i,高度小于等于j的方案数. 状态转移:dp[i][j]=∑dp[k][j-1]*dp[i-1-k][j-1]. 节点为i,高 ...

  7. Python -- xlrd,xlwt,xlutils 读写同一个Excel

    最近开始学习python,想做做简单的自动化测试,需要读写excel,然后就找到了xlrd来读取Excel文件,使用xlwt来生成Excel文件(可以控制Excel中单元格的格式),需要注意的是,用x ...

  8. C++编程模板2

    C++编程模板2 #include <iostream> using namespace std; /* */ int main(){ int ans; printf("%d\n ...

  9. English trip -- Review Unit8 Work 工作

    工作一般询问对方的工作情况的方式: What job is it?  它的工作是什么? You're a engineer?     你是工程师? Right  是的 What do you do?  ...

  10. 利用 AttachThreadInput 改变其它进程的输入法状态

    利用 AttachThreadInput 和 WM_INPUTLANGCHANGEREQUEST 消息 改变 其它 进程 的 输入 状态 ? 众所周知,通过 ActivateKeyboardLayou ...