请教前辈一个问题,非常感谢!
实验:Java利用 JDBC 访问 TiSpark.
实验步骤:
TiDB集群实验前已安装好。
-
安装spark集群
-
将tispark-assembly-2.3.3.jar放在${spark_path}/jars下,启动spark。
-
启动start-thriftserver.sh。
此时spark master节点起了10000端口,测试Java通过Hive JDBC查询TiDB数据,发现创建数据库连接时(DriverManager.getConnection)指定不指定用户密码,或即使指定数据库中不存在的用户密码,都可以查到tidb的数据,这里是否没有用户验证的过程?(像连接MySQL那样jdbc url、用户名、密码、库名)
Java代码:
public class JDBCToHiveUtils {
private static String driverName =“org.apache.hive.jdbc.HiveDriver”;
private static String Url=“jdbc:hive2://192.168.159.128:10000/TPCH_001”;
private static Connection conn;
public static Connection getConnnection()
{
try
{
Class.forName(driverName);
conn = DriverManager.getConnection(Url,"",""); //这里不输入用户密码信息就可以创建数据库连接,查数据;或者填写数据库中存在或不存在的用户密码信息同样可以查tidb中的数据。困惑点??
}
catch(ClassNotFoundException e) {
e.printStackTrace();
System.exit(1);
}
catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static PreparedStatement prepare(Connection conn, String sql) {
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
}