我正在尝试学习如何使用 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 不正确。如果主机名不正确,如何获取主机名。如果问题存在,如何获取端口号. 但我不确定这个问题。谁能给我一些关于问题到底在哪里的问题。