涉及到很多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. Python3基础 str translate 将指定字符转换成另一种特定字符

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. MBR主引导扇区解析2

    unsigned AnsiChar data[] = { 0x33, 0xC0, 0x8E, 0xD0, 0xBC, 0x00, 0x7C, 0x8E, 0xC0, 0x8E, 0xD8, 0xBE, ...

  3. bootstrap3

    bs是基于html5和css3的, h5和css3是今后的趋势. html5只是说文档的 "标准"是h5, 但是文档的类型仍然是 html. 所以在写文档类型的时候, 就不能要那个 ...

  4. Linux rhel7 下MySQL5.7.18详细安装文档

    Linux rhel7 下MySQL5.7.18详细安装文档 本文安装MySQL5.7使用的是vm虚拟机rhel7操作系统 ,ftp文件传输是FileZilla3.27,远程连接xssh5.0 1 登 ...

  5. 51nod 1076 2条不相交的路径(边双连通分量)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1076 题意: 思路: 边双连通分量,跑一遍存储一下即可. #includ ...

  6. UVa 116 单向TSP(多段图最短路)

    https://cn.vjudge.net/problem/UVA-116 题意:给出m行n列的整数矩阵,从第一列任何一个位置出发每次往右,右上或右下走一格,最终到达最后一列,要求经过的整数之和最小. ...

  7. VC++异常处理

    1.测试代码: #include <stdio.h> #include <windows.h> void main() { __try { DWORD dwDemonObj = ...

  8. 《剑指offer》第二十八题(对称的二叉树)

    // 面试题28:对称的二叉树 // 题目:请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和 // 它的镜像一样,那么它是对称的. #include <iostream> ...

  9. Python - WebDriver 识别登录验证码

    Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...

  10. C#匹配中文

    public static bool ContainsChinese(string text) { if (string.IsNullOrEmpty(text)) return false; stri ...