做个开心的码农 发表于 2024-12-6 09:35:57

java

实验九: 应用JDBC访问数据库(4学时)
实验目的
1、        熟悉使用JDBC来进行数据库应用程序的设计
2、        熟悉通过JDBC接口编程访问数据库并对数据库进行操作
实验内容
创建一个名为Books的数据库,并在其中建立一个名为book_message的表,字段包括书名、作者、出版社、出版时间和价格。编写一个应用程序,实现对该数据库中数据的添加、修改、删除和查询功能。

源代码:

实验运行截图

实验十: 多线程编程(2学时)
实验目的
1、了解线程的调度和执行过程,掌握Java 语言中多线程编程的基本方法
2、掌握Runnable 接口实现多线程的方法
3、掌握Thread 类实现多线程的用法
实验内容
采用多线程机制模拟汇款业务。定义一银行类可接受顾客的汇款,其属性count用于存储账户金额。现有两名顾客,每人分三次、每次100元将钱汇入count。每进行一次汇款,便输出汇款人和账户总额。

算法描述及实验步骤:

源代码:

实验运行截图:
实验小结

FishC 发表于 2024-12-6 09:42:22


实验九: 应用JDBC访问数据库(4学时)

实验目的
1、熟悉使用JDBC来进行数据库应用程序的设计
2、熟悉通过JDBC接口编程访问数据库并对数据库进行操作

实验内容
创建一个名为Books的数据库,并在其中建立一个名为book_message的表,字段包括书名、作者、出版社、出版时间和价格。编写一个应用程序,实现对该数据库中数据的添加、修改、删除和查询功能。

源代码:
请在此处插入您的Java代码。

实验运行截图
请在此处插入实验运行的截图。

实验十: 多线程编程(2学时)

实验目的
1、了解线程的调度和执行过程,掌握Java 语言中多线程编程的基本方法
2、掌握Runnable 接口实现多线程的方法
3、掌握Thread 类实现多线程的用法

实验内容
采用多线程机制模拟汇款业务。定义一银行类可接受顾客的汇款,其属性count用于存储账户金额。现有两名顾客,每人分三次、每次100元将钱汇入count。每进行一次汇款,便输出汇款人和账户总额。

算法描述及实验步骤:
请在此处插入算法描述及实验步骤。

源代码:
请在此处插入您的Java代码。

实验运行截图:
请在此处插入实验运行的截图。

实验小结
请在此处插入实验小结。


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

做个开心的码农 发表于 2024-12-13 08:12:58

FishC 发表于 2024-12-6 09:42
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

写出相应的java代码

FishC 发表于 2024-12-13 08:13:14

做个开心的码农 发表于 2024-12-13 08:12
写出相应的java代码

好的,下面是关于实验九和实验十的示例代码。

**实验九:使用JDBC访问数据库**

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class BookDatabaseDemo {
    public static void main(String[] args) {
      String url = "jdbc:mysql://localhost:3306/Books"; // 数据库连接URL
      String user = "root"; // 数据库用户名
      String password = "yourpassword"; // 数据库密码

      try {
            Connection connection = DriverManager.getConnection(url, user, password);
            Statement statement = connection.createStatement();

            // 插入数据
            String insertSql = "INSERT INTO book_message (书名, 作者, 出版社, 出版时间, 价格) "
                           + "VALUES ('Java编程', 'FishC', '清华大学出版社', '2021-10-10', 59.9)";
            statement.executeUpdate(insertSql);

            // 更新数据
            String updateSql = "UPDATE book_message SET 价格 = 49.9 WHERE 书名 = 'Java编程'";
            statement.executeUpdate(updateSql);

            // 查询数据
            String querySql = "SELECT * FROM book_message";
            ResultSet resultSet = statement.executeQuery(querySql);
            while (resultSet.next()) {
                System.out.println("书名: " + resultSet.getString("书名"));
                System.out.println("作者: " + resultSet.getString("作者"));
                System.out.println("出版社: " + resultSet.getString("出版社"));
                System.out.println("出版时间: " + resultSet.getString("出版时间"));
                System.out.println("价格: " + resultSet.getDouble("价格"));
            }

            // 删除数据
            String deleteSql = "DELETE FROM book_message WHERE 书名 = 'Java编程'";
            statement.executeUpdate(deleteSql);

            statement.close();
            connection.close();
      } catch (Exception e) {
            e.printStackTrace();
      }
    }
}

**实验十:多线程编程**

class Bank {
    private int count = 0;

    public synchronized void deposit(String customer, int amount) {
      count += amount;
      System.out.println(customer + "汇款: " + amount + "元,账户总额: " + count + "元");
    }
}

class Customer implements Runnable {
    private Bank bank;
    private String customerName;

    public Customer(Bank bank, String customerName) {
      this.bank = bank;
      this.customerName = customerName;
    }

    public void run() {
      for (int i = 0; i < 3; i++) {
            bank.deposit(customerName, 100);
      }
    }
}

public class BankingSimulation {
    public static void main(String[] args) {
      Bank bank = new Bank();

      Thread customer1 = new Thread(new Customer(bank, "顾客1"));
      Thread customer2 = new Thread(new Customer(bank, "顾客2"));

      customer1.start();
      customer2.start();
    }
}

请确保您已经安装并正确配置了MySQL数据库(或使用其他类型的数据库并调整代码中的连接字符串)以运行实验九的代码。实验十的代码不依赖于数据库,可以直接运行。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

做个开心的码农 发表于 2024-12-13 08:43:05

FishC 发表于 2024-12-13 08:13
好的,下面是关于实验九和实验十的示例代码。

**实验九:使用JDBC访问数据库**


算法描述及实验步骤:

FishC 发表于 2024-12-13 08:43:20

做个开心的码农 发表于 2024-12-13 08:43
算法描述及实验步骤:

**实验九:使用JDBC访问数据库**

**算法描述及实验步骤:**

1. **加载数据库驱动程序**:使用`Class.forName()`方法加载MySQL驱动程序。
   
2. **建立数据库连接**:使用`DriverManager.getConnection()`方法与数据库建立连接,传入数据库的URL、用户名和密码。

3. **创建Statement对象**:通过连接对象的`createStatement()`方法来创建用于执行SQL语句的Statement对象。

4. **执行SQL语句**:
   - **插入数据**:使用`executeUpdate()`方法进行数据插入操作。
   - **更新数据**:使用`executeUpdate()`方法进行数据更新操作。
   - **查询数据**:使用`executeQuery()`方法执行查询,并通过ResultSet对象处理结果集。
   - **删除数据**:使用`executeUpdate()`方法进行删除操作。
   
5. **处理结果集**:对于查询操作,遍历ResultSet对象以获取查询结果并输出各字段信息。

6. **关闭资源**:在完成数据库操作后,关闭Statement和Connection对象以释放资源。

**实验十:多线程编程**

**算法描述及实验步骤:**

1. **定义银行类**:创建一个`Bank`类用于管理账户金额,该类包含一个属性`count`用于存储账户总额,并提供一个同步的方法`deposit()`进行汇款操作。

2. **定义顾客类**:实现`Runnable`接口,创建`Customer`类,负责模拟顾客进行汇款的行为。该类包含`run()`方法,在其中实现循环汇款操作。

3. **创建银行对象**:在主程序中,创建一个`Bank`对象以共享银行资源。

4. **创建并启动线程**:
   - 创建两个`Thread`对象,每个对象分别关联一个`Customer`实例。
   - 启动线程以模拟多个顾客同时进行汇款操作。

5. **同步处理**:在`deposit()`方法中使用`synchronized`关键字,保证多线程环境下对共享资源的同步访问,以防止数据不一致问题。

通过上述步骤,您将能够体验到如何通过JDBC接口来进行数据库操作,以及如何在Java中通过多线程机制来处理并发问题。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: java