Java
Dependencies
-
JDBC library (package
libmysql-java
on Debian-based distributions)
Code
import java.sql.*;import java.util.Properties;import java.util.concurrent.*;public class Sample {private static final String dbClassName = "com.mysql.jdbc.Driver";private static final String CONNECTION = "jdbc:mysql://127.0.0.1:3306/";private static final String USER = "root";private static final String PASSWORD = "";private static void executeSQL(Connection conn, String sql) throws SQLException {try (Statement stmt = conn.createStatement()) {stmt.execute(sql);}}private static void ResetEnvironment() throws SQLException {Properties p = new Properties();p.put("user", USER);p.put("password", PASSWORD);try (Connection conn = DriverManager.getConnection(CONNECTION, p)) {for (String query: new String[] {"DROP DATABASE IF EXISTS test","CREATE DATABASE test","USE test","CREATE TABLE tbl (id INT AUTO_INCREMENT PRIMARY KEY)"}) {executeSQL(conn, query);}}}private static void worker() {Properties properties = new Properties();properties.put("user", USER);properties.put("password", PASSWORD);try (Connection conn = DriverManager.getConnection(CONNECTION, properties)) {executeSQL(conn, "USE test");while (!Thread.interrupted()) {executeSQL(conn, "INSERT INTO tbl VALUES (NULL)");}} catch (SQLException e) {e.printStackTrace();}}public static void main(String[] args) throws ClassNotFoundException, SQLException, InterruptedException {Class.forName(dbClassName);ResetEnvironment();ExecutorService executor = Executors.newFixedThreadPool(20);for (int i = 0; i < 20; i++) {executor.submit(new Runnable() {@Overridepublic void run() {worker();}});}Thread.sleep(20000);executor.shutdownNow();if (!executor.awaitTermination(5, TimeUnit.SECONDS)) {System.err.println("Pool did not terminate");}}}
Last modified: July 26, 2023