yaooqinn commented on code in PR #4655:
URL: https://github.com/apache/kyuubi/pull/4655#discussion_r1155752781


##########
docs/quick_start/quick_start_with_jdbc.md:
##########
@@ -15,82 +15,76 @@
 - limitations under the License.
 -->
 
-# Getting Started With Hive JDBC
+# Getting Started with Hive JDBC
 
-## How to install JDBC driver
+## How to get the Kyuubi JDBC driver
 
-Kyuubi JDBC driver is fully compatible with the 2.3.* version of hive JDBC 
driver, so we reuse hive JDBC driver to connect to Kyuubi server.
+Kyuubi Thrift API is fully compatible w/ HiveServer2, so technically, it 
allows to use any Hive JDBC driver to connect
+Kyuubi Server. But it's recommended to use [Kyuubi Hive JDBC 
driver](../client/jdbc/kyuubi_jdbc), which is forked from
+Hive 3.1.x JDBC driver, aims to support some missing functionalities of the 
original Hive JDBC driver.
 
-Add repository to your maven configuration file which may reside in 
`$MAVEN_HOME/conf/settings.xml`.
+The driver is available from Maven Central:
 
 ```xml
-<repositories>
-  <repository>
-    <id>central maven repo</id>
-    <name>central maven repo https</name>
-    <url>https://repo.maven.apache.org/maven2</url>
-  </repository>
-</repositories>
-```
-
-You can add below dependency to your `pom.xml` file in your application.
-
-```xml
-<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc -->
 <dependency>
-    <groupId>org.apache.hive</groupId>
-    <artifactId>hive-jdbc</artifactId>
-    <version>2.3.7</version>
-</dependency>
-<dependency>
-    <groupId>org.apache.hadoop</groupId>
-    <artifactId>hadoop-common</artifactId>
-    <!-- keep consistent with the build hadoop version -->
-    <version>2.7.4</version>
+    <groupId>org.apache.kyuubi</groupId>
+    <artifactId>kyuubi-hive-jdbc-shaded</artifactId>
+    <version>1.7.0</version>
 </dependency>
 ```
 
-## Use JDBC driver with kerberos
+## U## Connect to non-kerberized Kyuubi Server
 
 The below java code is using a keytab file to login and connect to Kyuubi 
server by JDBC.
 
 ```java
 package org.apache.kyuubi.examples;
   
-import java.io.IOException;
-import java.security.PrivilegedExceptionAction;
 import java.sql.*;
 
-import org.apache.hadoop.security.UserGroupInformation;
- 
-public class JDBCTest {
- 
-    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
-    private static String kyuubiJdbcUrl = 
"jdbc:hive2://localhost:10009/default;";
- 
-    public static void main(String[] args) throws ClassNotFoundException, 
SQLException {
-        String principal = args[0]; // kerberos principal
-        String keytab = args[1]; // keytab file location
-        Configuration configuration = new Configuration();
-        configuration.set(HADOOP_SECURITY_AUTHENTICATION, "kerberos");
-        UserGroupInformation.setConfiguration(configuration);
-        UserGroupInformation ugi = 
UserGroupInformation.loginUserFromKeytabAndReturnUGI(principal, keytab);
- 
-        Class.forName(driverName);
-        Connection conn = ugi.doAs(new PrivilegedExceptionAction<Connection>(){
-            public Connection run() throws SQLException {
-                return DriverManager.getConnection(kyuubiJdbcUrl);
-            }
-        });
-        Statement st = conn.createStatement();
-        ResultSet res = st.executeQuery("show databases");
-        while (res.next()) {
-            System.out.println(res.getString(1));
+public class KyuubiJDBC {
+
+    private static String driverName = 
"org.apache.kyuubi.jdbc.KyuubiHiveDriver";
+    private static String kyuubiJdbcUrl = 
"jdbc:kyuubi://localhost:10009/default;";
+
+    public static void main(String[] args) throws SQLException {
+        Connection conn = DriverManager.getConnection(kyuubiJdbcUrl);
+        Statement stmt = conn.createStatement();
+        ResultSet rs = st.executeQuery("show databases");
+        while (rs.next()) {
+            System.out.println(rs.getString(1));
         }
-        res.close();
-        st.close();
+        rs.close();
+        stmt.close();
         conn.close();
     }
 }
 ```
+## Connect to Kerberized Kyuubi Server
+
+The following Java code is using a keytab file to login and connect to Kyuubi 
Server by JDBC.
 
+```java
+package org.apache.kyuubi.examples;
+import java.sql.*;
+public class KyuubiJDBCDemo {
+    private static String driverName = 
"org.apache.kyuubi.jdbc.KyuubiHiveDriver";
+    private static String kyuubiJdbcUrlTemplate = 
"jdbc:kyuubi://localhost:10009/default;" +
+            "clientPrincipal=%s;clientKeytab=%s;serverPrincipal=%s";
+    public static void main(String[] args) throws SQLException {
+        String clientPrincipal = args[0]; // Kerberos principal
+        String clientKeytab = args[1];    // Keytab file location
+        String serverPrincipal = arg[2];  // Kerberos principal used by Kyuubi 
Server
+        String kyuubiJdbcUrl = String.format(kyuubiJdbcUrl, clientPrincipal, 
clientKeytab, serverPrincipal);
+        Connection conn = DriverManager.getConnection(kyuubiJdbcUrl);
+        Statement stmt = conn.createStatement();
+        ResultSet rs = st.executeQuery("show databases");
+        while (rs.next()) {
+            System.out.println(rs.getString(1));
+        }
+        rs.close();

Review Comment:
   nit: better in `finally` and wrap each close with separated `try-finally` 
blocks



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to