Image

Windows XP + Tomcat + Servlet + database = дружба???

Помогите плз разобраться с подключением к БД.

Перед тем как подключаться к БД создаю источник данных 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. проблема решена, подробности в каментах