Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例
项目截图
程序概述
该程序可以实现对图书的增删该查功能,所有的图书都会显示在首页。
当你在首页点击某一个图书后会进入图书详情页面。
点击编辑图书可以进入编辑页面
程序分层
数据库层
支持mysql和h2,需要修改datasource-tx-jpa.xml中的配置,默认是h2数据库
<!-- Embedded Database --> <jdbc:embedded-database id="dataSource" type="H2"> <jdbc:script location="classpath:schema.sql" /> <jdbc:script location="classpath:test-data-h2.sql" /> </jdbc:embedded-database>
持久层
该程序最主要的持久层对象就是Book对象,下面的代码片段显示了它的主要字段,每个字段通过JPA注解关联到数据库的表字段,Hibernate技术被用到了持久层provider
@Entity @Table(name = "book") public class Book implements Serializable { private Long id; private int version; private String name; private String publisher; private DateTime dateOfPublication; private String description; private byte[] photo; ... }
Service Layer
SpringData JPA开源项目简化了java持久层CRUD的操作,在Service层中调用SpringData JPA实现CRUD的操作。所有的Service层方法都可以通过SpringData JPA的接口CRUDRepository实现调用。
@Service("bookService") @Repository @Transactional public class BookServiceImpl implements BookService { @Autowired private BookRepository bookRepository; @Transactional(readOnly=true) public List<Book> findAll() { return Lists.newArrayList(bookRepository.findAll()); } ... }
Book Controller
所有请求到/的URI都通过BookController来处理,它有很多处理方法,但是我这边只给出最基本的一个方法:
@RequestMapping("/") @Controller public class BookController { @Autowired private BookService bookService; @RequestMapping(method = RequestMethod.GET) public String list(Model uiModel) { List<Book> books = bookService.findAll(); uiModel.addAttribute("books", books); return "books/list"; } ... }
显示层
下面的代码片段在首页显示了所有的图片数据
<c:if test="${not empty books}"> <table> <thead> <tr> <th>${labelBookName}</th> <th>${labelBookPublisher}</th> <th>${labelDateOfPublication}</th> </tr> </thead> <tbody> <c:forEach items="${books}" var="book"> <tr> <td> <a href="${showBookUrl}${book.id}">${book.name}</a> </td> <td>${book.publisher}</td> <td><joda:format value="${book.dateOfPublication}" pattern="yyyy-MM-dd" /></td> </tr> </c:forEach> </tbody> </table> </c:if>
附加功能
Spring Data JPA
CRUDRepository是抽象仓库对象,提供了基于JPA的最简单的接口。
jQuery UI
jQuery UI在该程序中用户创建一些按钮
Spring Security
最简单的权限控制,当用户登录后可以编辑和删除图书,未登录只能查看所有图书列表。
H2 Embedded Database
该程序用内置的数据库H2
Apache Tiles
Apache Tiles是开源的模板技术框架,它可以和spring mvc完美结合,和其他MVC框架也可以支持。
i18n国际化支持
该程序支持英语和法语,spring:message标签可以在jspx中实现国际化语言支持,该文件在src/main/webapp/WEB-INF/i18n文件夹下
Validation
JSR-349 Bean Validation API在domain层利用,该图书的名称不能为空而且必须在5-100个大小。
原文:http://chrisbaileydeveloper.com/projects/springmvc/
猜你喜欢
- spring mvc简单的增删改查项目实例
- Spring MVC+Hibernate整合开发实现联系人的增删改查入门实例
- Spring MVC+EXT JS开发简单的增删改查入门实例
- SpringMVC的三种统一异常处理实例代码分享
- springMVC注解与hibernate完美结合完成基本的增删改查demo源码下载
- Spring MVC+Hibernate+Mysql+bootstrap整合开发的用户增删改查的简单实例
- 简单的ssh实现的注册登录增删改查图书管理系统
- AngularJS+Spring MVC+bootstrap实现用户的增删改查实例
- Spring 4 MVC + Hibernate 4 + Maven开发用户增删改查入门实例
- spring MVC+spring+mybatis整合增删改查入门实例
- SpringMvc整合Mybatis搭建java Web入门项目实例,是基于MAVEN的java web工程
- java控制台开发图书后台管理系统,实现图书的增删改查,数据库用的是MySQL
- /
- /SpringMVC4-SpringDataJPA-jqueryUI
- /SpringMVC4-SpringDataJPA-jqueryUI/.classpath
- /SpringMVC4-SpringDataJPA-jqueryUI/.gitignore
- /SpringMVC4-SpringDataJPA-jqueryUI/.project
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings/.jsdtscope
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings/org.eclipse.core.resources.prefs
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings/org.eclipse.jdt.core.prefs
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings/org.eclipse.m2e.core.prefs
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings/org.eclipse.wst.common.component
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings/org.eclipse.wst.common.project.facet.core.xml
- /SpringMVC4-SpringDataJPA-jqueryUI/.settings/org.eclipse.wst.jsdt.ui.superType.container
- /SpringMVC4-SpringDataJPA-jqueryUI
- 证精 基于浏览器首选语言的springmvc和freemarker国际化配置的实现
- 原 基于maven与springMVC的拦截器Interceptor,控制器Controller的使用
- springmvc @RequestMapping注解的入门配置教程
- 精 SpringMVC的三种统一异常处理实例代码分享
- 证精 bootstrap jquery underscore backbone 新浪微博 springmvc整合demo代码
- 精 spring mvc-showcase,便于学习springmvc,maven工程,建议使用谷歌浏览器
- 原证精 springmvc @RequestMapping注解伪静态技术
- 原 springMVC注解与hibernate完美结合完成基本的增删改查demo源码下载
- 原 SpringMVC整合Redis demo小例子
- 原证精 java Web SpringMVC项目实现12306余票查询功能
- 原证 springmvc开发微信公众平台验证token接口教程及其java源代码分享
- 原 SpringMvc整合Mybatis搭建java Web入门项目实例,是基于MAVEN的java web工程