2013-12-04 15 views
0

У меня есть базовый код, но он не работает. Я не знаю, почему. Я проверил весь код, печатая после каждой строки, но кажется, что executequery дает мне трудное время. Нужна помощь от экспертов, пожалуйста,JSP executeQuery не работает

<%@ page import="java.net.*, java.io.*, java.sql.*, java.util.*" %> 
<% 
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE"; 
Connection con = null; 
Statement stmt =null; 
ResultSet rs=null; 
String uname=request.getParameter("uname"); 
String passwd=request.getParameter("password"); 

try 
{ 
//*** Load the jdbc-odbc bridge driver 
    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); 

    //*** Attempt to connect to a driver. 
    con = DriverManager.getConnection(url, "admin", "admin"); 

    //*** Create a Statement object so we can submit 
    //*** SQL statements to the driver 
    stmt = con.createStatement(); 

    String query=("select username,password from users where username="+uname); 

    //*** execute query and show result 
    rs = stmt.executeQuery(query); 

    int numCols = rs.getMetaData().getColumnCount(); 
while (rs.next()) 
    { 
     int i=0; 
     for (i=1; i<=numCols; i++) 
      out.println(rs.getString(i)); 
    } 

    //*** close connection 
    stmt.close(); 
    con.close(); 
} 
catch (Exception e) 
{ 
    e.printStackTrace(); 
} 
%> 
+0

Сообщите об ошибке, если таковые имеются? –

+0

@Aniket: ошибок нет. Его просто не печатает имя пользователя – user9517536248

+0

Попробуйте распечатать все значения в базе данных с помощью 'select *'. Проверьте, работает ли это. –

ответ

3

Ваше заявление, вероятно, выдает ошибку, потому что вы не цитируете литералы.

Вместо этого кода:

String query=("select username,password from users where username="+uname); 

Попробуйте с:

String query=("select username,password from users where username='"+uname+"'"); 

Или еще лучше, используйте параметры в запросах с помощью java.sql.PreparedStatement. Просто Google для java PreparedStatement, и вы найдете множество примеров.

+0

Спасибо alot @Alen Это сработало ... Вы мой герой! – user9517536248

+0

Иногда вам нужно попробовать такие запросы в своем клиенте базы данных и попытаться выяснить оттуда. –

+0

@AnjanBaradwaj: Я сделал печать до и после строки, значение передавалось, или как показано на экране тогда? – user9517536248

Смежные вопросы