OneCompiler

ja7

239
  1. Write a java program that implements a multi-thread application that has three threads.
    First thread generates random integer number after every one second, if the number is
    even; second thread computes the square of that number and print it. If the number is
    odd, the third thread computes the of cube of that number and print it. [15 M]
    import java.util.Random;

public class MultiThreadApplication {
public static void main(String[] args) {
NumberGeneratorThread generatorThread = new NumberGeneratorThread();
SquareCalculatorThread squareThread = new SquareCalculatorThread(generatorThread);
CubeCalculatorThread cubeThread = new CubeCalculatorThread(generatorThread);

    generatorThread.start();
    squareThread.start();
    cubeThread.start();
}

}

class NumberGeneratorThread extends Thread {
private Random random = new Random();

@Override
public void run() {
    try {
        while (true) {
            Thread.sleep(1000);
            int number = random.nextInt(100);
            System.out.println("Generated number: " + number);
            synchronized (this) {
                notifyAll();
            }
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

synchronized int getNumber() throws InterruptedException {
    wait();
    return random.nextInt(100);
}

}

class SquareCalculatorThread extends Thread {
private NumberGeneratorThread generatorThread;

SquareCalculatorThread(NumberGeneratorThread generatorThread) {
    this.generatorThread = generatorThread;
}

@Override
public void run() {
    try {
        while (true) {
            int number = generatorThread.getNumber();
            if (number % 2 == 0) {
                int square = number * number;
                System.out.println("Square of " + number + ": " + square);
            }
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

}

class CubeCalculatorThread extends Thread {
private NumberGeneratorThread generatorThread;

CubeCalculatorThread(NumberGeneratorThread generatorThread) {
    this.generatorThread = generatorThread;
}

@Override
public void run() {
    try {
        while (true) {
            int number = generatorThread.getNumber();
            if (number % 2 != 0) {
                int cube = number * number * number;
                System.out.println("Cube of " + number + ": " + cube);
            }
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

}

  1. Write a java program for the following:
    i. To create a Product(Pid, Pname, Price) table.
    ii. Insert at least five records into the table.
    iii. Display all the records from a table.
    import java.sql.*;

public class ProductDatabase {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "username";
String password = "password";

    try (Connection connection = DriverManager.getConnection(url, username, password)) {
        // Create Product table
        String createTableQuery = "CREATE TABLE Product (Pid INT PRIMARY KEY, Pname VARCHAR(50), Price DOUBLE)";
        try (Statement statement = connection.createStatement()) {
            statement.executeUpdate(createTableQuery);
        }

        // Insert records
        String[] products = {"Laptop", "Phone", "Tablet", "Headphones", "Keyboard"};
        double[] prices = {1000.0, 500.0, 300.0, 100.0, 50.0};
        String insertQuery = "INSERT INTO Product (Pid, Pname, Price) VALUES (?, ?, ?)";
        try (PreparedStatement preparedStatement = connection.prepareStatement(insertQuery)) {
            for (int i = 0; i < products.length; i++) {
                preparedStatement.setInt(1, i + 1);
                preparedStatement.setString(2, products[i]);
                preparedStatement.setDouble(3, prices[i]);
                preparedStatement.executeUpdate();
            }
        }

        // Display all records
        String selectQuery = "SELECT * FROM Product";
        try (Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery(selectQuery)) {
            System.out.println("Product Table:");
            System.out.println("Pid\tPname\tPrice");
            while (resultSet.next()) {
                int pid = resultSet.getInt("Pid");
                String pname = resultSet.getString("Pname");
                double price = resultSet.getDouble("Price");
                System.out.println(pid + "\t" + pname + "\t" + price);
            }
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

}