Java
Warning
SingleStore 9.0 gives you the opportunity to preview, evaluate, and provide feedback on new and upcoming features prior to their general availability. In the interim, SingleStore 8.9 is recommended for production workloads, which can later be upgraded to SingleStore 9.0.
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