一条sql语句小错误

  昨天刚考试完,今天闲来无事就想把书上一小段代码实现了,其实考试前也试过,但是有错误就果断改用自己的思路实现了。今天闲下来,觉得还是想能清楚到底是哪的问题?
  主要实现就是一个登录验证,通过页面和后台数据库查找匹配符,很简单的一个问题,但是想写的代码重用性较高,就用了下面这些代码
public ResultSet query(String sql , Object... args )
throws Exception
{
PreparedStatement pstmt = getConnection().prepareStatement(sql);
for (int i = 0; i < args.length ; i++ )
{
pstmt.setObject( i + 1 , args[i]);
}
return pstmt.executeQuery();
}
调用查询方法时用的下面这些代码:
    首先要取得数据库连接
ResultSet rs=dd.query("select password from user +“ where username=? ",username);
System.out .println(rs.getString("password"));
if(rs.next())
{
if(rs.getString("password").equals(pass)){
      其实, select password from user +“ where username=?这语句可以直接用"select*from user where username='"+username+"'"替换,意义也比较直观,但是就是想用” Object... args“实现不定参数,提高重用性,但是代码运行老出现com.mysql.jdbc.exceptions.MySQLSyntaxErrorExceptio n: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'u.username='admin'' at line 1错误,代码没有语法上的错误但就是不知道为什么?后来试着改成
db.query("select password from user u where u.username=? ",username)然后就对了,莫名其妙。
  这也许是版本不同,支持的格式也不一样,第一次写博客,欢迎批评指正。
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值