Guest User

Untitled

a guest
Mar 28th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. package com.zaxxer.hikari.benchmark;
  2.  
  3. import com.zaxxer.hikari.HikariConfig;
  4. import com.zaxxer.hikari.HikariDataSource;
  5.  
  6. import java.sql.*;
  7. import java.util.concurrent.ThreadLocalRandom;
  8.  
  9. /**
  10. * docker run --name some-mysql -e MYSQL_USER=brettw -e MYSQL_PASSWORD=secret -e MYSQL_DATABASE=issue1118 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -p 3306:3306 -d mysql:5.5
  11. */
  12. public class Issue1118 {
  13. private static final String jdbcUrl = "jdbc:mysql://localhost/issue1118";
  14.  
  15. private HikariDataSource DS;
  16.  
  17. public static void main(String[] args) throws Exception {
  18. Issue1118 issue = new Issue1118();
  19. issue.setupHikari();
  20.  
  21. issue.runTest();
  22.  
  23. issue.DS.close();
  24. }
  25.  
  26. private void runTest() throws SQLException {
  27. final ThreadLocalRandom random = ThreadLocalRandom.current();
  28.  
  29. final String sql = "INSERT INTO CUST_STATUS_CODE_ALARM(ALARM_ID,SCOPE,CACHE_GROUP,ISP,CACHE_IP,CHECK_RESULT,ORI_DATA) VALUES(?,?,?,?,?,?,?)";
  30.  
  31. try (Connection conn = DS.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) {
  32. final long start = System.currentTimeMillis();
  33.  
  34. for (int i = 0; i < 10000; i++) {
  35. pstmt.setString(1, random.nextInt() + "bbb" + random.nextInt());
  36. pstmt.setString(2, "");
  37. pstmt.setString(3, "");
  38. pstmt.setString(4, "");
  39. pstmt.setString(5, "");
  40. pstmt.setString(6, "");
  41. pstmt.setString(7, "");
  42. pstmt.addBatch();
  43. }
  44.  
  45. pstmt.executeBatch();
  46. conn.commit();
  47. pstmt.close();
  48.  
  49. final long elapsed = (System.currentTimeMillis() - start);
  50.  
  51. System.out.printf("Insertion time: %dms\n", elapsed);
  52.  
  53. try (Statement stmt = conn.createStatement();
  54. ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM CUST_STATUS_CODE_ALARM")) {
  55.  
  56. if (rs.next()) {
  57. System.out.printf("Select count(*) returned %d rows\n", rs.getInt(1));
  58. }
  59. }
  60. }
  61. }
  62.  
  63. private void setupHikari()
  64. {
  65. HikariConfig config = new HikariConfig();
  66. config.setJdbcUrl(jdbcUrl);
  67. config.setUsername("brettw");
  68. config.setPassword("secret");
  69. config.setAutoCommit(false);
  70. config.addDataSourceProperty("rewriteBatchedStatements", "true");
  71.  
  72. DS = new HikariDataSource(config);
  73. }
  74. }
Add Comment
Please, Sign In to add comment