2、 设计图书视图view_book,并修改BookManager类中相关代码。 第一步:建立图书视图,要求视图中包含出版社名称; 第二步:改造BookManager类,将其中的连接查询用视图代替。 第三步:运行图书管理系统,进行各个功能的测试 【实验结果与分析】 A、 写出视图创建代码。 B、 给出改造后ReaderManager类的各个方法的代码。
时间: 2024-02-20 13:00:18 浏览: 228
A、视图创建代码如下:
```sql
CREATE VIEW view_book AS
SELECT book.*, publisher.publisher_name
FROM book
JOIN publisher ON book.publisher_id = publisher.id;
```
B、BookManager类的各个方法代码如下:
```java
public class BookManager {
// 省略其他代码
// 获取图书列表
public List<Book> getBookList() {
List<Book> bookList = new ArrayList<>();
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
conn = DBUtil.getConnection();
String sql = "SELECT * FROM view_book";
stmt = conn.prepareStatement(sql);
rs = stmt.executeQuery();
while (rs.next()) {
Book book = new Book();
book.setId(rs.getInt("id"));
book.setName(rs.getString("name"));
book.setAuthor(rs.getString("author"));
book.setPrice(rs.getDouble("price"));
book.setPublishDate(rs.getDate("publish_date"));
book.setPublisher(new Publisher(rs.getInt("publisher_id"), rs.getString("publisher_name")));
bookList.add(book);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn, stmt, rs);
}
return bookList;
}
// 省略其他方法
}
```
经过改造后,BookManager类的各个方法中查询图书的SQL语句都被替换成了查询视图view_book的语句。这样做的好处在于,如果需要在图书列表中显示出版社名称,只需要修改视图即可,不需要修改所有查询图书的SQL语句,减少了代码维护的难度。
阅读全文