0

嗨我有一个小问题,我如何切换表以获取结果?下面的代码不起作用。但是,这应该让您对我正在尝试做的事情有所了解。谢谢您的帮助

String typelogin=null;
if(xx){
   typelogin="users_table";
}else{
   typelogin="admin_table";
}
String sqlStr = "Select * from "+typelogin+" where username=? and userpassword=?";
PreparedStatement stmt = conn.prepareStatement(sqlStr);

完整代码:

Statement stmt = conn.createStatement();

            String sqlStr = "Select * from "+typelogin+" where username=? and userpassword=?";


            PreparedStatement pstmt=conn.prepareStatement(sqlStr);
            pstmt.setString(1,user);
            pstmt.setString(2,password);
            //step 6 Process result
            ResultSet rs = pstmt.executeQuery();

我得到的错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 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 'fromspmovy_admin where username='abc' and userpassword='abc'' at line 1

答案[已解决]:

忘了放空格

from " + typelogin + " where
4

2 回答 2

3

从您的错误消息中:'fromspmovy_admin where ...看起来您错过了from和表名之间的空格。确保您在所有方法中都以正确的方式执行此操作(请注意,在您当前的示例中,这不会发生)。

于 2013-07-25T16:05:42.447 回答
0

如果你会用?要传递变量,您必须使用 PreparedStatement 而不是 Statement。另外根据您的错误消息,您需要在 from 之后添加一个空格(检查 fromspmovy_admin)

于 2013-07-25T15:56:51.967 回答