一条sql语句小错误

xiaoxiao2021-02-28  88

昨天刚考试完,今天闲来无事就想把书上一小段代码实现了,其实考试前也试过,但是有错误就果断改用自己的思路实现了。今天闲下来,觉得还是想能清楚到底是哪的问题?   主要实现就是一个登录验证,通过页面和后台数据库查找匹配符,很简单的一个问题,但是想写的代码重用性较高,就用了下面这些代码 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)然后就对了,莫名其妙。   这也许是版本不同,支持的格式也不一样,第一次写博客,欢迎批评指正。      
转载请注明原文地址: https://www.6miu.com/read-44359.html

最新回复(0)