我使用 Spring MVC 3、Hibernate 和 Ext Js 4 创建了一个应用程序。问题是当我启动应用程序时,没有从数据库中读取数据。
BookController.java:
@Controller
public class BookController {
private BookService bookService;
@RequestMapping(value="/books/view.action")
public @ResponseBody Map<String,? extends Object> view(@RequestParam int start, @RequestParam int limit) throws Exception {
try{
List<Book> books = bookService.getBookList(start,limit);
int total = bookService.getTotalBooks();
return ExtJSReturn.mapOK(books, total);
} catch (Exception e) {
return ExtJSReturn.mapError("Error retrieving books from database.");
}
}
图书服务.java:
@Service
public class BookService {
private BookDAO bookDAO;
/**
* Get all books
* @return
*/
@Transactional(readOnly=true)
public List<Book> getBookList(int start, int limit){
return bookDAO.getBooks(start, limit);
}
public int getTotalBooks(){
return bookDAO.getTotalBooks();
}
BookDAO.java:
@SuppressWarnings("unchecked")
public List<Book> getBooks(int start, int limit) {
DetachedCriteria criteria = DetachedCriteria.forClass(Book.class);
return hibernateTemplate.findByCriteria(criteria, start, limit);
}
public int getTotalBooks(){
return DataAccessUtils.intResult(hibernateTemplate.find("SELECT COUNT(*) FROM books"));
}
书.java:
@JsonAutoDetect
@Entity
@Table(name="books")
public class Book {
@Id
@GeneratedValue
@Column(name="id")
private int id;
@Column(name="title", nullable=false)
private String title;
@Column(name="author", nullable=false)
private String author;
@Column(name="publisher", nullable=false)
private String publisher;
@Column(name="isbn", nullable=false)
private String isbn;
@Column(name="pages", nullable=false)
private int pages;
@Column(name="category", nullable=false)
private String category;
@Column(name="qty", nullable=false)
private int qty;
/**
* @return the title
*/
public String getTitle() {
return title;
}
/**
* @param title the title to set
*/
public void setTitle(String title) {
this.title = title;
}
/**
* @return the author
*/
public String getAuthor() {
return author;
}
/**
* @param author the author to set
*/
public void setAuthor(String author) {
this.author = author;
}
/**
* @return the publisher
*/
public String getPublisher() {
return publisher;
}
/**
* @param publisher the publisher to set
*/
public void setPublisher(String publisher) {
this.publisher = publisher;
}
/**
* @return the isbn
*/
public String getIsbn() {
return isbn;
}
/**
* @param isbn the isbn to set
*/
public void setIsbn(String isbn) {
this.isbn = isbn;
}
/**
* @return the pages
*/
public int getPages() {
return pages;
}
/**
* @param pages the pages to set
*/
public void setPages(int pages) {
this.pages = pages;
}
/**
* @return the category
*/
public String getCategory() {
return category;
}
/**
* @param category the category to set
*/
public void setCategory(String category) {
this.category = category;
}
/**
* @return the qty
*/
public int getQty() {
return qty;
}
/**
* @param qty the qty to set
*/
public void setQty(int qty) {
this.qty = qty;
}
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
}
ExtJsReturn.java:
@Component
public class ExtJSReturn {
/**
* Generates modelMap to return in the modelAndView
* @param books
* @return
*/
public static Map<String,Object> mapOK(List<Book> books){
Map<String,Object> modelMap = new HashMap<String,Object>(3);
modelMap.put("total", books.size());
modelMap.put("data", books);
modelMap.put("success", true);
return modelMap;
}
/**
* Generates modelMap to return in the modelAndView
* @param books
* @return
*/
public static Map<String,Object> mapOK(List<Book> books, int total){
Map<String,Object> modelMap = new HashMap<String,Object>(3);
modelMap.put("total", total);
modelMap.put("data", books);
modelMap.put("success", true);
return modelMap;
}
/**
* Generates modelMap to return in the modelAndView in case
* of exception
* @param msg message
* @return
*/
public static Map<String,Object> mapError(String msg){
Map<String,Object> modelMap = new HashMap<String,Object>(2);
modelMap.put("message", msg);
modelMap.put("success", false);
return modelMap;
}
}
控制器引发错误:从数据库中检索书籍时出错。你知道可能是什么问题吗?请参阅此处的控制台输出: http: //pastebin.com/jMQKS31P
固定的!!!