给出基于ssm框架的简单图书管理系统的代码
时间: 2023-11-14 07:05:37 浏览: 45
以下是基于SSM框架的简单图书管理系统的代码示例。
1. 数据库建表语句
```sql
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`author` varchar(255) NOT NULL,
`price` double NOT NULL,
`publish` varchar(255) NOT NULL,
`pubdate` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
2. 实体类Book.java
```java
public class Book {
private Integer id;
private String name;
private String author;
private Double price;
private String publish;
private Date pubdate;
// 省略getter和setter方法
}
```
3. Dao接口BookDao.java
```java
public interface BookDao {
void addBook(Book book);
void updateBook(Book book);
void deleteBook(Integer id);
Book getBookById(Integer id);
List<Book> getAllBooks();
}
```
4. Dao实现类BookDaoImpl.java
```java
@Repository
public class BookDaoImpl implements BookDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void addBook(Book book) {
String sql = "INSERT INTO book(name, author, price, publish, pubdate) VALUES (?, ?, ?, ?, ?)";
jdbcTemplate.update(sql, book.getName(), book.getAuthor(), book.getPrice(), book.getPublish(), book.getPubdate());
}
@Override
public void updateBook(Book book) {
String sql = "UPDATE book SET name=?, author=?, price=?, publish=?, pubdate=? WHERE id=?";
jdbcTemplate.update(sql, book.getName(), book.getAuthor(), book.getPrice(), book.getPublish(), book.getPubdate(), book.getId());
}
@Override
public void deleteBook(Integer id) {
String sql = "DELETE FROM book WHERE id=?";
jdbcTemplate.update(sql, id);
}
@Override
public Book getBookById(Integer id) {
String sql = "SELECT * FROM book WHERE id=?";
return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<>(Book.class), id);
}
@Override
public List<Book> getAllBooks() {
String sql = "SELECT * FROM book";
return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Book.class));
}
}
```
5. Service接口BookService.java
```java
public interface BookService {
void addBook(Book book);
void updateBook(Book book);
void deleteBook(Integer id);
Book getBookById(Integer id);
List<Book> getAllBooks();
}
```
6. Service实现类BookServiceImpl.java
```java
@Service
public class BookServiceImpl implements BookService {
@Autowired
private BookDao bookDao;
@Override
public void addBook(Book book) {
bookDao.addBook(book);
}
@Override
public void updateBook(Book book) {
bookDao.updateBook(book);
}
@Override
public void deleteBook(Integer id) {
bookDao.deleteBook(id);
}
@Override
public Book getBookById(Integer id) {
return bookDao.getBookById(id);
}
@Override
public List<Book> getAllBooks() {
return bookDao.getAllBooks();
}
}
```
7. 控制器BookController.java
```java
@Controller
@RequestMapping("/book")
public class BookController {
@Autowired
private BookService bookService;
@GetMapping("/list")
public ModelAndView bookList() {
List<Book> bookList = bookService.getAllBooks();
ModelAndView mav = new ModelAndView("book_list");
mav.addObject("bookList", bookList);
return mav;
}
@GetMapping("/add")
public ModelAndView addBookPage() {
ModelAndView mav = new ModelAndView("book_add");
mav.addObject("book", new Book());
return mav;
}
@PostMapping("/add")
public String addBook(Book book) {
bookService.addBook(book);
return "redirect:/book/list";
}
@GetMapping("/update/{id}")
public ModelAndView updateBookPage(@PathVariable("id") Integer id) {
Book book = bookService.getBookById(id);
ModelAndView mav = new ModelAndView("book_update");
mav.addObject("book", book);
return mav;
}
@PostMapping("/update")
public String updateBook(Book book) {
bookService.updateBook(book);
return "redirect:/book/list";
}
@GetMapping("/delete/{id}")
public String deleteBook(@PathVariable("id") Integer id) {
bookService.deleteBook(id);
return "redirect:/book/list";
}
}
```
8. 视图文件
book_list.jsp
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>图书列表</title>
</head>
<body>
<h1>图书列表</h1>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>价格</th>
<th>出版社</th>
<th>出版日期</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${bookList}" var="book">
<tr>
<td>${book.id}</td>
<td>${book.name}</td>
<td>${book.author}</td>
<td>${book.price}</td>
<td>${book.publish}</td>
<td>${book.pubdate}</td>
<td>
<a href="/book/update/${book.id}">编辑</a>
<a href="/book/delete/${book.id}">删除</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<br>
<a href="/book/add">添加图书</a>
</body>
</html>
```
book_add.jsp
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加图书</title>
</head>
<body>
<h1>添加图书</h1>
<form action="/book/add" method="post">
<table>
<tr>
<td>书名:</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" /></td>
</tr>
<tr>
<td>价格:</td>
<td><input type="text" name="price" /></td>
</tr>
<tr>
<td>出版社:</td>
<td><input type="text" name="publish" /></td>
</tr>
<tr>
<td>出版日期:</td>
<td><input type="text" name="pubdate" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交" /></td>
</tr>
</table>
</form>
</body>
</html>
```
book_update.jsp
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>编辑图书</title>
</head>
<body>
<h1>编辑图书</h1>
<form action="/book/update" method="post">
<input type="hidden" name="id" value="${book.id}" />
<table>
<tr>
<td>书名:</td>
<td><input type="text" name="name" value="${book.name}" /></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" value="${book.author}" /></td>
</tr>
<tr>
<td>价格:</td>
<td><input type="text" name="price" value="${book.price}" /></td>
</tr>
<tr>
<td>出版社:</td>
<td><input type="text" name="publish" value="${book.publish}" /></td>
</tr>
<tr>
<td>出版日期:</td>
<td><input type="text" name="pubdate" value="${book.pubdate}" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交" /></td>
</tr>
</table>
</form>
</body>
</html>
```
book_delete.jsp
```jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>删除图书</title>
</head>
<body>
<h1>删除图书</h1>
<p>确定要删除该图书吗?</p>
<form action="/book/delete/${book.id}" method="get">
<input type="submit" value="确定" />
<a href="/book/list">取消</a>
</form>
</body>
</html>
```
以上是基于SSM框架的简单图书管理系统的代码示例,仅供参考。