用ssm框架搭建一个图书管理系统,请写出详细的代码示例
时间: 2024-02-16 09:04:22 浏览: 125
好的,以下是一个简单的用SSM框架搭建的图书管理系统的代码示例:
1. 创建数据表
首先,我们需要在MySQL数据库中创建一张名为book的数据表,用于存储图书信息。表结构如下:
```
CREATE TABLE `book` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`author` varchar(255) DEFAULT NULL,
`price` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
2. 配置数据库连接
在项目的src/main/resources目录下创建一个名为jdbc.properties的配置文件,用于配置数据库连接信息。示例:
```
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456
```
3. 创建Book实体类
在项目的src/main/java目录下创建一个名为com.example.entity的包,用于存放实体类。创建一个名为Book的实体类,对应上面创建的book数据表。示例:
```
public class Book {
private Integer id;
private String name;
private String author;
private Double price;
// getter和setter方法省略
}
```
4. 创建BookMapper接口
在项目的src/main/java目录下创建一个名为com.example.mapper的包,用于存放Mapper接口。创建一个名为BookMapper的接口,用于操作book数据表。示例:
```
public interface BookMapper {
void addBook(Book book);
void deleteBook(Integer id);
void updateBook(Book book);
Book getBookById(Integer id);
List<Book> getBookList();
}
```
5. 创建BookMapper.xml文件
在项目的src/main/resources目录下创建一个名为mapper的文件夹,用于存放Mapper的xml文件。创建一个名为BookMapper.xml的文件,用于实现BookMapper接口中的方法。示例:
```
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.BookMapper">
<insert id="addBook" parameterType="com.example.entity.Book">
insert into book(name, author, price)
values(#{name}, #{author}, #{price})
</insert>
<delete id="deleteBook">
delete from book where id=#{id}
</delete>
<update id="updateBook" parameterType="com.example.entity.Book">
update book set name=#{name}, author=#{author}, price=#{price} where id=#{id}
</update>
<select id="getBookById" resultType="com.example.entity.Book">
select * from book where id=#{id}
</select>
<select id="getBookList" resultType="com.example.entity.Book">
select * from book
</select>
</mapper>
```
6. 创建BookService接口和实现类
在项目的src/main/java目录下创建一个名为com.example.service的包,用于存放Service接口和实现类。创建一个名为BookService的接口,用于定义操作book数据表的方法。然后创建一个名为BookServiceImpl的实现类,实现BookService接口。示例:
```
public interface BookService {
void addBook(Book book);
void deleteBook(Integer id);
void updateBook(Book book);
Book getBookById(Integer id);
List<Book> getBookList();
}
@Service
public class BookServiceImpl implements BookService {
@Autowired
private BookMapper bookMapper;
@Override
public void addBook(Book book) {
bookMapper.addBook(book);
}
@Override
public void deleteBook(Integer id) {
bookMapper.deleteBook(id);
}
@Override
public void updateBook(Book book) {
bookMapper.updateBook(book);
}
@Override
public Book getBookById(Integer id) {
return bookMapper.getBookById(id);
}
@Override
public List<Book> getBookList() {
return bookMapper.getBookList();
}
}
```
7. 创建BookController类
在项目的src/main/java目录下创建一个名为com.example.controller的包,用于存放Controller类。创建一个名为BookController的类,用于处理前端请求。示例:
```
@Controller
@RequestMapping("/book")
public class BookController {
@Autowired
private BookService bookService;
@RequestMapping("/list")
public String list(Model model) {
List<Book> bookList = bookService.getBookList();
model.addAttribute("bookList", bookList);
return "bookList";
}
@RequestMapping("/toAdd")
public String toAdd() {
return "bookAdd";
}
@RequestMapping("/add")
public String add(Book book) {
bookService.addBook(book);
return "redirect:/book/list";
}
@RequestMapping("/toEdit")
public String toEdit(Model model, Integer id) {
Book book = bookService.getBookById(id);
model.addAttribute("book", book);
return "bookEdit";
}
@RequestMapping("/edit")
public String edit(Book book) {
bookService.updateBook(book);
return "redirect:/book/list";
}
@RequestMapping("/delete")
public String delete(Integer id) {
bookService.deleteBook(id);
return "redirect:/book/list";
}
}
```
8. 创建前端页面
在项目的src/main/webapp目录下创建一个名为WEB-INF的文件夹,用于存放jsp页面。创建一个名为bookList.jsp的页面,用于展示图书列表。创建一个名为bookAdd.jsp的页面,用于添加图书。创建一个名为bookEdit.jsp的页面,用于编辑图书。示例:
bookList.jsp:
```
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>图书列表</title>
</head>
<body>
<h1>图书列表</h1>
<a href="${pageContext.request.contextPath}/book/toAdd">添加图书</a>
<table border="1">
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>价格</th>
<th>操作</th>
</tr>
<c:forEach items="${bookList}" var="book">
<tr>
<td>${book.id}</td>
<td>${book.name}</td>
<td>${book.author}</td>
<td>${book.price}</td>
<td>
<a href="${pageContext.request.contextPath}/book/toEdit?id=${book.id}">编辑</a>
<a href="${pageContext.request.contextPath}/book/delete?id=${book.id}">删除</a>
</td>
</tr>
</c:forEach>
</table>
</body>
</html>
```
bookAdd.jsp:
```
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加图书</title>
</head>
<body>
<h1>添加图书</h1>
<form action="${pageContext.request.contextPath}/book/add" method="post">
书名:<input type="text" name="name"><br>
作者:<input type="text" name="author"><br>
价格:<input type="text" name="price"><br>
<input type="submit" value="添加">
</form>
</body>
</html>
```
bookEdit.jsp:
```
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>编辑图书</title>
</head>
<body>
<h1>编辑图书</h1>
<form action="${pageContext.request.contextPath}/book/edit" method="post">
<input type="hidden" name="id" value="${book.id}">
书名:<input type="text" name="name" value="${book.name}"><br>
作者:<input type="text" name="author" value="${book.author}"><br>
价格:<input type="text" name="price" value="${book.price}"><br>
<input type="submit" value="保存">
</form>
</body>
</html>
```
至此,一个简单的用SSM框架搭建的图书管理系统就完成了。
阅读全文