jdbcの使用方法を学習しようとしています。通常、solarisのsybase dbに接続するには、次を使用します。
isql -Usa -Pxxxxxx -Dxxxxxx
上記によってデータベースに接続され、すぐにクエリを実行できます。
今、私はJavaを使用して同様のことをしようとしています。
以下は私のコードです。
public class SKRSample
{
public static void main(String args[])
{
try
{
Class.forName("com.sybase.jdbc.SybDriver");
}
catch (ClassNotFoundException cnfe)
{
System.err.println("Error loading driver: " + cnfe);
}
try
{
String host = "172.16.65.33";
String dbName = "bsmdb";
int port = 1234;
String url = "jdbc:sybase:Tds:" + host + ":" + port + ":" + "?SERVICENAME=" + dbName;
for (int n = 0; n<args.length; n++) {
if (args[n].equals("-u")) user = args[++n];
else if (args[n].equals("-p")) password = args[++n];
else throw new IllegalArgumentException("Unknown argument.");
}
Connection con = DriverManager.getConnection(url, user, password);//here is the error.
コードの最後の行は、ランタイムエラーがある場所です。
私はコードをコンパイルし、以下のように実行しました:
setenv LOGIN "sa"
setenv PASSWORD "xxxxxxx"
javac SKRSample.java
java SKRSample -u $LOGIN -p $PASSWORD
私が得ているエラーは次のとおりです:
Unexpected exception : java.sql.SQLException: No suitable driver found for jdbc:sybase:Tds:172.16.65.33:1234:?SERVICENAME=bsmdb, sqlstate = 08001
ホストが正しくないか、ポートが正しくないか、フレーミングしているURLが正しくないか疑問があります。ホスト名がまったく正しくない場合、どのように取得できますか。また、問題がそこにある場合、ポート番号を取得する方法もあります。 。しかし、私はその問題についてよくわかりません。問題がどこにあるのかについて、誰かが私に頭を上げてくれませんか。