最代码官方的gravatar头像
最代码官方2015-10-07 11:26:59

Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例

项目截图

Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例

Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例

Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例

程序概述

该程序可以实现对图书的增删该查功能,所有的图书都会显示在首页。

Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例

当你在首页点击某一个图书后会进入图书详情页面。

Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例

点击编辑图书可以进入编辑页面

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>

Spring MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例

持久层

该程序最主要的持久层对象就是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 MVC4+SpringData JPA+jqueryUI开发简单的图书增删改查入门实例.rar,文件大小:3327.908K下载
  • /
      • /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
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友