ElasticDriver.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package org.elasticsearch.jdbc;
  2. import org.elasticsearch.client.transport.TransportClient;
  3. import org.elasticsearch.jdbc.search.TransportClientProvider;
  4. import org.elasticsearch.jdbc.search.TransportClientProviderImpl;
  5. import org.slf4j.LoggerFactory;
  6. import java.sql.*;
  7. import java.util.Properties;
  8. import java.util.logging.Logger;
  9. public class ElasticDriver implements Driver {
  10. private static final org.slf4j.Logger logger = LoggerFactory.getLogger(ElasticDriver.class);
  11. private static final String ELASTIC_SEARCH_DRIVER_PREFIX = "jdbc:elastic:";
  12. private TransportClient transportClient = null;
  13. private TransportClientProvider transportClientProvider;
  14. static {
  15. try {
  16. DriverManager.registerDriver(new ElasticDriver());
  17. }
  18. catch (SQLException ex) {
  19. // ignore
  20. }
  21. }
  22. private ElasticDriver() {
  23. }
  24. @Override
  25. public Connection connect(String url, Properties info) throws SQLException {
  26. synchronized (ElasticDriver.class) {
  27. if (transportClientProvider == null) {
  28. transportClientProvider = new TransportClientProviderImpl();
  29. }
  30. transportClient = transportClientProvider.createTransportClientFromUrl(url);
  31. if (transportClient == null) {
  32. throw new SQLException(String.format("ElasticDriver.connect] Failed to build transport client for url[%s]", url));
  33. }
  34. }
  35. return new ElasticConnection(url, info, transportClient);
  36. }
  37. @Override
  38. public boolean acceptsURL(String url) throws SQLException {
  39. return url != null && url.startsWith(ELASTIC_SEARCH_DRIVER_PREFIX);
  40. }
  41. @Override
  42. public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws SQLException {
  43. return new DriverPropertyInfo[0];
  44. }
  45. @Override
  46. public int getMajorVersion() {
  47. return 1;
  48. }
  49. @Override
  50. public int getMinorVersion() {
  51. return 0;
  52. }
  53. @Override
  54. public boolean jdbcCompliant() {
  55. return true;
  56. }
  57. @Override
  58. public Logger getParentLogger() throws SQLFeatureNotSupportedException {
  59. throw new UnsupportedOperationException("getParentLogger");
  60. }
  61. }