最新消息:天气越来越冷,记得加一件厚衣裳

Kylin JDBC 驱动

Kylin w3sun 2427浏览 0评论

身份认证

基于Apache Kylin身份认证的restful服务支持以下参数:

  • user : username
  • password : password
  • ssl: true/false,默认为 false,如果设置为true那么所有的服务都会遵循https协议。

URL连接格式

jdbc:kylin://<hostname>:<port>/<kylin_project_name>

  • 如果 “ssl” = true, 那么连接端口”port” 应该是Kylin服务器的HTTPS端口;
  • 如果 端口”port”没有指定,driver将会使用默认端口: HTTP协议端口号为 80,HTTPS协议端口号为 443;
  • 必须指定Kylin Server上的工程名”kylin_project_name”,并确保该工程下的Model和Cube可用。

通过Statement进行查询

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* 使用Statement进行查询
*
* @param connection JDBC Connection
*/
private static void queryWithStatement(Connection connection) {
Statement state = null;
try {
state = connection.createStatement();
ResultSet resultSet = state.executeQuery("SELECT * FROM kylin_country LIMIT 15");
showQueryResult(resultSet);
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeStatement(state);
}
}
/** * 使用Statement进行查询 * * @param connection JDBC Connection */ private static void queryWithStatement(Connection connection) { Statement state = null; try { state = connection.createStatement(); ResultSet resultSet = state.executeQuery("SELECT * FROM kylin_country LIMIT 15"); showQueryResult(resultSet); } catch (SQLException e) { e.printStackTrace(); } finally { closeStatement(state); } }
 /**
 * 使用Statement进行查询
 *
 * @param connection JDBC Connection
 */
private static void queryWithStatement(Connection connection) {
    Statement state = null;
    try {
        state = connection.createStatement();
        ResultSet resultSet = state.executeQuery("SELECT * FROM kylin_country LIMIT 15");
        showQueryResult(resultSet);
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        closeStatement(state);
    }
}

通过PreparedStatement进行查询

目前prepared statement支持的占位符参数类型:

  • setString
  • setInt
  • setShort
  • setLong
  • setFloat
  • setDouble
  • setBoolean
  • setByte
  • setDate
  • setTime
  • setTimestamp
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* 使用PrepareStatement进行查询
*
* @param connection JDBC Connection
*/
private static void queryWithPrepareStatement(Connection connection) {
PreparedStatement pstm = null;
try {
pstm = connection.prepareStatement("SELECT * FROM kylin_country WHERE country=?");
pstm.setString(1, "PS");
ResultSet resultSet = pstm.executeQuery();
showQueryResult(resultSet);
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeStatement(pstm);
}
}
/** * 使用PrepareStatement进行查询 * * @param connection JDBC Connection */ private static void queryWithPrepareStatement(Connection connection) { PreparedStatement pstm = null; try { pstm = connection.prepareStatement("SELECT * FROM kylin_country WHERE country=?"); pstm.setString(1, "PS"); ResultSet resultSet = pstm.executeQuery(); showQueryResult(resultSet); } catch (SQLException e) { e.printStackTrace(); } finally { closeStatement(pstm); } }
/**
     * 使用PrepareStatement进行查询
     *
     * @param connection JDBC Connection
     */
    private static void queryWithPrepareStatement(Connection connection) {
        PreparedStatement pstm = null;
        try {
            pstm = connection.prepareStatement("SELECT * FROM kylin_country WHERE country=?");
            pstm.setString(1, "PS");
            ResultSet resultSet = pstm.executeQuery();
            showQueryResult(resultSet);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeStatement(pstm);
        }
    }

获取ResultSet 结果集metadata

Kylin JDBC驱动提供了相关方法以获取元数据信息,可以借助sql模式过滤器(比如%)列出catalog, schema, table 和column等 。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
/**
* 展示元数据信息
*
* @param connection Kylin JDBC Connection
*/
private static void showMetaData(Connection connection) {
ResultSet tables = null;
try {
tables = connection.getMetaData().getTables(null, null, "%", null);
while (tables.next()) {
for (int i = 0; i < 10; i++) {
System.out.println(tables.getString(i + 1));
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeResultSet(tables);
}
}
/** * 展示元数据信息 * * @param connection Kylin JDBC Connection */ private static void showMetaData(Connection connection) { ResultSet tables = null; try { tables = connection.getMetaData().getTables(null, null, "%", null); while (tables.next()) { for (int i = 0; i < 10; i++) { System.out.println(tables.getString(i + 1)); } } } catch (SQLException e) { e.printStackTrace(); } finally { closeResultSet(tables); } }
/**
     * 展示元数据信息
     *
     * @param connection Kylin JDBC Connection
     */
    private static void showMetaData(Connection connection) {
        ResultSet tables = null;
        try {
            tables = connection.getMetaData().getTables(null, null, "%", null);
            while (tables.next()) {
                for (int i = 0; i < 10; i++) {
                    System.out.println(tables.getString(i + 1));
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeResultSet(tables);
        }
    }

完整版代码

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public class KylinJDBC {
public static void main(String[] args) {
Driver driver = null;
Connection connection = null;
try {
driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
Properties info = new Properties();
info.put("user", "ADMIN");
info.put("password", "KYLIN");
connection = driver.connect("jdbc:kylin://ip:7070/learn_kylin", info);
queryWithStatement(connection);
queryWithPrepareStatement(connection);
showMetaData(connection);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeConnection(connection);
}
}
/**
* 使用Statement进行查询
*
* @param connection JDBC Connection
*/
private static void queryWithStatement(Connection connection) {
Statement state = null;
try {
state = connection.createStatement();
ResultSet resultSet = state.executeQuery("SELECT * FROM kylin_country LIMIT 15");
showQueryResult(resultSet);
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeStatement(state);
}
}
/**
* 使用PrepareStatement进行查询
*
* @param connection JDBC Connection
*/
private static void queryWithPrepareStatement(Connection connection) {
PreparedStatement pstm = null;
try {
pstm = connection.prepareStatement("SELECT * FROM kylin_country WHERE country=?");
pstm.setString(1, "PS");
ResultSet resultSet = pstm.executeQuery();
showQueryResult(resultSet);
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeStatement(pstm);
}
}
/**
* 展示元数据信息
*
* @param connection Kylin JDBC Connection
*/
private static void showMetaData(Connection connection) {
ResultSet tables = null;
try {
tables = connection.getMetaData().getTables(null, null, "%", null);
while (tables.next()) {
for (int i = 0; i < 10; i++) {
System.out.println(tables.getString(i + 1));
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeResultSet(tables);
}
}
/**
* 查询结果ResultSet进行格式化显示
*
* @param resultSet Kylin JDBC 查询结果
*/
private static void showQueryResult(ResultSet resultSet) {
ResultSetMetaData metaData = null;
try {
metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
for (int i = 0; i < columnCount; i++) {
System.out.print(metaData.getColumnLabel(i + 1) + "\t");
}
System.out.println();
while (resultSet.next()) {
for (int i = 0; i < columnCount; i++) {
System.out.print(resultSet.getObject(i + 1) + "\t");
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
closeResultSet(resultSet);
}
}
/**
* 关闭JDBC连接
*
* @param connection JDBC Connection
*/
private static void closeConnection(Connection connection) {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭Statement
*
* @param statement JDBC JDBC Connection Statement
*/
private static void closeStatement(Statement statement) {
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭ResultSet
*
* @param resultSet Kylin JDBC 查询结果集
*/
private static void closeResultSet(ResultSet resultSet) {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public class KylinJDBC { public static void main(String[] args) { Driver driver = null; Connection connection = null; try { driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance(); Properties info = new Properties(); info.put("user", "ADMIN"); info.put("password", "KYLIN"); connection = driver.connect("jdbc:kylin://ip:7070/learn_kylin", info); queryWithStatement(connection); queryWithPrepareStatement(connection); showMetaData(connection); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { closeConnection(connection); } } /** * 使用Statement进行查询 * * @param connection JDBC Connection */ private static void queryWithStatement(Connection connection) { Statement state = null; try { state = connection.createStatement(); ResultSet resultSet = state.executeQuery("SELECT * FROM kylin_country LIMIT 15"); showQueryResult(resultSet); } catch (SQLException e) { e.printStackTrace(); } finally { closeStatement(state); } } /** * 使用PrepareStatement进行查询 * * @param connection JDBC Connection */ private static void queryWithPrepareStatement(Connection connection) { PreparedStatement pstm = null; try { pstm = connection.prepareStatement("SELECT * FROM kylin_country WHERE country=?"); pstm.setString(1, "PS"); ResultSet resultSet = pstm.executeQuery(); showQueryResult(resultSet); } catch (SQLException e) { e.printStackTrace(); } finally { closeStatement(pstm); } } /** * 展示元数据信息 * * @param connection Kylin JDBC Connection */ private static void showMetaData(Connection connection) { ResultSet tables = null; try { tables = connection.getMetaData().getTables(null, null, "%", null); while (tables.next()) { for (int i = 0; i < 10; i++) { System.out.println(tables.getString(i + 1)); } } } catch (SQLException e) { e.printStackTrace(); } finally { closeResultSet(tables); } } /** * 查询结果ResultSet进行格式化显示 * * @param resultSet Kylin JDBC 查询结果 */ private static void showQueryResult(ResultSet resultSet) { ResultSetMetaData metaData = null; try { metaData = resultSet.getMetaData(); int columnCount = metaData.getColumnCount(); for (int i = 0; i < columnCount; i++) { System.out.print(metaData.getColumnLabel(i + 1) + "\t"); } System.out.println(); while (resultSet.next()) { for (int i = 0; i < columnCount; i++) { System.out.print(resultSet.getObject(i + 1) + "\t"); } System.out.println(); } } catch (SQLException e) { e.printStackTrace(); } finally { closeResultSet(resultSet); } } /** * 关闭JDBC连接 * * @param connection JDBC Connection */ private static void closeConnection(Connection connection) { if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭Statement * * @param statement JDBC JDBC Connection Statement */ private static void closeStatement(Statement statement) { if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } } /** * 关闭ResultSet * * @param resultSet Kylin JDBC 查询结果集 */ private static void closeResultSet(ResultSet resultSet) { if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
public class KylinJDBC {
    public static void main(String[] args) {
        Driver driver = null;
        Connection connection = null;
        try {
            driver = (Driver) Class.forName("org.apache.kylin.jdbc.Driver").newInstance();
            Properties info = new Properties();
            info.put("user", "ADMIN");
            info.put("password", "KYLIN");
            connection = driver.connect("jdbc:kylin://ip:7070/learn_kylin", info);

            queryWithStatement(connection);

            queryWithPrepareStatement(connection);

            showMetaData(connection);

        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeConnection(connection);
        }
    }

    /**
     * 使用Statement进行查询
     *
     * @param connection JDBC Connection
     */
    private static void queryWithStatement(Connection connection) {
        Statement state = null;
        try {
            state = connection.createStatement();
            ResultSet resultSet = state.executeQuery("SELECT * FROM kylin_country LIMIT 15");
            showQueryResult(resultSet);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeStatement(state);
        }
    }

    /**
     * 使用PrepareStatement进行查询
     *
     * @param connection JDBC Connection
     */
    private static void queryWithPrepareStatement(Connection connection) {
        PreparedStatement pstm = null;
        try {
            pstm = connection.prepareStatement("SELECT * FROM kylin_country WHERE country=?");
            pstm.setString(1, "PS");
            ResultSet resultSet = pstm.executeQuery();
            showQueryResult(resultSet);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeStatement(pstm);
        }
    }

    /**
     * 展示元数据信息
     *
     * @param connection Kylin JDBC Connection
     */
    private static void showMetaData(Connection connection) {
        ResultSet tables = null;
        try {
            tables = connection.getMetaData().getTables(null, null, "%", null);
            while (tables.next()) {
                for (int i = 0; i < 10; i++) {
                    System.out.println(tables.getString(i + 1));
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeResultSet(tables);
        }
    }

    /**
     * 查询结果ResultSet进行格式化显示
     *
     * @param resultSet Kylin JDBC 查询结果
     */
    private static void showQueryResult(ResultSet resultSet) {
        ResultSetMetaData metaData = null;
        try {
            metaData = resultSet.getMetaData();
            int columnCount = metaData.getColumnCount();
            for (int i = 0; i < columnCount; i++) {
                System.out.print(metaData.getColumnLabel(i + 1) + "\t");
            }
            System.out.println();
            while (resultSet.next()) {
                for (int i = 0; i < columnCount; i++) {
                    System.out.print(resultSet.getObject(i + 1) + "\t");
                }
                System.out.println();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            closeResultSet(resultSet);
        }
    }

    /**
     * 关闭JDBC连接
     *
     * @param connection JDBC Connection
     */
    private static void closeConnection(Connection connection) {
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 关闭Statement
     *
     * @param statement JDBC JDBC Connection Statement
     */
    private static void closeStatement(Statement statement) {
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    /**
     * 关闭ResultSet
     *
     * @param resultSet Kylin JDBC 查询结果集
     */
    private static void closeResultSet(ResultSet resultSet) {
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

pom.xml

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.w3sun.kylin.jdbc</groupId>
<artifactId>jdbc-test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<kylin.version>2.0.0</kylin.version>
<encoding>UTF-8</encoding>
</properties>
<dependencies>
<!-- 导入Kylin JDBC的依赖 -->
<dependency>
<groupId>org.apache.kylin</groupId>
<artifactId>kylin-jdbc</artifactId>
<version>${kylin.version}</version>
</dependency>
<build>
<pluginManagement>
<plugins>
<!-- 编译scala的插件 -->
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<!-- 编译java的插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<executions>
<execution>
<id>scala-compile-first</id>
<phase>process-resources</phase>
<goals>
<goal>add-source</goal>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>scala-test-compile</id>
<phase>process-test-resources</phase>
<goals>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 打jar插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.w3sun.kylin.jdbc</groupId> <artifactId>jdbc-test</artifactId> <version>1.0-SNAPSHOT</version> <properties> <kylin.version>2.0.0</kylin.version> <encoding>UTF-8</encoding> </properties> <dependencies> <!-- 导入Kylin JDBC的依赖 --> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-jdbc</artifactId> <version>${kylin.version}</version> </dependency> <build> <pluginManagement> <plugins> <!-- 编译scala的插件 --> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.2</version> </plugin> <!-- 编译java的插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <executions> <execution> <id>scala-compile-first</id> <phase>process-resources</phase> <goals> <goal>add-source</goal> <goal>compile</goal> </goals> </execution> <execution> <id>scala-test-compile</id> <phase>process-test-resources</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <execution> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <!-- 打jar插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.w3sun.kylin.jdbc</groupId>
    <artifactId>jdbc-test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <kylin.version>2.0.0</kylin.version>
        <encoding>UTF-8</encoding>
    </properties>

    <dependencies>
        <!-- 导入Kylin JDBC的依赖 -->
        <dependency>
            <groupId>org.apache.kylin</groupId>
            <artifactId>kylin-jdbc</artifactId>
            <version>${kylin.version}</version>
        </dependency>

    <build>
        <pluginManagement>
            <plugins>
                <!-- 编译scala的插件 -->
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <!-- 编译java的插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>scala-compile-first</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>add-source</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>scala-test-compile</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>


            <!-- 打jar插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.4.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

转载请注明:雪后西塘 » Kylin JDBC 驱动

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址