SqlServerConnectionTest.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import org.dbsyncer.connector.config.DatabaseConfig;
  2. import org.dbsyncer.connector.database.DatabaseConnectorMapper;
  3. import org.junit.Test;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import java.time.LocalDateTime;
  7. import java.util.concurrent.*;
  8. /**
  9. * @author AE86
  10. * @version 1.0.0
  11. * @date 2022/4/11 20:19
  12. */
  13. public class SqlServerConnectionTest {
  14. private final Logger logger = LoggerFactory.getLogger(getClass());
  15. @Test
  16. public void testConnection() throws InterruptedException {
  17. DatabaseConfig config = new DatabaseConfig();
  18. config.setUrl("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test");
  19. config.setUsername("sa");
  20. config.setPassword("123");
  21. config.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  22. final DatabaseConnectorMapper connectorMapper = new DatabaseConnectorMapper(config);
  23. // 模拟并发
  24. final int threadSize = 100;
  25. final ExecutorService pool = Executors.newFixedThreadPool(threadSize);
  26. final CyclicBarrier barrier = new CyclicBarrier(threadSize);
  27. final CountDownLatch latch = new CountDownLatch(threadSize);
  28. for (int i = 0; i < threadSize; i++) {
  29. final int k = i + 3;
  30. pool.submit(() -> {
  31. try {
  32. barrier.await();
  33. // 模拟操作
  34. System.out.println(String.format("%s %s:%s", LocalDateTime.now(), Thread.currentThread().getName(), k));
  35. Object execute = connectorMapper.execute(tem -> tem.queryForObject("select 1", Integer.class));
  36. System.out.println(String.format("%s %s:%s execute=>%s", LocalDateTime.now(), Thread.currentThread().getName(), k, execute));
  37. } catch (InterruptedException e) {
  38. logger.error(e.getMessage());
  39. } catch (BrokenBarrierException e) {
  40. logger.error(e.getMessage());
  41. } catch (Exception e) {
  42. logger.error(e.getMessage());
  43. } finally {
  44. latch.countDown();
  45. }
  46. });
  47. }
  48. try {
  49. latch.await();
  50. logger.info("try to shutdown");
  51. pool.shutdown();
  52. } catch (InterruptedException e) {
  53. logger.error(e.getMessage());
  54. }
  55. TimeUnit.SECONDS.sleep(3);
  56. logger.info("test end");
  57. }
  58. }