我已经在我的本地计算机上安装了MaxDB,并且我正在尝试使用Java建立连接。
我在运行时遇到此错误:
线程“main”中的异常 抛出java.lang.ClassNotFoundException: com.sap.dbtech.jdbc.DriverSapDB
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at sap.maxdb.Hello.main(Hello.java:15)
这是我正在使用的代码:
package sap.maxdb;
import java.sql.*;
public class Hello
{
public static void main(String[] args) throws ClassNotFoundException, SQLException
{
String username = "DBM";
String password = "azerty";
String dbname = "SAPDB";
Class.forName ("com.sap.dbtech.jdbc.DriverSapDB");
String url = "jdbc:sapdb://" + dbname;
Connection connection = DriverManager.getConnection (url, username, password);
Statement stmt = connection.createStatement ();
ResultSet resultSet = stmt.executeQuery ("SELECT * FROM HOTEL.CUSTOMER");
resultSet.next ();
String hello = resultSet.getString (1);
System.out.println (hello);
resultSet.close ();
stmt.close();
connection.close ();
}
}
我确实喜欢他们在website中说:
设置CLASSPATH =%CLASSPATH%; C:\ Program 文件\ SDB \程序\运行时\罐\ sapdbc.jar
但我总是得到同样的错误。
我知道我遗失了一些东西却找不到它!°
等待你的帮助。
感谢。
答案 0 :(得分:1)
尝试添加以下代码以确保您的应用程序选择您指定的CLASSPATH:
Map<String, String> env = System.getenv();
for (String envName : env.keySet()) {
System.out.format("%s=%s%n", envName, env.get(envName));
}
答案 1 :(得分:1)
“安装”是什么意思?基本上,必须安装并运行db服务器。
第二步是将驱动程序(您可以在C:\Program Files\sdb\programs\runtime\jar\sapdbc.jar
下找到,假设这也适用于您的安装)添加到项目的构建路径中。如果找不到驱动程序类,则会根据您的经历提出ClassNotFoundException
。
您没有提到您正在使用的IDE,但尝试从上下文菜单中设置项目构建路径。
答案 2 :(得分:0)
将驱动程序的jar文件复制到服务器的“lib”文件夹中。然后重新启动服务器。