没有为jdbc找到合适的驱动程序:presto

时间:2015-03-14 17:37:38

标签: maven jdbc presto

我想通过JDBC连接Presto DB。

 String sql="Select * from mysql.infsci2711toturial.Person";
 String url="jdbc:presto://localhost:8080/catalog";//Under catalog folder, there is my mysql.properties file.

 Connection connection=null;
 try{
     connection=DriverManager.getConnection(url, "root", null);
     Statement stmt=connection.createStatement();
     ResultSet rs=stmt.executeQuery(sql);
     while(rs.next()){
         System.out.println(rs.getString(1));
     }
 }catch(SQLException ex){
     System.out.println(Arrays.toString(((URLClassLoader) ClassLoader.getSystemClassLoader()).getURLs()));
     ex.printStackTrace();

     System.out.println("wrong connection!");
 }

eclipse中的问题是:         找不到合适的jdbc驱动程序:presto:// localhost:8080 / catalog 我试图将presto-jdbc-0.93.jar放在WEB-INF / lib下。但是不解决这个问题。如何解决这个问题呢。我需要设置Maven吗?怎么样?

2 个答案:

答案 0 :(得分:2)

添加“Class.forName(”com.facebook.presto.jdbc.PrestoDriver“);” 并且presto需要JDK 1.8。所以将JRE更新为1.8。

答案 1 :(得分:0)

问题包括两部分:

1-寻找合适的connetor。 2-找到正确的连接URL。

就我而言,我需要在AWS EMR上连接到Presto,以下内容对我有用:

  • 在maven dependancies中包含presto-jdbc驱动程序

    <!-- https://mvnrepository.com/artifact/com.facebook.presto/presto-jdbc -->
    <dependency>
        <groupId>com.facebook.presto</groupId>
        <artifactId>presto-jdbc</artifactId>
        <version>0.198</version>
    </dependency>
    
  • 在类路径中包含驱动程序类:

    final String JDBC_DRIVER = "com.facebook.presto.jdbc.PrestoDriver"; Class.forName(JDBC_DRIVER);

  • 使用正确的连接网址:

    final String DB_URL = "jdbc:presto://Your_ec2_ip_address:8889/hive/default";

  • 确保服务器上已打开 8889 端口

  • conn = DriverManager.getConnection(DB_URL, "hadoop", "");

希望这有帮助。