基于Restful和Spring实现图书管理系统,要求有用户登录注册、借书服务、还书服务,以及简单的前端界面,给出具体代码
时间: 2024-02-22 12:58:49 浏览: 25
好的,以下是一个基于Restful和Spring实现图书管理系统的示例代码:
1. 首先,我们需要定义一个Book类,表示图书信息:
```java
public class Book {
private long id;
private String title;
private String author;
private String publisher;
// ... 其他属性和getter/setter方法
}
```
2. 然后,我们需要定义一个BookController类,用于处理图书相关的请求:
```java
@RestController
@RequestMapping("/books")
public class BookController {
private List<Book> books = new ArrayList<>();
@GetMapping("")
public List<Book> getAllBooks() {
return books;
}
@PostMapping("")
public Book addBook(@RequestBody Book book) {
book.setId(System.currentTimeMillis());
books.add(book);
return book;
}
@GetMapping("/{id}")
public Book getBook(@PathVariable long id) {
for (Book book : books) {
if (book.getId() == id) {
return book;
}
}
return null;
}
@PutMapping("/{id}")
public Book updateBook(@PathVariable long id, @RequestBody Book book) {
for (Book b : books) {
if (b.getId() == id) {
b.setTitle(book.getTitle());
b.setAuthor(book.getAuthor());
b.setPublisher(book.getPublisher());
// ... 更新其他属性
return b;
}
}
return null;
}
@DeleteMapping("/{id}")
public void deleteBook(@PathVariable long id) {
books.removeIf(book -> book.getId() == id);
}
}
```
3. 我们还需要定义一个UserController类,用于处理用户相关的请求:
```java
@RestController
@RequestMapping("/users")
public class UserController {
private Map<String, String> users = new HashMap<>();
@PostMapping("/register")
public void register(@RequestParam String username, @RequestParam String password) {
if (!users.containsKey(username)) {
users.put(username, password);
} else {
throw new RuntimeException("User already exists");
}
}
@PostMapping("/login")
public void login(@RequestParam String username, @RequestParam String password) {
if (users.containsKey(username) && users.get(username).equals(password)) {
// 登录成功,可以返回一些用户信息
} else {
throw new RuntimeException("Invalid username or password");
}
}
}
```
4. 最后,我们可以编写一个简单的HTML页面来展示图书列表和提供借书、还书功能:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图书管理系统</title>
</head>
<body>
<h1>图书列表</h1>
<ul id="bookList"></ul>
<h2>借书</h2>
<form>
<label for="bookId">图书ID:</label>
<input type="text" id="bookId" name="bookId"><br>
<label for="username">用户名:</label>
<input type="text" id="username" name="username"><br>
<button type="button" onclick="borrowBook()">借阅</button>
</form>
<h2>还书</h2>
<form>
<label for="bookId">图书ID:</label>
<input type="text" id="bookId" name="bookId"><br>
<button type="button" onclick="returnBook()">归还</button>
</form>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$.get("/books", function(data) {
let bookList = $("#bookList");
for (let book of data) {
bookList.append(`<li>${book.title}(${book.author})</li>`);
}
});
function borrowBook() {
let bookId = $("#bookId").val();
let username = $("#username").val();
$.post(`/books/${bookId}/borrow`, {username: username}, function() {
alert("借书成功");
});
}
function returnBook() {
let bookId = $("#bookId").val();
$.post(`/books/${bookId}/return`, function() {
alert("还书成功");
});
}
</script>
</body>
</html>
```
以上就是一个基于Restful和Spring实现的图书管理系统示例代码。需要注意的是,示例代码中并没有对借还书的业务逻辑进行详细实现,仅提供了一个简单的示例。实际开发中,需要根据具体需求进行更加完整和严谨的实现。