用sql serve作为后端 java作为前端设计一个图书借还系统
时间: 2023-11-21 13:05:08 浏览: 49
好的,首先我们需要设计数据库的表结构,可以考虑以下几个表:
1. 书籍表(book):包含书籍的基本信息,如书名、作者、出版社、出版日期等。
2. 用户表(user):包含用户的基本信息,如用户名、密码、借书数等。
3. 借阅表(borrow):记录用户借阅书籍的情况,包含借阅日期、归还日期、借阅状态等。
4. 管理员表(admin):记录管理员的信息,如用户名、密码等。
下面是这些表的具体设计:
1. 书籍表(book)设计:
| 字段名 | 类型 | 说明 |
| ---------- | ------------ | -------------- |
| book_id | int | 书籍编号(主键) |
| book_name | varchar(100) | 书籍名称 |
| author | varchar(50) | 作者 |
| publisher | varchar(50) | 出版社 |
| pub_date | date | 出版日期 |
| price | float | 价格 |
| total_nums | int | 总数量 |
| current_nums | int | 当前数量 |
2. 用户表(user)设计:
| 字段名 | 类型 | 说明 |
| ----------- | ------------ | ------------------ |
| user_id | int | 用户编号(主键) |
| user_name | varchar(50) | 用户名 |
| password | varchar(50) | 密码 |
| borrowed_nums | int | 已借阅书籍数量 |
| max_borrowed_nums | int | 最多可借阅数量 |
3. 借阅表(borrow)设计:
| 字段名 | 类型 | 说明 |
| ----------- | ------------ | ------------------ |
| borrow_id | int | 借阅编号(主键) |
| user_id | int | 用户编号(外键) |
| book_id | int | 书籍编号(外键) |
| borrow_date | date | 借阅日期 |
| return_date | date | 归还日期 |
| borrow_status | int | 借阅状态(0:未归还,1:已归还) |
4. 管理员表(admin)设计:
| 字段名 | 类型 | 说明 |
| ----------- | ------------ | ------------------ |
| admin_id | int | 管理员编号(主键) |
| admin_name | varchar(50) | 管理员名称 |
| password | varchar(50) | 密码 |
接下来,我们可以使用 Java 进行前端开发,使用 JDBC 进行后端与数据库的交互。具体实现过程如下:
1. 首先,我们需要连接数据库,可以使用以下代码:
```
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://localhost:1433;DatabaseName=library";
String user = "sa";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
```
2. 为了方便操作数据库,我们可以创建一个 DAO(数据访问对象)类,该类中包含了常用的增删改查方法。例如,查询书籍信息的方法可以如下所示:
```
public Book queryBookById(int bookId) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Book book = null;
try {
conn = JDBCUtils.getConnection();
String sql = "select * from book where book_id=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, bookId);
rs = pstmt.executeQuery();
if (rs.next()) {
book = new Book();
book.setBookId(rs.getInt("book_id"));
book.setBookName(rs.getString("book_name"));
book.setAuthor(rs.getString("author"));
book.setPublisher(rs.getString("publisher"));
book.setPubDate(rs.getDate("pub_date"));
book.setPrice(rs.getFloat("price"));
book.setTotalNums(rs.getInt("total_nums"));
book.setCurrentNums(rs.getInt("current_nums"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.release(conn, pstmt, rs);
}
return book;
}
```
3. 设计好 DAO 类之后,我们可以编写控制层(Servlet)和视图层(JSP)进行页面的渲染。例如,查询书籍信息的 Servlet 可以如下所示:
```
public class QueryBookServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int bookId = Integer.parseInt(request.getParameter("bookId"));
BookDao bookDao = new BookDao();
Book book = bookDao.queryBookById(bookId);
request.setAttribute("book", book);
request.getRequestDispatcher("book.jsp").forward(request, response);
}
}
```
在 JSP 页面中,我们可以使用 JSTL 标签库来渲染页面。例如,展示书籍信息的 JSP 页面可以如下所示:
```
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>图书信息</title>
</head>
<body>
<h1>${book.bookName}</h1>
<p>作者:${book.author}</p>
<p>出版社:${book.publisher}</p>
<p>出版日期:${book.pubDate}</p>
<p>价格:${book.price}</p>
<p>总数量:${book.totalNums}</p>
<p>当前数量:${book.currentNums}</p>
</body>
</html>
```
以上就是使用 SQL Server 作为后端,Java 作为前端设计图书借还系统的流程。