Java 如何更改PreparedStatement中from子句的表名
嗨,我有一个小问题,我如何切换表格以从中获得结果?? 下面的代码不起作用。不过,这应该会让您了解我正在尝试做什么。 谢谢你的帮助Java 如何更改PreparedStatement中from子句的表名,java,jdbc,Java,Jdbc,嗨,我有一个小问题,我如何切换表格以从中获得结果?? 下面的代码不起作用。不过,这应该会让您了解我正在尝试做什么。 谢谢你的帮助 String typelogin=null; if(xx){ typelogin="users_table"; }else{ typelogin="admin_table"; } String sqlStr = "Select * from "+typelogin+" where username=? and userpassword=?"; Prepar
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
如果你会用?对于传递变量,必须使用PreparedStatement而不是语句。此外,根据您的错误消息,您需要在from(检查fromspmovy_admin)之后添加一个空格是否使用?对于传递变量,必须使用PreparedStatement而不是语句。此外,根据错误消息,您需要在from(检查fromspmovy_admin)之后添加一个空格,错误消息:
'fromspmovy_admin,其中…
看起来您在from
和表名之间遗漏了一个空格。确保在所有方法中都以正确的方式执行此操作(请注意,在当前示例中,这种情况不会发生)。从错误消息中:'fromspmovy\u admin,其中…
中的与表名之间似乎缺少空格。确保您在所有方法中都以正确的方式执行此操作(请注意,在您当前的示例中,这不会发生)。我正在使用准备好的语句好的,我对我使用的完整代码进行了编辑,请查看。谢谢我正在使用准备好的声明好的,我对我正在使用的全部代码进行了编辑,请看一看。感谢您的错误消息:”来自SPMOVY\u admin,其中…
看起来您遗漏了来自
的和表名之间的空格。确保你在所有的方法中都以正确的方式来做这件事。@LuiggiMendoza好吧,这就是问题所在。非常感谢你,请回答这里的确切问题,这样我就可以选择这个作为答案,非常感谢您的错误消息:'fromspmovy\u admin,其中…
中的与表名之间似乎缺少空格。请确保您在所有方法中都以正确的方式进行操作。@LuiggiMendoza好吧,这就是问题所在。非常感谢您,请在这里回答确切的问题,以便我可以选择此作为答案,非常感谢