java 创建一个名为Books的数据库,并在其中建立一个名为book_message的表,字段包括书名、作者、出版社、出版时间和价格。编写一个应用程序,用预处理方式在该数据库中实现增加、删除和修改数据以及查询的基本功能。
时间: 2023-12-14 11:38:17 浏览: 326
要求: 在数据库创建一个名为BookStore的数据库,在BookStore数据库中添加一个BookInfo表用于存储图书信息表
好的,以下是实现该功能的步骤:
1. 首先需要安装并配置好使用Java操作数据库的环境,例如JDBC驱动、数据库连接等。
2. 创建一个名为Books的数据库,可以使用如下SQL语句:
```
CREATE DATABASE Books;
```
3. 在Books数据库中创建一个名为book_message的表,字段包括书名、作者、出版社、出版时间和价格,可以使用如下SQL语句:
```
CREATE TABLE book_message (
id INT NOT NULL AUTO_INCREMENT,
book_name VARCHAR(50) NOT NULL,
author VARCHAR(50) NOT NULL,
publisher VARCHAR(50) NOT NULL,
publish_time DATE NOT NULL,
price DOUBLE NOT NULL,
PRIMARY KEY (id)
);
```
4. 编写Java应用程序,连接数据库,使用预处理方式实现增加、删除和修改数据以及查询的基本功能。下面是一个示例代码:
```java
import java.sql.*;
public class BooksApp {
private static final String DB_URL = "jdbc:mysql://localhost:3306/Books?serverTimezone=UTC";
private static final String USER = "root";
private static final String PASSWORD = "123456";
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
// 连接数据库
conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
// 增加数据
String insertSql = "INSERT INTO book_message(book_name, author, publisher, publish_time, price) VALUES (?, ?, ?, ?, ?)";
pstmt = conn.prepareStatement(insertSql);
pstmt.setString(1, "Java编程思想");
pstmt.setString(2, "Bruce Eckel");
pstmt.setString(3, "机械工业出版社");
pstmt.setDate(4, java.sql.Date.valueOf("2019-01-01"));
pstmt.setDouble(5, 89.00);
int rowsInserted = pstmt.executeUpdate();
System.out.println(rowsInserted + " rows inserted.");
// 查询数据
String selectSql = "SELECT * FROM book_message WHERE publisher = ?";
pstmt = conn.prepareStatement(selectSql);
pstmt.setString(1, "机械工业出版社");
rs = pstmt.executeQuery();
while (rs.next()) {
System.out.println("id: " + rs.getInt("id"));
System.out.println("book_name: " + rs.getString("book_name"));
System.out.println("author: " + rs.getString("author"));
System.out.println("publisher: " + rs.getString("publisher"));
System.out.println("publish_time: " + rs.getDate("publish_time"));
System.out.println("price: " + rs.getDouble("price"));
}
// 修改数据
String updateSql = "UPDATE book_message SET price = ? WHERE book_name = ?";
pstmt = conn.prepareStatement(updateSql);
pstmt.setDouble(1, 99.00);
pstmt.setString(2, "Java编程思想");
int rowsUpdated = pstmt.executeUpdate();
System.out.println(rowsUpdated + " rows updated.");
// 删除数据
String deleteSql = "DELETE FROM book_message WHERE publisher = ?";
pstmt = conn.prepareStatement(deleteSql);
pstmt.setString(1, "机械工业出版社");
int rowsDeleted = pstmt.executeUpdate();
System.out.println(rowsDeleted + " rows deleted.");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 释放资源
try {
if (rs != null) rs.close();
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
注意,上述代码中的DB_URL、USER和PASSWORD需要根据实际情况进行修改。可以根据需要添加异常处理、用户输入等功能。
阅读全文