Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Test {
- public static void main(String[] args) throws InterruptedException {
- new Thread(new Thready("fuckthisshit")).start();
- new Thread(new Thready("fuckthisshit")).start();
- new Thread(new Thready("fuckthisshit")).start();
- new Thread(new Thready("fuckthisshit")).start();
- }
- static class Thready implements Runnable {
- private String name;
- public Thready(String name) {
- this.name = name;
- }
- @Override
- public void run() {
- try {
- Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/fp_db", "root", "root");
- connection.setAutoCommit(false);
- connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
- PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM users WHERE email =?");
- preparedStatement.setString(1, name);
- if (!preparedStatement.executeQuery().next()) {
- PreparedStatement preparedStatement1 = connection.prepareStatement("INSERT INTO users (email) VALUES (?)");
- preparedStatement1.setString(1, name);
- preparedStatement1.executeUpdate();
- preparedStatement1.close();
- }else {
- connection.rollback();
- }
- connection.commit();
- preparedStatement.close();
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- static class Thready implements Runnable {
- private static final String JDBC_URL = "jdbc:mysql://localhost:3306/fp_db";
- private static final String USERNAME = "root";
- private static final String PASSWORD = "root";
- private String name;
- public Thready(String name) {
- this.name = name;
- }
- @Override
- public void run() {
- try (Connection conn = DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD)) {
- conn.setAutoCommit(false);
- if (!isUserAlreadyExist(name, conn)) {
- insertUser(name, conn);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- private boolean isUserAlreadyExist(String email, Connection conn) throws SQLException {
- try (PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE email = ?")) {
- stmt.setString(1, email);
- return stmt.executeQuery().next();
- }
- }
- private void insertUser(String email, Connection conn) throws SQLException {
- try (PreparedStatement stmt = conn.prepareStatement("INSERT INTO users (email) VALUES (?)")) {
- stmt.setString(1, email);
- stmt.execute();
- } catch (SQLException e) {
- conn.rollback();
- }
- }
- }
Add Comment
Please, Sign In to add comment