Guest User

Untitled

a guest
May 7th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. public class Test {
  2. public static void main(String[] args) throws InterruptedException {
  3. new Thread(new Thready("fuckthisshit")).start();
  4. new Thread(new Thready("fuckthisshit")).start();
  5. new Thread(new Thready("fuckthisshit")).start();
  6. new Thread(new Thready("fuckthisshit")).start();
  7.  
  8. }
  9.  
  10. static class Thready implements Runnable {
  11. private String name;
  12.  
  13. public Thready(String name) {
  14. this.name = name;
  15. }
  16.  
  17. @Override
  18. public void run() {
  19. try {
  20. Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/fp_db", "root", "root");
  21. connection.setAutoCommit(false);
  22. connection.setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
  23. PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM users WHERE email =?");
  24. preparedStatement.setString(1, name);
  25. if (!preparedStatement.executeQuery().next()) {
  26. PreparedStatement preparedStatement1 = connection.prepareStatement("INSERT INTO users (email) VALUES (?)");
  27. preparedStatement1.setString(1, name);
  28. preparedStatement1.executeUpdate();
  29. preparedStatement1.close();
  30. }else {
  31. connection.rollback();
  32. }
  33. connection.commit();
  34. preparedStatement.close();
  35. connection.close();
  36. } catch (SQLException e) {
  37. e.printStackTrace();
  38.  
  39. }
  40. }
  41. }
  42.  
  43. static class Thready implements Runnable {
  44. private static final String JDBC_URL = "jdbc:mysql://localhost:3306/fp_db";
  45. private static final String USERNAME = "root";
  46. private static final String PASSWORD = "root";
  47.  
  48. private String name;
  49.  
  50. public Thready(String name) {
  51. this.name = name;
  52. }
  53.  
  54. @Override
  55. public void run() {
  56. try (Connection conn = DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD)) {
  57. conn.setAutoCommit(false);
  58.  
  59. if (!isUserAlreadyExist(name, conn)) {
  60. insertUser(name, conn);
  61. }
  62. } catch (SQLException e) {
  63. e.printStackTrace();
  64. }
  65. }
  66.  
  67. private boolean isUserAlreadyExist(String email, Connection conn) throws SQLException {
  68. try (PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE email = ?")) {
  69. stmt.setString(1, email);
  70.  
  71. return stmt.executeQuery().next();
  72. }
  73. }
  74.  
  75. private void insertUser(String email, Connection conn) throws SQLException {
  76. try (PreparedStatement stmt = conn.prepareStatement("INSERT INTO users (email) VALUES (?)")) {
  77. stmt.setString(1, email);
  78. stmt.execute();
  79. } catch (SQLException e) {
  80. conn.rollback();
  81. }
  82. }
  83. }
Add Comment
Please, Sign In to add comment