日期:2014-05-18  浏览次数:20645 次

新手问题:查询数据库时的问题!
我在写一个登陆验证的时候这么写的:
连接数据库语句省去:
String   sql= "select   *   from   login_tab   where   username= "+username;
System.out.println(sql);

ResultSet   rs   =   stmt.executeQuery(sql);
//.............

LoginVO   lv   =   new   LoginVO();

if(rs.next()){
lv.setId(rs.getInt( "id "));
lv.setUsername(rs.getString( "username "));
lv.setPassword(rs.getString( "password "));
lv.setPoint(rs.getString( "point "));
}
stmt.close();
conn.close();

return   lv;数据库中有这个username字段:
而我在运行的时候提示这样的错误:
[Microsoft][SQLServer   2000   Driver   for   JDBC][SQLServer]??   'uername '   ???
在用整形的的变量做查询条件的时候这样写没有错:
String   sql= "select   *   from   login_tab   where   username= "+username;
ResultSet   rs   =   stmt.executeQuery(sql);
我不知道String   行的直接用加号连接是否可以,如果可以那么错误处在那里,不可以该怎么写.


------解决方案--------------------
String sql= "select * from login_tab where username= ' "+username " ' ";

加上单引号看看
------解决方案--------------------
试试String sql= "select * from login_tab where login_tab.username= "+username;
再不行就单步调试
------解决方案--------------------

String sql= "select * from login_tab where username= ' "+username+ " ' ";
或者用预处理

------解决方案--------------------
明显是少了单引号啊
killme2008的就是正解啊