2016-09-13 6 views
0

Я построил Sybase-IQ 16.0 на сервере red-hat 7.Запуск dbisql в Java-программе

Я пытаюсь использовать dbisql для данных объемной загрузки в Sybase.

И я уже успешно по команде в Sybase сервер:

dbisql -nogui -c "UID=DBA;PWD=sql;DWN=iqtry;host=172.16.50.137:2643;" -onerror continue READ /EXT_LOAD/Load_Test_Data.SQL

Но мне нужно сделать это в Java программы от требований проекта, поэтому моя программа, как показано ниже:

import java.io.*; 
import java.sql.*; 
import java.util.*; 
import java.sql.Connection; 
import java.sql.Date; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
public class Test { 
public static void main(String[] args) throws SQLException { 

String dburl = "dbisql -nogui -c 'UID=DBA;PWD=sql;DWN=iqtry;host=172.16.50.137:2643;' -onerror continue READ /sybase/IQ_LOAD/load_DBA.atest.sql"; 

// Connect to Sybase Database 
Connection con = DriverManager.getConnection(dburl); 
Statement statement = con.createStatement(); 
}} 

И я могу компилируется на Syabse Server, но когда я запускаю этот класс, я получил следующую ошибку:

Exception in thread "main" java.sql.SQLException: No suitable driver found for

jdbc:sqlanywhere:uid=DBA;pwd=sql;eng=iqtry;database=atest;links=tcpip(host=172.

16.50.137,2643)

at java.sql.DriverManager.getConnection(DriverManager.java:689)

at java.sql.DriverManager.getConnection(DriverManager.java:270)

at Test.main(ConnectIQ.java:30)

От м y проблема, я пытаюсь установить classpath в моем текущем пути

set classpath = ./sybase/IQ-16_0/java/sajdbc4.jar

set classpath = ./sybase/IQ-16_0/java/jconn4.jar

Но все не может работать.

+0

У вас либо нет правильного драйвера на пути к классу, либо URL-адрес неверен. Также обратите внимание, что в зависимости от того, как выполняется приложение, переменная среды 'CLASSPATH' может вообще не использоваться (что на самом деле имеет место для большинства приложений Java-приложений). BTW Обратите внимание, что показанный код и исключение не совпадают (поскольку исключение показывает другое значение для dburl, чем показано в вашем коде). –

ответ

0

Утилита dbisql является утилитой командной строки и не должна использоваться в сочетании с Java. Он предназначен для использования через оболочки, такие как Bash, или в среде GUI.

sajdbc4.jar файл является драйвером JDBC для SAP IQ. Как вы уже упоминали об этом в CLASSPATH, лучше использовать его класс IQDataSource, который реализует DataSource Interface со стандарта JDBC.

Простой код будет:

IQDataSource iqDataSource = new IQDataSource(); 
iqDataSource.setURL(jdbcUrl); 
iqDataSource.setUser(username); 
iqDataSource.setPassword(password); 

Другая подсказка: помните, что каждый выпуск SAP IQ связи с конкретной сборкой драйвера JDBC. Убедитесь, что вы используете целевую версию правильной версии для правильной платформы.

Надеюсь, это поможет.

Смежные вопросы