通过JDBC方式连接StarRocks实例

通过JDBC连接到Serverless StarRocks实例,您可以享受到跨平台的统一数据接入体验,并显著简化应用程序的集成流程。本文为您介绍如何使用JDBC方式连接Serverless StarRocks实例。

前提条件

已创建Serverless StarRocks实例,详情请参见创建实例

操作步骤

  1. 添加MySQL JDBC驱动到Maven项目中,请在pom.xml文件中添加以下依赖项。

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.27</version><!-- 根据实际需要修改版本 -->
    </dependency>
    说明

    mysql-connector-javaMySQL数据库的JDBC驱动程序,不同目标数据库使用的JDBC驱动程序不同,使用其他数据库的JDBC驱动程序会有不兼容的问题,建议访问目标数据库官网,查询并使用其支持的JDBC驱动程序。StarRocks目前尚未提供官方的JDBC驱动程序,因此本文使用MySQLJDBC驱动程序。

  2. 连接StarRocks实例,示例代码如下。

    public class ConnStarrocks {
        /**连接MySQL数据库
    	1、加载驱动程序
    	2、数据库连接字符串"jdbc:mysql://localhost:9030/数据库名?"
    	3、数据库登录名
    	4、数据库登录密码
    	**/	
    
        static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
        static final String DB_URL = "jdbc:mysql://localhost:9030/yourDatabaseName?useSSL=false&serverTimezone=UTC";
    
    
        /**用户名与密码,需要根据实际情况设置。**/
        static final String USER = "****";
        static final String PASSWORD = "1234*****";
    
        public static void main(String[] args) {
            Connection conn = null;
            Statement stmt = null;
            try{
                // 注册JDBC驱动。
                Class.forName(JDBC_DRIVER);
    
                // 建立数据库连接。
                System.out.println("连接数据库...");
                conn = DriverManager.getConnection(DB_URL,USER,PASSWORD);
    
                // 创建Statement对象执行查询。
                System.out.println(" 实例化Statement对象...");
                stmt = conn.createStatement();
                String sql;
                sql = "SELECT id, name, url FROM websites";
                //获取查询结果集。
                ResultSet rs = stmt.executeQuery(sql);
                
                // 完成后关闭。
                rs.close();
                stmt.close();
                conn.close();
            }catch(SQLException se){
                // 处理JDBC错误。
                se.printStackTrace();
            }catch(Exception e){
                // 处理Class.forName错误。
                e.printStackTrace();
            }finally{
                // 关闭资源。
                if(stmt!=null) {
                  stmt.close();
                }
                if(conn!=null) {
                  conn.close();
                }
            }
            System.out.println("Goodbye!");
        }	
    }

    返回信息如下所示。

    image

    涉及参数如下表所示,部分参数请根据实际情况进行替换。

    参数

    说明

    JDBC_DRIVER

    数据库连接的JDBC驱动。例如,com.mysql.cj.jdbc.Driver

    DB_URL

    数据库连接字符串,格式为jdbc:mysql://<FE地址>:<fe_query_port>/<database>,其中涉及参数如下:

    • <FE地址>:Serverless StarRocks实例中FE的内网或公网地址。您可以在实例详情页面的FE详情区域查看。

      • 如果使用内网地址,请确保在同一VPC内。

      • 如果使用公网地址,需确保安全组规则允许相应的端口通信,详情请参见网络访问与安全设置

    • <fe_query_port>:Serverless StarRocks实例中FE的查询端口(默认为9030)。您可以在实例详情页面的FE详情区域查看。

    • <database>:Serverless StarRocks实例中的数据库名称。本文使用的是快速使用存算一体实例中创建的load_test数据库。

    USER

    Serverless StarRocks实例的用户名。默认提供admin用户,具有管理员权限。您也可以通过用户管理页面新增用户来连接。新增用户操作,请参见管理用户及数据授权

    PASSWORD

    用户 USER 对应的密码。请确保密码的安全性。

    sql

    SQL语句。本文使用的SQL语句示例基于快速使用存算一体实例中创建的load_test数据库中的insert_wiki_edit表。

相关文档

您可以通过Serverless StarRocks提供的SQL Editor直接在Web界面编写、执行和管理SQL查询,以便高效地操作StarRocks实例,详情请参见通过EMR StarRocks Manager连接StarRocks实例