求用jdbc 连接数据库的java代码(只连接部分即可)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求用jdbc 连接数据库的java代码(只连接部分即可)相关的知识,希望对你有一定的参考价值。

mysql数据库!!

public Connection getConnection()//事先导入驱动
try
Class.forname("sun.jdbc.odbc.jdbcodbcDriver");//加载驱动
System.out.println("驱动加载完毕");
catch(ClassNotFoundException e)
e.printStackTrace();

try
Connecion con=DriverManager.getConnecion("jdbc:odbc:数据库名成","用户名","密码");//创建连接对象,即已经连接到数据库
system.out.println("连接成功!");

catch(exception e)
e.printStackTrace();

参考技术A public static Connection getConnection()
try
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
return conn;
catch (Exception e)
e.printStackTrace();
return null;

本回答被提问者采纳
参考技术B String driverName = "oracle.jdbc.driver.OracleDriver";

String url = "jdbc:oracle:thin:@localhost:1521:ORACLE9I";

Class.forName(driverName);

Connection con = null;

con = DriverManager.getConnection(url,"shown","dbwork");
参考技术C oracle数据库
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@127.0.0.1:1521:orcl

使用Java代码通过JDBC连接只启用Sentry的Impala异常分析

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。


Fayson的github:https://github.com/fayson/cdhproject


提示:代码块部分可以左右滑动查看噢


1.问题描述



测试环境描述:

  • CM和CDH版本为5.13.1

  • 集群只启用了Sentry

  • Impala JDBC2.5.42


在使用Java代码访问只启用了Sentry的Impala集群,即集群未启用认证比如LDAP或者Kerberos,会出现获取JDBC连接hang死的现象,具体示例代码如下:


public class SentryOnlyDemo {
   private static String JDBC_DRIVER = "com.cloudera.impala.jdbc4.Driver";
   private static String CONNECTION_URL ="jdbc:impala://13.229.116.237:21050/default;AuthMech=2;UID=hive;UseSasl=0";
   static {
       try {
           Class.forName(JDBC_DRIVER);
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
   public static void main(String[] args) {
       System.out.println("集群中只启用了Sentry服务通过JDBC访问Impala");
       Connection connection = null;
       ResultSet rs = null;
       PreparedStatement ps = null;
       try {
           connection = DriverManager.getConnection(CONNECTION_URL);
           ps = connection.prepareStatement("show databases");
           rs = ps.executeQuery();
           while (rs.next()) {
               System.out.println(rs.getString(1));
           }
       } catch (Exception e) {
           e.printStackTrace();
       } finally {
           JDBCUtils.disconnect(connection, rs, ps);
       }
   }
}

(可左右滑动)


JDBC连接的URL中指定了AuthMech=2;UID=hive参数后在获取Connection时一直hang住无法正常获取JDBC连接。



2.解决方法



1.Impala驱动Cloudera_ImpalaJDBC41,并加上参数PWD为空,修改JDBC URL连接为如下:


private static String JDBC_DRIVER = "com.cloudera.impala.jdbc41.Driver";
private static String CONNECTION_URL =" jdbc:impala://13.229.116.237:21050/default;AuthMech=3;UID=hive;PWD=;UseSasl=0";

(可左右滑动)


2.运行示例代码执行如下



执行成功,获取到JDBC的连接,成功查询到所有的Datebase库。


3.总结



1.在下载Impala JDBC驱动包时里面有Cloudera_ImpalaJDBC4Cloudera_ImpalaJDBC41两个版本选择41这个版本的。

JDBC_DRIVER ="com.cloudera.impala.jdbc41.Driver"


2.修改JDBC URL为如下即可正常获取JDBC连接

jdbc:impala://13.229.116.237:21050/default;AuthMech=3;UID=hive;PWD=;UseSasl=0

关于这个JDBC连接的异常是一个bug具体可以参考如下jira描述:

https://issues.apache.org/jira/browse/IMPALA-5040


https://downloads.cloudera.com/connectors/impala_jdbc_2.5.42.1062.zip



提示:代码块部分可以左右滑动查看噢


为天地立心,为生民立命,为往圣继绝学,为万世开太平。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。



推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。


以上是关于求用jdbc 连接数据库的java代码(只连接部分即可)的主要内容,如果未能解决你的问题,请参考以下文章

用Java手动封装JDBC连接池

使用Java代码通过JDBC连接只启用Sentry的Impala异常分析

跪求用USB摄像头获取并保存图像的c或c++代码

java 备份mysql数据库的部分数据

JAVA使用JDBC连接MySQL数据库-代码部分

在循环中连接 Java 数组 [重复]