У меня проблемы с подключением к базе данных MS Access через сервлет в Tomcat.Это работало раньше, но это больше не так, и я совершенно сбит с толку.Код моего сервлета:
import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.util.*;
public class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dataSourceName = "mdbTest";
String dbURL = "jdbc:odbc:" + dataSourceName;
Connection conn = DriverManager.getConnection(dbURL ,"","");
String SEARCH = "SELECT * FROM User_Table WHERE ID = ?";
PreparedStatement p = conn.prepareStatement(SEARCH, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
p.setInt(1, 68);
ResultSet rs = p.executeQuery();
rs.first();
out.println(rs.getString("Name"));
} catch (ClassNotFoundException e) {
out.println("Class not found");
e.printStackTrace();
}
catch (SQLException e) {
out.println(e);
e.printStackTrace();
}
}
}
Я получаю сообщение java.sql.SQLException: [Microsoft] [ODBC Microsoft Access Driver] Не удалось найти файл «(неизвестно)».
КогдаЯ делаю это с помощью автономного приложения, однако оно работает нормально и печатает нужное значение:
import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.util.*;
public class Tester1 {
public static void main (String[] args)
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dataSourceName = "mdbTest";
String dbURL = "jdbc:odbc:" + dataSourceName;
Connection conn = DriverManager.getConnection(dbURL ,"","");
String SEARCH = "SELECT * FROM User_Table WHERE ID = ?";
PreparedStatement p = conn.prepareStatement(SEARCH, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
p.setInt(1, 68);
ResultSet rs = p.executeQuery();
rs.first();
out.println(rs.getString("Name"));
} catch (ClassNotFoundException e) {
out.println("Class not found");
e.printStackTrace();
}
catch (SQLException e) {
out.println(e);
e.printStackTrace();
}
}
}
Что происходит?