java连接mysql实现图书表和读者表的建立,并输入至少5组数据,完成增删改查,数据图书表有外键约束和用户连接起来。
时间: 2024-03-08 19:46:25 浏览: 127
好的,下面是一个简单的Java连接MySQL实现图书表和读者表的建立,并输入至少5组数据,完成增删改查的示例代码:
首先,需要在MySQL中创建两个表:book和reader,并在book表中添加一个外键约束,将reader表和book表连接起来。
book表的结构:
```sql
CREATE TABLE book (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
author VARCHAR(50) NOT NULL,
price FLOAT NOT NULL,
reader_id INT NOT NULL,
FOREIGN KEY (reader_id) REFERENCES reader(id)
);
```
reader表的结构:
```sql
CREATE TABLE reader (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT NOT NULL,
gender VARCHAR(10) NOT NULL
);
```
接下来,创建一个Java类来实现连接MySQL、插入数据、删除数据、修改数据和查询数据的操作。
```java
import java.sql.*;
public class BookManager {
private Connection conn;
private Statement stmt;
// 连接数据库
public void connect() throws SQLException {
String url = "jdbc:mysql://localhost:3306/bookstore";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
}
// 关闭数据库连接
public void close() throws SQLException {
stmt.close();
conn.close();
}
// 插入图书信息
public void insertBook(String name, String author, float price, int reader_id) throws SQLException {
String sql = "INSERT INTO book(name, author, price, reader_id) VALUES('" + name + "', '" + author + "', " + price + ", " + reader_id + ")";
stmt.executeUpdate(sql);
}
// 插入读者信息
public void insertReader(String name, int age, String gender) throws SQLException {
String sql = "INSERT INTO reader(name, age, gender) VALUES('" + name + "', " + age + ", '" + gender + "')";
stmt.executeUpdate(sql);
}
// 删除图书信息
public void deleteBook(int id) throws SQLException {
String sql = "DELETE FROM book WHERE id = " + id;
stmt.executeUpdate(sql);
}
// 删除读者信息
public void deleteReader(int id) throws SQLException {
String sql = "DELETE FROM reader WHERE id = " + id;
stmt.executeUpdate(sql);
}
// 修改图书信息
public void updateBook(int id, String name, String author, float price, int reader_id) throws SQLException {
String sql = "UPDATE book SET name = '" + name + "', author = '" + author + "', price = " + price + ", reader_id = " + reader_id + " WHERE id = " + id;
stmt.executeUpdate(sql);
}
// 修改读者信息
public void updateReader(int id, String name, int age, String gender) throws SQLException {
String sql = "UPDATE reader SET name = '" + name + "', age = " + age + ", gender = '" + gender + "' WHERE id = " + id;
stmt.executeUpdate(sql);
}
// 查询图书信息
public void queryBook() throws SQLException {
String sql = "SELECT * FROM book";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String author = rs.getString("author");
float price = rs.getFloat("price");
int reader_id = rs.getInt("reader_id");
System.out.println("id: " + id + ", name: " + name + ", author: " + author + ", price: " + price + ", reader_id: " + reader_id);
}
}
// 查询读者信息
public void queryReader() throws SQLException {
String sql = "SELECT * FROM reader";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
String gender = rs.getString("gender");
System.out.println("id: " + id + ", name: " + name + ", age: " + age + ", gender: " + gender);
}
}
public static void main(String[] args) {
try {
BookManager manager = new BookManager();
manager.connect();
// 插入5条图书信息
manager.insertBook("Java编程思想", "Bruce Eckel", 99.9f, 1);
manager.insertBook("Effective Java", "Joshua Bloch", 88.8f, 2);
manager.insertBook("Head First设计模式", "Eric Freeman", 66.6f, 3);
manager.insertBook("深入理解Java虚拟机", "周志明", 77.7f, 4);
manager.insertBook("计算机网络", "谢希仁", 55.5f, 5);
// 插入5条读者信息
manager.insertReader("张三", 20, "男");
manager.insertReader("李四", 25, "女");
manager.insertReader("王五", 30, "男");
manager.insertReader("赵六", 35, "女");
manager.insertReader("钱七", 40, "男");
// 查询图书信息
manager.queryBook();
// 查询读者信息
manager.queryReader();
// 修改图书信息
manager.updateBook(1, "Java编程思想(第2版)", "Bruce Eckel", 109.9f, 2);
// 修改读者信息
manager.updateReader(1, "张三", 21, "男");
// 删除图书信息
manager.deleteBook(5);
// 删除读者信息
manager.deleteReader(5);
// 再次查询图书信息
manager.queryBook();
// 再次查询读者信息
manager.queryReader();
manager.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们定义了一个BookManager类来实现连接MySQL、插入数据、删除数据、修改数据和查询数据的操作。首先,我们需要实现connect()方法来连接MySQL数据库。然后,我们定义了insertBook()方法和insertReader()方法来插入图书信息和读者信息。接着,我们定义了deleteBook()方法和deleteReader()方法来删除图书信息和读者信息。然后,我们定义了updateBook()方法和updateReader()方法来修改图书信息和读者信息。最后,我们定义了queryBook()方法和queryReader()方法来查询图书信息和读者信息。
在main()方法中,我们创建了一个BookManager对象,然后调用connect()方法连接MySQL数据库。接着,我们插入了5条图书信息和5条读者信息,并查询了它们。然后,我们修改了第1条图书信息和第1条读者信息,并删除了第5条图书信息和第5条读者信息。最后,我们再次查询了图书信息和读者信息,并调用close()方法关闭数据库连接。
以上是一个简单的Java连接MySQL实现图书表和读者表的建立,并输入至少5组数据,完成增删改查的示例代码。
阅读全文