次のスニペットを実行してデータソースに接続し、クエリを通じてデータを取得すると:
try {
String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
Class.forName(driver);
String Url = "jdbc:sqlserver://localhost:1433;databaseName=movies";
Connection connection = DriverManager.getConnection(Url,"sa", "xxxxxxx);
// Context initContext = new InitialContext();
// Context envContext = (Context)initContext.lookup("java:comp/env");
// DataSource ds = (DataSource)envContext.lookup("");
// Connection connection = ds.getConnection();
String query_name = "select name from list where name='" + data + "'";
この例外トレースが表示されます:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at gui.MainGui.startSqlServerDataSearch(MainGui.java:148)
at gui.MainGui$3.run(MainGui.java:129)
at java.lang.Thread.run(Thread.java:619)
なぜこの例外が発生するのですか?私はすでにSQLサーバーに接続しており(ここに示すようにドライバーをロードすることにより)、SQLサーバーで定義されたデータベースを見ることができます。次のスナップショットはこれを示しています: