while(rs.next()){ Book b = new Book(); b.setId(rs.getInt("id"));
时间: 2024-05-22 20:11:01 浏览: 12
这是一个 Java 代码片段,使用 JDBC 从数据库中读取数据。`rs.next()` 方法用于移动结果集中的指针,以便访问下一行数据。在每次循环中,我们实例化一个 `Book` 对象,并将其属性设置为从结果集中获取的值。`rs.getInt("id")` 是从结果集中获取 `id` 列的值,并将其转换为整数。
相关问题
while(rs.next()){ System.out.println("---"); book = new Book(); book.setBookid(rs.getInt(1)); book.setName(rs.getString(2)); book.setPress(rs.getString(3)); book.setAuthor(rs.getString(4)); book.setStatus(rs.getString(5)); books.add(book); } }catch(SQLException e){ e.printStackTrace(); }什么意思
这段代码是在使用 JDBC 从数据库中查询图书信息,并将查询结果存储在一个 `books` 列表中。具体来说,代码的逻辑如下:
1. 执行 SQL 查询语句,获取数据库的查询结果 `rs`。
2. 在 `while` 循环中,遍历查询结果中的每一条记录。
3. 对于每个记录,创建一个新的 `Book` 对象,并设置它的属性值(即从查询结果中获取的图书信息)。
4. 将每个 `Book` 对象添加到 `books` 列表中。
5. 如果在查询过程中出现错误,则打印出错误信息。
在这段代码中,`Book` 对象是一个自定义的 Java 类型,它的属性包括书籍 ID、书名、出版社、作者和状态等信息。`books` 是一个列表,用于存储从数据库中查询到的所有图书信息。
2、 设计图书视图view_book,并修改BookManager类中相关代码。 第一步:建立图书视图,要求视图中包含出版社名称; 第二步:改造BookManager类,将其中的连接查询用视图代替。 第三步:运行图书管理系统,进行各个功能的测试 【实验结果与分析】 A、 写出视图创建代码。 B、 给出改造后ReaderManager类的各个方法的代码。
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语句,减少了代码维护的难度。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)