• [开发应用] 【DWS】【JDBC连接配置】时区配置
    JDBC的连接URL这么写有问题不,时区显示设置成PRC。同时如果集群是UTC的时区,但是库设置了PRC,那通过jdbc连接的时候,将mysql库内的时间字段通过代码映射到dws的对应字段进行数据导入是否会因为集群的时区是UTC的原因,使得dws内存放的时间数据与mysql源库的时间数据不一致?
  • Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据
    前言 Variable names + Foreach控制器线程组结构树 JDBC Request 调试取样器运行结果 ForEach控制器 循环运行的结果( mobile:${mobile} ) Variable names + 循环控制器和上面的栗子只是换了个控制器而已,没太大变化线程组结构树 循环控制器填写 100,是代表循环100次 计数器从 1 开始,递增加到 100为止,每次递增 1初始值=1每次增加 1最大的值=100(包含)新变量 num 循环控制器内的 Debug Sampler ${__V()} 是关联函数,后面讲到 循环运行的结果( mobile:${mobile} ) 
  • Jmeter系列(30)- 详解 JDBC Request
     JDBC Request JDBC Request 界面介绍 字段含义字段含义Variable Name Bound to Pool数据库连接池配置的名称Query Typesql 语句的类型SQL Querysql 语句语句结尾不需要添加 ; 变量用 ? 占位Parameter values需要传递的变量值,多个变量用 , 分隔Parameter types变量类型Variable Names保存sql语句返回的数据和返回数据的总行数用 , 分隔跳过列用空Result Variable Name一个 Object 变量存储所有返回值Query timeout(s)超时时间;默认0,代表无限时间Limit ResultSet和 limit 类似作用,限制 sql 语句返回结果集的行数Handle ResultSet如何定义 callable statements 返回的结果集;默认是存储为字符串后续通过各种栗子来深入理解常用字段的含义 举栗子的前提需要自己找一个有数据库的数据来练手哦!这里拿的表数据如下哈 只有 sql 语句的栗子JDBC Request没啥特别的,平时 sql 怎么写,这里就怎么写 运行结果 参数化的栗子JDBC Request 运行结果 知识点 参数化+变量的栗子JDBC Request 运行结果 知识点 使用 Variable Names 的栗子结构树 JDBC Request添加一个 Debug Sampler 就知道这个字段有什么作用了 JDBC Request 运行结果 调试取样器运行结果 知识点 使用 Result variable name 的栗子JDBC Request Debug Sampler  运行结果 知识点该变量是个数组,每一个元素代表一条记录 重点关于通过 Variable names、Result variable name 获取到的值如何提取,我们将在下一篇文章中详细讲解 使用 Limit ResultSet 的栗子JDBC Request  运行结果
  • Jmeter系列(29)- 详解 JDBC Connection Configuration
    前言发起 jdbc 请求前,需要有 JDBC 连接配置,即先连上数据库,才能查询数据库 JDBC Connection Configuration JDBC Connection Configuration 界面介绍 Variable Name for created poolJDBC Connection Configuration 算是一个数据库连接池配置Variable Name :数据库连接池的名称一个测试计划可以有多个 JDBC Connection,只要名称不重复就行 Connection pool Configuration连接池参数配置,基本保持默认就行了,可根据需要进行修改 字段含义Max Number of Connections最大连接数;做性能测试时,建议填 0如果填了10,则最大连接10个线程Max Wait(ms)在连接池中取回连接最大等待时间,单位毫秒Time Between Eviction Runs(ms)线程可空闲时间,单位毫秒如果当前连接池中某个连接在空闲了 time Between Eviction Runs Millis 时间后任然没有使用,则被物理性的关闭掉Auto Commit自动提交sql语句,如:修改数据库时,自动 commitTransaction isolation事务隔离级别Preinit Pool立即初始化连接池如果为 False,则第一个 JDBC 请求的响应时间会较长,因为包含了连接池建立的时间 Connection Validation by Pool验证连接池是否可响应字段含义Test While Idle当连接空闲时是否断开Soft Min Evictable Idle Time(ms)连接在池中处于空闲状态的最短时间Validation Query一个简单的查询,用于确定数据库是否仍在响应默认为jdbc驱动程序的 isValid() 方法,适用于许多数据库 Database Connection Configuration数据库连接配置字段含义Database URL数据库连接 URLJDBC Driver class数据库驱动Username数据库登录用户名Password数据库登录密码Connection Properties建立连接时要设置的连接属性 Database URL 举例jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&allowMultiQueries=true(允许执行多条 sql) 常见数据库的连接 URL和驱动数据库驱动URLMySQLcom.mysql.jdbc.Driverjdbc:mysql://host:port/{dbname}PostgreSQLorg.postgresql.Driverjdbc:postgresql:{dbname}Oracleoracle.jdbc.driver.OracleDriverjdbc:oracle:thin:user/pass@//host:port/servicesqlServercom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://host:port;databaseName=databaseName  
  • 注意JDBC数据库连接中资源关闭的顺序
    在JDBC连接数据库时首先要获得connection,再通过它获得相应的statement,最后获得结果集resultset.这些过程都会占用内存资源,所以我们常常会在方法调用结束后关闭相应的资源节约内存空间。这时如果关闭的顺序不对,像下面这样,有时就会出现异常。 public static void closeAllResource(Connection conn,Statement st,ResultSet rs) { if (conn!=null) { try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } if (st!=null) { try { st.close(); } catch (Exception e) { e.printStackTrace(); } } if (rs!=null) { try { rs.close(); } catch (Exception e) { e.printStackTrace(); } } }org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (Connection is closed) at org.sqlite.core.DB.newSQLException(DB.java:909) at org.sqlite.core.CoreStatement.internalClose(CoreStatement.java:115) at org.sqlite.jdbc3.JDBC3Statement.close(JDBC3Statement.java:35) at org.sqlite.jdbc4.JDBC4Statement.close(JDBC4Statement.java:27) at com.tools.JdbcUtils.close(JdbcUtils.java:94) at com.tools.BaseDao2.update(BaseDao2.java:38) at com.test.testjdbc.main(testjdbc.java:30)如果connection关闭了,后面Statement和ResultSet相关的操作就会受到影响。所以平时一定要注意关闭资源的先后顺序,先关闭ResultSet,然后是Statement,最后是Connetion,刚好与创建相应对象时的顺序相反。
  • 10个问题让你快速避开java中的jdbc常见坑
    Connection.setAutoCommit(boolean)用于事务提交。setAutoCommit(true), 则执行的所有sql执行都会作为单个事务直接提交并运行setAutoCommit(false), 则必须等调用conn.commit()才会提交运行Q: setAutoCommit默认是true还是falseA: 默认是true。Q: setAutoCommit(true)的缺点是什么?A: 如果一次性执行多个sql语句, 中间sql出错时,就会造成脏数据。Q: setAutoCommit(false)后,如果出了错却没有在catch中进行Connection的rollBack操作,会发生什么?A; 操作的表就会被锁住,造成数据库死锁fetchSizefetchSize 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数fetchSize越 大, 客户端内存占用越 大,读取数据库次数越 少,速度越 快。Q: Oracle和Mysql中的fetchSize有什么区别?A: Oracle会每次网络传输fetchSize条数据到客户端, MYSQL则会一次性全部传送到客户端,因此Mysql中的fetchSize是一种模拟游标。PreparedStatementQ:相比Statement的好处?A:PreparedStatement是预编译的,比Statement速度快,执行效率高,因此即使sql中不带参数也最好使用PreparedStatement代码的可读性和可维护性更好(相比于sql拼接)PreparedStatement可以防止SQL注入攻击,而Statement却不能Q:prepareStatement是statement接口的实现吗?A:prepareStatement不是实现,而是继承的接口CallableStatementCallableStatement继承自PreparedStatementCallableStatement接口添加了 调用存储过程 核函数以及处理输出参数(INOUT)的方法。即存储过程就用CallableStatementConnection Pool连接池优点:减少连接创建次数更快的系统整体响应速度统一连接管理,减少失误性的连接未关闭。ResultSet作用: 缓存数据结果集Statement st = conn. createStatement (int resultSetType, int resultSetConcurrency) ResultSet rs = st.executeQuery(sqlStr)滚动,就是指调用.next()或者.previous()或者移动到对应行resultSetType 是设置 ResultSet 对象的类型可滚动,或者是不可滚动。取值如下(见单词知意):ResultSet.TYPE_FORWARD_ONLY 只能向前滚动ResultSet.TYPE_SCROLL_INSENSITIVE, 支持前后滚动,对修改不敏感ResultSet.TYPE_SCROLL_SENSITIVE 支持前后滚动,对修改敏感resultSetConcurency 是设置 ResultSet 对象能够修改的,取值如下:ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。Q:Connection、statement、ResultSet的关闭顺序是?A:先ResultSet、再Statement、最后再connection。因为这种操作很麻烦,最好使用jdbc连接池,或者try-with-resource数据库知识Q:事务的ACID属性是什么?A:A是 atomicity原子性, 事务内的行为一次性执行完,要么就回退C是consistency一致性 有a+b=c的限制条件,然后a变化的同时,b也必须跟着变化I是isolation隔离性 事务隔离,即事务的中间执行过程,对另外一个事务不可见。D是durability持久性 提交i成功后,修改不会改变,也会被记录。Q: 脏读、不可重复读和幻读是什么?A:脏读:数据被更新了,但是还没提交, 然后另一个事务读到了更新后的数据,结果事务回滚了,导致读的数据其实是脏数据,不可重复读: 1个事务要读2次数据(注意是单条数据),结果第一次读和第二次读数据不一致了。幻读: 1个事务读了2次 数据,发现2次的记录数不一致(注意事项记录数)————————————————
  • 注意JDBC数据库连接中资源关闭的顺序
    在JDBC连接数据库时首先要获得connection,再通过它获得相应的statement,最后获得结果集resultset.这些过程都会占用内存资源,所以我们常常会在方法调用结束后关闭相应的资源节约内存空间。这时如果关闭的顺序不对,像下面这样,有时就会出现异常。    public static void closeAllResource(Connection conn,Statement st,ResultSet rs) {        if (conn!=null) {            try {                conn.close();            } catch (Exception e) {                e.printStackTrace();            }        }                if (st!=null) {            try {                st.close();            } catch (Exception e) {                e.printStackTrace();            }        }                if (rs!=null) {            try {                rs.close();            } catch (Exception e) {                e.printStackTrace();            }        }    }org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (Connection is closed) at org.sqlite.core.DB.newSQLException(DB.java:909) at org.sqlite.core.CoreStatement.internalClose(CoreStatement.java:115) at org.sqlite.jdbc3.JDBC3Statement.close(JDBC3Statement.java:35) at org.sqlite.jdbc4.JDBC4Statement.close(JDBC4Statement.java:27) at com.tools.JdbcUtils.close(JdbcUtils.java:94) at com.tools.BaseDao2.update(BaseDao2.java:38) at com.test.testjdbc.main(testjdbc.java:30)如果connection关闭了,后面Statement和ResultSet相关的操作就会受到影响。所以平时一定要注意关闭资源的先后顺序,先关闭ResultSet,然后是Statement,最后是Connetion,刚好与创建相应对象时的顺序相反。
  • 10个问题让你快速避开java中的jdbc常见坑
    Connection.setAutoCommit(boolean)用于事务提交。setAutoCommit(true), 则执行的所有sql执行都会作为单个事务直接提交并运行setAutoCommit(false), 则必须等调用conn.commit()才会提交运行Q: setAutoCommit默认是true还是falseA: 默认是true。Q: setAutoCommit(true)的缺点是什么?A: 如果一次性执行多个sql语句, 中间sql出错时,就会造成脏数据。Q: setAutoCommit(false)后,如果出了错却没有在catch中进行Connection的rollBack操作,会发生什么?A; 操作的表就会被锁住,造成数据库死锁fetchSizefetchSize 是设定JDBC的Statement读取数据的时候每次从数据库中取出的记录条数fetchSize越 大, 客户端内存占用越 大,读取数据库次数越 少,速度越 快。Q: Oracle和Mysql中的fetchSize有什么区别?A: Oracle会每次网络传输fetchSize条数据到客户端, MYSQL则会一次性全部传送到客户端,因此Mysql中的fetchSize是一种模拟游标。PreparedStatementQ:相比Statement的好处?A:PreparedStatement是预编译的,比Statement速度快,执行效率高,因此即使sql中不带参数也最好使用PreparedStatement代码的可读性和可维护性更好(相比于sql拼接)PreparedStatement可以防止SQL注入攻击,而Statement却不能Q:prepareStatement是statement接口的实现吗?A:prepareStatement不是实现,而是继承的接口CallableStatementCallableStatement继承自PreparedStatementCallableStatement接口添加了 调用存储过程 核函数以及处理输出参数(INOUT)的方法。即存储过程就用CallableStatementConnection Pool连接池优点:减少连接创建次数更快的系统整体响应速度统一连接管理,减少失误性的连接未关闭。ResultSet作用: 缓存数据结果集Statement st = conn. createStatement (int resultSetType, int resultSetConcurrency) ResultSet rs = st.executeQuery(sqlStr)滚动,就是指调用.next()或者.previous()或者移动到对应行resultSetType 是设置 ResultSet 对象的类型可滚动,或者是不可滚动。取值如下(见单词知意):ResultSet.TYPE_FORWARD_ONLY 只能向前滚动ResultSet.TYPE_SCROLL_INSENSITIVE, 支持前后滚动,对修改不敏感ResultSet.TYPE_SCROLL_SENSITIVE 支持前后滚动,对修改敏感resultSetConcurency 是设置 ResultSet 对象能够修改的,取值如下:ResultSet.CONCUR_READ_ONLY 设置为只读类型的参数。ResultSet.CONCUR_UPDATABLE 设置为可修改类型的参数。Q:Connection、statement、ResultSet的关闭顺序是?A:先ResultSet、再Statement、最后再connection。因为这种操作很麻烦,最好使用jdbc连接池,或者try-with-resource数据库知识Q:事务的ACID属性是什么?A:A是 atomicity原子性, 事务内的行为一次性执行完,要么就回退C是consistency一致性 有a+b=c的限制条件,然后a变化的同时,b也必须跟着变化I是isolation隔离性 事务隔离,即事务的中间执行过程,对另外一个事务不可见。D是durability持久性 提交i成功后,修改不会改变,也会被记录。Q: 脏读、不可重复读和幻读是什么?A:脏读:数据被更新了,但是还没提交, 然后另一个事务读到了更新后的数据,结果事务回滚了,导致读的数据其实是脏数据,不可重复读: 1个事务要读2次数据(注意是单条数据),结果第一次读和第二次读数据不一致了。幻读: 1个事务读了2次 数据,发现2次的记录数不一致(注意事项记录数)部分参考资料https://blog.csdn.net/u011543448/article/details/79441066
  • [其他] 【故障】客户使用JDBC执行sql报错:ERROR: insufficient data left in message
    问题描述:客户使用JDBC执行sql报错:ERROR:  insufficient data left in message排查方法:排查客户执行的sql中是否包含'\0'(在notepad++中查看时NUL的特殊字符),如图:原因:服务端无法处理字符串中的'\0'字符解决方式:去掉特殊字符,可以用空格代替参考链接:https://www.postgresql.org/message-id/alpine.BSO.2.00.0906031639270.2432@leary.csoft.net
  • [BI报表] PowerBI使用用户名密码方式对接FusionInsight HetuEngine
    前提条件:FusionInsight HD 集群安装完毕,集群状态健康已安装最新版本HetuEngine服务已在FusionInsight Hetu集群中创建“人机”用户Windows环境已安装PowerBI   说明:该方法仅适用于2021.3.30版本之后,3.30之前的版本不适用一、获取JDBC jar包  下载HetuEngine客户端。登录FusionInsight  Manager。选择“集群 > 待操作的集群名称 > 服务 > HetuEngine > 概览”。在页面右上角,选择“更多 > 下载客户端”,根据界面提示下载“完整客户端”文件到本地。解压HetuEngine客户端压缩包文件“FusionInsight_Cluster_集群ID_Services_Client.tar”获取jdbc文件,并存放在本地,例如D:\test   说明:jdbc文件在压缩包中的路径:FusionInsight_Cluster_集群ID_Services_Client \FusionInsight_Cluster_1_Services_ClientConfig\FusionInsight_Cluster_集群ID_Services_ClientConfig\HetuEngine\ presto-jdbc-316-hw-ei-*-SNAPSHOT二、PowerBI配置步骤1:采用ODBC登录方式访问HetuEngine,首先需要安装ODBC驱动程序。使用默认配置安装“hetu-odbc-win64.msi”驱动程序。下载地址:https://openlookeng.io/download.html。步骤2:配置数据源驱动执行以下命令停止自动启动的odbc服务。    cd C:\Program Files\openLooKeng\openLooKeng ODBC Driver 64-bit\odbc_gateway\mycat\bin    mycat.bat stop        2.替换jdbc驱动。    拷贝第一节中获取的jdbc jar包到“C:\Program Files\openLooKeng\openLooKeng ODBC Driver 64-bit\odbc_gateway\mycat\lib”目录下,并删除该目录下原始的“hetu-jdbc-1.0.1.jar”包。            3.编辑odbc的“server.xml”文件的协议前缀    将“C:\Program Files\openLooKeng\openLooKeng ODBC Driver 64-bit\odbc_gateway\mycat\conf”目录中的“server.xml”文件的属性值“<property name="jdbcUrlPrefix">jdbc:lk://</property>”修改为“<property name="jdbcUrlPrefix">jdbc:presto://</property>”    4.配置用户名/密码方式连接。    在自定义路径,如“C:\hetu”中新建“jdbc_param.properties”文件,添加如下内容:user=admintestpassword=admintest@123456    说明:    user:已创建的“人机”用户的用户名,如:admintest。    password:已创建的“人机”用户的用户密码,如:admintest@123456。    5.执行以下命令重启odbc服务    cd C:\Program Files\openLooKeng\openLooKeng ODBC Driver 64-bit\odbc_gateway\mycat\bin    mycat.bat restart    备注:每次修改配置时都需要停止odbc服务,修改完毕后再重启服务。步骤3:在window系统的控制面板中输入“odbc”搜索odbc的管理程序。步骤4:在应用程序中选择“添加 > openLookeng ODBC 1.1 Driver > 完成”步骤5:参考下图创建数据源名称和描述,单击“Next”步骤6:参考下图完成参数配置。 Connection URL:<HSBrokerIP1:port1>,<HSBrokerIP2:port2>,<HSBrokerIP3:port3>/hive/default?serviceDiscoveryMode=hsbroker;获取HSBroker节点及端口号:a.  登录FusionInsight Managerb.  选择“集群 -> 待操作的集群名称 –> 服务 -> HetuEngine –> 角色 -> HSBroker”获取HSBroker所有实例的业务IP选择“集群 -> 待操作的集群名称 –> 服务 -> HetuEngine -> 配置 -> 全部配置”,右侧搜索“server.port”,获取HSBroker的端口号样例:192.168.8.37:29860,192.168.8.38:29860, 192.168.8.39:29860/hive/default?serviceDiscoveryMode=hsbrokerConnection Config:选择步骤2准备好的“jdbc_param.properties”文件;User Name”是下载凭据的用户名称。步骤7:单击“Test DSN ”测试连接, 显示连接成功且“Catalog”和“Schema”中均有内容表示连接成功,单击“Next”。步骤8:单击“Finish”完成连接。步骤9:使用PowerBI对接,选择“获取数据 > 更多 > ODBC > 连接”。步骤10:选择步骤5中添加的数据源,单击“确定”完成数据源添加。步骤11:(可选)输入下载凭据用户的“用户名”及“密码”,单击“连接”。步骤12:连接成功后,显示所有表信息
  • [BI报表] 永洪BI使用用户名密码方式对接FusionInsight HetuEngine
    前提条件:FusionInsight HD 集群安装完毕,集群状态健康已安装最新版本HetuEngine服务已在FusionInsight Hetu集群中创建“人机”用户Windows环境已安装永洪BI   说明:该方法仅适用于2021.3.30版本之后,3.30之前的版本不适用一、获取JDBC jar包  下载HetuEngine客户端。登录FusionInsight  Manager。选择“集群 > 待操作的集群名称 > 服务 > HetuEngine > 概览”。在页面右上角,选择“更多 > 下载客户端”,根据界面提示下载“完整客户端”文件到本地。解压HetuEngine客户端压缩包文件“FusionInsight_Cluster_集群ID_Services_Client.tar”获取jdbc文件,并存放在本地,例如D:\test   说明:jdbc文件在压缩包中的路径:FusionInsight_Cluster_集群ID_Services_Client \FusionInsight_Cluster_1_Services_ClientConfig\FusionInsight_Cluster_集群ID_Services_ClientConfig\HetuEngine\ presto-jdbc-316-hw-ei-*-SNAPSHOT二、永洪BI配置步骤1:打开Yonghong Desktop,选择“添加数据源”->“presto”步骤2:在数据源配置页面参考下图完成参数配置,“用户名”和“密码”为已创建的“人机”用户的用户名和用户密码。配置完成后可以单击“测试连接”测试。驱动:选择“自定义 > 选择自定义驱动”,单击,编辑驱动名称,单击“上传文件”上传已获取的JDBC jar包,单击“确定”。URL格式:jdbc:presto://<HSBrokerIP1:port1>:<HSBrokerIP2:port2>:<HSBrokerIP3:port3>/hive/default?serviceDiscoveryMode=hsbroker获取HSBroker节点及端口号:a.  登录FusionInsight Managerb.  选择“集群 -> 待操作的集群名称 –> 服务 -> HetuEngine –> 角色 -> HSBroker”获取HSBroker所有实例的业务IPc.  选择“集群 -> 待操作的集群名称 –> 服务 -> HetuEngine -> 配置 -> 全部配置”,右侧搜索“server.port”,获取HSBroker的端口号样例:jdbc:presto:// 192.168.8.37:29860,192.168.8.38:29860, 192.168.8.39:29860/hive/default?serviceDiscoveryMode=hsbroker服务器登录:选择“用户名和密码”,并填写“人机”用户的用户名和密码。步骤3:单击“新建数据集”,在弹出的页面参考下图修改保存路径,单击“确定”保存路径,最后“测试连接”。步骤4:在数据源选择“hetu > hive > default > 视图”,在右侧“新建数据集”选择“SQL数据集”。步骤5:在“数据源”处选择步骤3新建的数据集,显示所有表信息,选中其中一个表,如“test”表,单击“刷新数据”,可在右侧“数据详情”中显示表的所有信息。
  • [生态对接] DBeaver使用用户名密码方式对接FusionInsight HetuEngine
    前提条件:FusionInsight HD 集群安装完毕,集群状态健康已安装最新版本HetuEngine服务已在FusionInsight Hetu集群中创建“人机”用户Windows环境已安装DBeaver   说明:该方法仅适用于2021.3.30版本之后,3.30之前的版本不适用一、获取JDBC jar包  下载HetuEngine客户端。登录FusionInsight  Manager。选择“集群 > 待操作的集群名称 > 服务 > HetuEngine > 概览”。在页面右上角,选择“更多 > 下载客户端”,根据界面提示下载“完整客户端”文件到本地。解压HetuEngine客户端压缩包文件“FusionInsight_Cluster_集群ID_Services_Client.tar”获取jdbc文件,并存放在本地,例如D:\test   说明:jdbc文件在压缩包中的路径:FusionInsight_Cluster_集群ID_Services_Client \FusionInsight_Cluster_1_Services_ClientConfig\FusionInsight_Cluster_集群ID_Services_ClientConfig\HetuEngine\ presto-jdbc-316-hw-ei-*-SNAPSHOT二、DBeaver配置步骤1:打开DBeaver,点击“数据库 -> 新建连接”,搜索“PrestoSQL”并打开步骤2:单击“编辑驱动设置”步骤3:在“类名”中设置“io.prestosql.jdbc.PrestoDriver”步骤4:在“URL模板”中输入HetuEngine的URLURL格式:jdbc:presto://<HSBrokerIP1:port1>:<HSBrokerIP2:port2>:<HSBrokerIP3:port3>/hive/default?serviceDiscoveryMode=hsbroker步骤5:单击“添加文件”,选择第一节中获取的JDBC驱动包步骤6:单击“找到类”,自动获取驱动类,单击“确定”步骤7:输入用户名/密码,单击“测试连接”,连接成功后,单击“确定”->“完成”连接成功展示:
  • [二次开发] 【HD6.5.1】【hive连接失败】jdbc获取hive连接失败
    【功能模块】jdbc获取hive连接失败【操作步骤&问题现象】1、jdbc获取hive连接失败,一直报hadoop相关的错误,麻烦看看是什么原因【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [其他] 【jdbc】DWS通过jdbc达到负载均衡的效果
    如果使用自带的jdbc驱动,如下配置:jdbc:postgresql://host1:port1,host2:port2/database如果使用开源jdbc驱动,需要设置loadBalanceHosts=true,否则是failover的负载管理方式:jdbc:postgresql://host1:port1,host2:port2/database?loadBalanceHosts=true
  • [技术干货] JDBC 数据库常用连接 链接字符串
    1、Oracle8/8i/9i数据库(thin模式)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID String user="test"; String password="test"; Connection conn= DriverManager.getConnection(url,user,password);2、DB2数据库Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password);3、Sql Server7.0/2000数据库Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; //mydb为数据库 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password);4、Sybase数据库Class.forName("com.sybase.jdbc.SybDriver").newInstance(); String url =" jdbc:sybase:Tds:localhost:5007/myDB"; //myDB为你的数据库名 Properties sysProps = System.getProperties(); SysProps.put("user","userid"); SysProps.put("password","user_password"); Connection conn= DriverManager.getConnection(url, SysProps);5、Informix数据库Class.forName("com.informix.jdbc.IfxDriver").newInstance(); String url = "jdbc:informix-sqli://123.45.67.89:1533/myDB:INFORMIXSERVER=myserver; user=testuser;password=testpassword"; //myDB为数据库名 Connection conn= DriverManager.getConnection(url);6、MySQL数据库Class.forName("org.gjt.mm.mysql.Driver").newInstance(); String url ="jdbc:mysql://localhost/myDB?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" //myDB为数据库名 Connection conn= DriverManager.getConnection(url);7、PostgreSQL数据库Class.forName("org.postgresql.Driver").newInstance(); String url ="jdbc:postgresql://localhost/myDB" //myDB为数据库名 String user="myuser"; String password="mypassword"; Connection conn= DriverManager.getConnection(url,user,password);