Windows XP + Tomcat + Servlet + database = дружба???
Помогите плз разобраться с подключением к БД.
Перед тем как подключаться к БД создаю источник данных ODBC db1 в панели управления.
Далее запускаю такой код:
в итоге сервлет выводит на экран 31
я так понимаю, к базе он не подключился и exception никакой не выкинул (
в чём может быь причина? брал разные БД, всё равно..
upd. в логе java.sql.SQLException: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
как это победить?..
upd. проблема решена, подробности в каментах
Перед тем как подключаться к БД создаю источник данных ODBC db1 в панели управления.
Далее запускаю такой код:
public final class Hello extends HttpServlet
{
private int accessCount = 0;
private Connection conn;
private Statement sq;
public void init() throws ServletException
{
super.init();
accessCount+=10;
try
{
accessCount+=10;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
accessCount+=10;
conn = DriverManager.getConnection("jdbc:odbc:db1");
accessCount+=10;
sq = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
accessCount+=10;
ResultSet rs = sq.executeQuery("SELECT * FROM table");
accessCount+=10;
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(NullPointerException e)
{
e.printStackTrace();
}
catch(SQLException e)
{
e.printStackTrace();
}
catch(Exception e)
{
e.printStackTrace();
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
service(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
service(request, response);
}
public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
PrintWriter out = response.getWriter();
++accessCount;
ResultSet rs = null;
try
{
rs = sq.executeQuery("SELECT * FROM table");
if (rs.next())
{
accessCount+=100;
}
} catch(Exception e){ e.printStackTrace();}
out.println(accessCount);
}
}
в итоге сервлет выводит на экран 31
я так понимаю, к базе он не подключился и exception никакой не выкинул (
в чём может быь причина? брал разные БД, всё равно..
upd. в логе java.sql.SQLException: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
как это победить?..
upd. проблема решена, подробности в каментах
